From 0646be49dc50761d966ad8a2f4582f370c41f5a3 Mon Sep 17 00:00:00 2001 From: Kristiyan Tachev Date: Mon, 7 Oct 2019 20:21:54 +0300 Subject: [PATCH 1/2] feature(rxjs, systemjs): removed rxjs from main dependencies, no active dependencies for the project, rxjs version will be installed when used --- dist/helpers/bootstrap.d.ts | 2 +- dist/helpers/bootstrap.js | 2 +- dist/helpers/reflection.d.ts | 14 + dist/helpers/reflection.js | 94 + dist/index.d.ts | 1 - dist/index.js | 1 - dist/index.js.map | 2 +- dist/services/external-importer/index.d.ts | 2 - dist/services/external-importer/index.js | 9 +- dist/services/index.d.ts | 1 - dist/services/index.js | 2 +- dist/services/module/module.service.d.ts | 1 - dist/services/module/module.service.js | 13 +- dist/services/npm-service/npm.service.d.ts | 5 +- dist/services/npm-service/npm.service.js | 1 + package.json | 6 +- src/helpers/bootstrap.ts | 2 +- src/helpers/reflection.ts | 106 + src/index.ts | 2 - ...c.ts => external-importer.spec-delayed.ts} | 0 src/services/external-importer/index.ts | 4 +- src/services/index.ts | 2 +- src/services/module/module.service.ts | 14 +- src/services/npm-service/npm.service.ts | 6 +- yarn.lock | 6928 +++++++++++++++++ 25 files changed, 7172 insertions(+), 48 deletions(-) create mode 100644 dist/helpers/reflection.d.ts create mode 100644 dist/helpers/reflection.js create mode 100644 src/helpers/reflection.ts rename src/services/external-importer/{external-importer.spec.ts => external-importer.spec-delayed.ts} (100%) create mode 100644 yarn.lock diff --git a/dist/helpers/bootstrap.d.ts b/dist/helpers/bootstrap.d.ts index cf3cca1..f51f3e9 100644 --- a/dist/helpers/bootstrap.d.ts +++ b/dist/helpers/bootstrap.d.ts @@ -1,4 +1,4 @@ -import 'reflect-metadata'; +import './reflection'; import { ConfigModel } from '../services/config/config.model'; import { Observable } from 'rxjs'; import { ModuleArguments } from '../decorators/module/module.interfaces'; diff --git a/dist/helpers/bootstrap.js b/dist/helpers/bootstrap.js index 1eeb174..6926d02 100644 --- a/dist/helpers/bootstrap.js +++ b/dist/helpers/bootstrap.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -require("reflect-metadata"); +require("./reflection"); const container_1 = require("../container"); const bootstrap_service_1 = require("../services/bootstrap/bootstrap.service"); const exit_handler_1 = require("./exit-handler"); diff --git a/dist/helpers/reflection.d.ts b/dist/helpers/reflection.d.ts new file mode 100644 index 0000000..3cf0e23 --- /dev/null +++ b/dist/helpers/reflection.d.ts @@ -0,0 +1,14 @@ +export declare function defineMetadata(metadataKey: any, metadataValue: any, target: any, propertyKey: any): void; +export declare function decorate(decorators: any, target: any, propertyKey: any, attributes: any): any; +export declare function metadata(metadataKey: any, metadataValue: any): (target: any, propertyKey: any) => void; +export declare function getMetadata(metadataKey: any, target: any, propertyKey: any): any; +export declare function getOwnMetadata(metadataKey: any, target: any, propertyKey: any): any; +export declare function hasOwnMetadata(metadataKey: any, target: any, propertyKey: any): boolean; +export declare const Reflection: { + decorate: typeof decorate; + defineMetadata: typeof defineMetadata; + getMetadata: typeof getMetadata; + getOwnMetadata: typeof getOwnMetadata; + hasOwnMetadata: typeof hasOwnMetadata; + metadata: typeof metadata; +}; diff --git a/dist/helpers/reflection.js b/dist/helpers/reflection.js new file mode 100644 index 0000000..135543b --- /dev/null +++ b/dist/helpers/reflection.js @@ -0,0 +1,94 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Metadata = new WeakMap(); +function defineMetadata(metadataKey, metadataValue, target, propertyKey) { + return ordinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); +} +exports.defineMetadata = defineMetadata; +function decorate(decorators, target, propertyKey, attributes) { + if (decorators.length === 0) { + throw new TypeError(); + } + if (typeof target === 'function') { + return decorateConstructor(decorators, target); + } + else if (propertyKey !== undefined) { + return decorateProperty(decorators, target, propertyKey, attributes); + } + return; +} +exports.decorate = decorate; +function metadata(metadataKey, metadataValue) { + return function decorator(target, propertyKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); + }; +} +exports.metadata = metadata; +function getMetadata(metadataKey, target, propertyKey) { + return ordinaryGetMetadata(metadataKey, target, propertyKey); +} +exports.getMetadata = getMetadata; +function getOwnMetadata(metadataKey, target, propertyKey) { + return ordinaryGetOwnMetadata(metadataKey, target, propertyKey); +} +exports.getOwnMetadata = getOwnMetadata; +function hasOwnMetadata(metadataKey, target, propertyKey) { + return !!ordinaryGetOwnMetadata(metadataKey, target, propertyKey); +} +exports.hasOwnMetadata = hasOwnMetadata; +function decorateConstructor(decorators, target) { + decorators.reverse().forEach(decorator => { + const decorated = decorator(target); + if (decorated) { + target = decorated; + } + }); + return target; +} +function decorateProperty(decorators, target, propertyKey, descriptor) { + decorators.reverse().forEach(decorator => { + descriptor = decorator(target, propertyKey, descriptor) || descriptor; + }); + return descriptor; +} +function ordinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey) { + if (propertyKey && !['string', 'symbol'].includes(typeof propertyKey)) { + throw new TypeError(); + } + (getMetadataMap(target, propertyKey) || + createMetadataMap(target, propertyKey)).set(metadataKey, metadataValue); +} +function ordinaryGetMetadata(metadataKey, target, propertyKey) { + return !!ordinaryGetOwnMetadata(metadataKey, target, propertyKey) + ? ordinaryGetOwnMetadata(metadataKey, target, propertyKey) + : Object.getPrototypeOf(target) + ? ordinaryGetMetadata(metadataKey, Object.getPrototypeOf(target), propertyKey) + : undefined; +} +function ordinaryGetOwnMetadata(metadataKey, target, propertyKey) { + if (target === undefined) { + throw new TypeError(); + } + const metadataMap = getMetadataMap(target, propertyKey); + return metadataMap && metadataMap.get(metadataKey); +} +function getMetadataMap(target, propertyKey) { + return Metadata.get(target) && Metadata.get(target).get(propertyKey); +} +function createMetadataMap(target, propertyKey) { + const targetMetadata = Metadata.get(target) || new Map(); + Metadata.set(target, targetMetadata); + const metadataMap = targetMetadata.get(propertyKey) || new Map(); + targetMetadata.set(propertyKey, metadataMap); + return metadataMap; +} +exports.Reflection = { + decorate, + defineMetadata, + getMetadata, + getOwnMetadata, + hasOwnMetadata, + metadata +}; +Object.assign(Reflect, exports.Reflection); +//# sourceMappingURL=index.js.map diff --git a/dist/index.d.ts b/dist/index.d.ts index d2dfc13..374eb21 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,4 +1,3 @@ -import 'reflect-metadata'; export * from './container/index'; export * from './decorators/index'; export * from './helpers/index'; diff --git a/dist/index.js b/dist/index.js index d83b316..72ecff3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3,7 +3,6 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -require("reflect-metadata"); __export(require("./container/index")); __export(require("./decorators/index")); __export(require("./helpers/index")); diff --git a/dist/index.js.map b/dist/index.js.map index 55cbacf..2b1bcf9 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["helpers/sha256.ts","helpers/create-unique-hash.ts","container/error/MissingProvidedServiceTypeError.ts","container/Token.ts","container/error/ServiceNotFoundError.ts","services/constructor-watcher/constructor-watcher.ts","services/constructor-watcher/index.ts","container/ContainerInstance.ts","container/Container.ts","helpers/reflect.decorator.ts","decorators/service/Service.ts","container/types/hooks/index.ts","container/index.ts","services/cache/cache-layer.ts","helpers/events.ts","services/config/config.model.ts","services/config/config.service.ts","services/config/index.ts","decorators/injector/injector.decorator.ts","services/bootstrap-logger/bootstrap-logger.ts","services/bootstrap-logger/index.ts","services/cache/cache-layer.service.ts","services/cache/cache-layer.interfaces.ts","services/cache/index.ts","services/plugin/plugin.service.ts","services/exit-handler/exit-handler.service.ts","services/exit-handler/index.ts","services/request/request.cache.service.ts","services/request/request.service.ts","services/request/index.ts","services/file/dist.ts","services/file/file.service.ts","services/file/index.ts","services/compression/compression.service.ts","services/npm-service/npm.service.ts","services/external-importer/providers.ts","services/external-importer/external-importer.ts","services/external-importer/external-importer-config.ts","services/external-importer/index.ts","services/lazy-factory/lazy-factory.service.ts","services/module/helpers/validators.ts","services/controllers/controllers.service.ts","services/effect/effect.service.ts","services/components/components.service.ts","services/bootstraps/bootstraps.service.ts","services/services/services.service.ts","services/module/module.service.ts","services/module/index.ts","services/resolver/resolver.service.ts","services/resolver/index.ts","services/after-starter/after-starter.service.ts","helpers/log.ts","services/bootstrap/bootstrap.service.ts","helpers/exit-handler.ts","helpers/bootstrap.ts","helpers/index.ts","services/metadata/metadata.service.ts","services/metadata/index.ts","services/compression/index.ts","services/effect/index.ts","services/controllers/index.ts","services/components/index.ts","services/bootstraps/index.ts","services/services/index.ts","services/plugin-manager/plugin-manager.ts","services/index.ts","helpers/generic-constructor.ts","decorators/module/module.decorator.ts","decorators/module/index.ts","decorators/injector/index.ts","decorators/inject-soft/inject-soft.decorator.ts","decorators/inject-soft/index.ts","container/error/CannotInjectError.ts","helpers/get-identifier.ts","decorators/inject/Inject.ts","decorators/controller/controller.decorator.ts","decorators/controller/index.ts","decorators/effect/effect.decorator.ts","decorators/effect/index.ts","decorators/plugin/Plugin.ts","decorators/component/component.decorator.ts","decorators/component/index.ts","decorators/inject-many/InjectMany.ts","decorators/index.ts","index.ts"],"names":[],"mappings":";AAoJa,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAnJb,MAAa,EAaT,KAAK,EAAK,GACA,MACA,EAAM,OAAO,OADF,CAAE,UAAW,SAAU,UAAW,OACf,GAI5B,OADR,EAAM,EAAW,GACT,EAAI,WAAZ,QAES,IAAA,SAAU,EAAM,EAAW,GAAM,MACjC,IAAA,YAAa,EAoGb,SAAiB,GAChB,MAAA,EAAM,EAAO,QAAQ,IAAK,IACzB,MAAO,IAAP,EAAY,GAAK,EAAI,MAAM,SAAS,IAAI,GAAQ,OAAO,aAAa,SAAS,EAAM,MAAM,KAAK,IAtG7E,CAAiB,GAIvC,MAAA,EAAI,CACN,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAGlF,EAAS,CACX,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAOlF,GAHN,GAAO,OAAO,aAAa,MAGb,OAAS,EAAI,EACrB,EAAI,KAAK,KAAK,EAAI,IAClB,EAAI,IAAI,MAAM,GAEf,IAAA,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,CACxB,EAAE,GAAK,IAAI,MAAM,IACZ,IAAA,IAAI,EAAI,EAAG,EAAI,GAAI,IACpB,EAAE,GAAG,GAAM,EAAI,WAAe,GAAJ,EAAa,EAAJ,EAAQ,IAAM,GAAO,EAAI,WAAe,GAAJ,EAAa,EAAJ,EAAQ,IAAM,GACvF,EAAI,WAAe,GAAJ,EAAa,EAAJ,EAAQ,IAAM,EAAM,EAAI,WAAe,GAAJ,EAAa,EAAJ,EAAQ,IAAM,EAM3F,MAAA,EAA4B,GAAlB,EAAI,OAAS,GAAU,KAAK,IAAI,EAAG,IAC7C,EAA4B,GAAlB,EAAI,OAAS,KAAY,EACzC,EAAE,EAAI,GAAG,IAAM,KAAK,MAAM,GAC1B,EAAE,EAAI,GAAG,IAAM,EAKV,IAAA,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,CAClB,MAAA,EAAI,IAAI,MAAM,IAGf,IAAA,IAAI,EAAI,EAAG,EAAI,GAAI,IAAK,EAAE,GAAK,EAAE,GAAG,GACpC,IAAA,IAAI,EAAI,GAAI,EAAI,GAAI,IACrB,EAAE,GAAM,KAAK,GAAG,EAAE,EAAI,IAAM,EAAE,EAAI,GAAK,KAAK,GAAG,EAAE,EAAI,KAAO,EAAE,EAAI,MAAS,EAI3E,IAAA,EAAI,EAAE,GAAI,EAAI,EAAE,GAAI,EAAI,EAAE,GAAI,EAAI,EAAE,GAAI,EAAI,EAAE,GAAI,EAAI,EAAE,GAAI,EAAI,EAAE,GAAI,EAAI,EAAE,GAG3E,IAAA,IAAI,EAAI,EAAG,EAAI,GAAI,IAAK,CACnB,MAAA,EAAK,EAAI,KAAK,GAAG,GAAK,KAAK,GAAG,EAAG,EAAG,GAAK,EAAE,GAAK,EAAE,GAClD,EAAK,KAAK,GAAG,GAAK,KAAK,IAAI,EAAG,EAAG,GACvC,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAK,EAAI,IAAQ,EACjB,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAK,EAAK,IAAQ,EAItB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EACtB,EAAE,GAAM,EAAE,GAAK,IAAO,EAIrB,IAAA,IAAI,EAAI,EAAG,EAAI,EAAE,OAAQ,IAAK,EAAE,IAAM,WAAa,EAAE,GAAG,SAAS,KAAK,OAAO,GAG5E,MAAA,EAA6B,SAAjB,EAAI,UAAuB,IAAM,GAE5C,OAAA,EAAE,KAAK,GAIL,SAAA,EAAW,GACZ,IACO,OAAA,IAAI,aAAc,OAAO,GAAK,OAAO,CAAC,EAAM,IAAS,EAAO,OAAO,aAAa,GAAO,IAChG,MAAO,GACE,OAAA,SAAS,mBAAmB,MAa/C,KAAK,EAAG,GACI,OAAA,IAAM,EAAM,GAAM,GAAK,EAMnC,KAAG,GAAY,OAAA,KAAK,KAAK,EAAG,GAAK,KAAK,KAAK,GAAI,GAAK,KAAK,KAAK,GAAI,GAClE,KAAG,GAAY,OAAA,KAAK,KAAK,EAAG,GAAK,KAAK,KAAK,GAAI,GAAK,KAAK,KAAK,GAAI,GAClE,KAAG,GAAY,OAAA,KAAK,KAAK,EAAG,GAAK,KAAK,KAAK,GAAI,GAAM,IAAM,EAC3D,KAAG,GAAY,OAAA,KAAK,KAAK,GAAI,GAAK,KAAK,KAAK,GAAI,GAAM,IAAM,GAC5D,GAAG,EAAG,EAAG,GAAa,OAAA,EAAI,GAAO,EAAI,EACrC,IAAI,EAAG,EAAG,GAAa,OAAA,EAAI,EAAM,EAAI,EAAM,EAAI,GA/InD,QAAA,OAAA,EAmJa,QAAA,OAAS,IAAI;;ACnJ1B,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,MAAA,EAAA,QAAA,YACA,SAAgB,EAAiB,GACxB,OAAA,EAAA,OAAO,KAAK,GADrB,QAAA,iBAAA;;ACEA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,MAAa,UAAwC,MAGnD,YAAY,GAER,6DAAuD,KAAK,UAC1D,OALN,KAAA,KAAO,uBAQL,OAAO,eAAe,KAAM,EAAgC,YAThE,QAAA,gCAAA;;ACWA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAVA,MAAa,EAKT,YAAmB,GAAA,KAAA,KAAA,GALvB,QAAA,MAAA,EAUA,MAAa,UAA0B,GAAvC,QAAA,eAAA;;ACRA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALA,MAAA,EAAA,QAAA,YAKA,MAAa,UAA6B,MAGxC,YAAY,GACV,QAHF,KAAA,KAAO,uBAKqB,iBAAf,EACJ,KAAA,oBACS,iHAC6B,KAAK,UAC5C,kCAEK,aAAsB,EAAA,OAAS,EAAW,KAC9C,KAAA,oBAED,EAAW,2EAEb,6DACO,aAAsB,EAAA,QAC1B,KAAA,QACH,2JAIJ,OAAO,eAAe,KAAM,EAAqB,YAxBrD,QAAA,qBAAA;;ACsBa,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA5Bb,MAAa,EAAb,cACE,KAAA,cAAuC,IAAI,IAE3C,eAAe,GACN,OAAA,KAAK,cAAc,IAAI,GAGhC,WAAc,GACL,OAAA,KAAK,cAAc,IAAI,EAAa,MAApC,MAGT,kBAAkB,EAAc,GAC1B,OAAA,KAAK,cAAc,IAAI,GAClB,KAAK,eAAe,IAGxB,KAAA,cAAc,IAAI,EAAM,GACtB,KAAK,eAAe,IAG7B,cAAc,GACN,MAAA,EAAqB,KAAK,cAAc,IAAI,EAAa,MAC3D,EAAkB,OAAa,EAAkB,MAAU,QAC7D,EAAkB,MAAU,OAAO,KAAK,EAAkB,MAA1D,IAvBN,QAAA,0BAAA,EA4Ba,QAAA,0BAA4B,IAAI;;AC5B7C,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACaA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAbA,MAAA,EAAA,QAAA,eACA,EAAA,QAAA,2CACA,EAAA,QAAA,gCACA,EAAA,QAAA,WAIA,EAAA,QAAA,mCAMA,MAAa,EA0BX,YAAY,GATJ,KAAA,SAGJ,IAAI,IAOD,KAAA,GAAK,EA6BZ,IAAO,GACE,QAAE,KAAK,YAAY,GA+B5B,IAAO,GACC,MAAA,EAAkB,EAAA,UAAU,QAAG,GAC/B,EAAU,EAAgB,YAAY,GACtC,EAAgB,KAAK,YAAY,GAEnC,GAAA,IAA8B,IAAnB,EAAQ,OACZ,OAAA,KAAK,gBAAgB,EAAY,GAGxC,GAAA,EACO,OAAA,KAAK,gBAAgB,EAAY,GAGxC,GAAA,GAAW,OAAS,EAAiB,CACjC,MAAA,EAAgB,OAAO,OAAO,GAAI,GACxC,EAAc,WAAQ,EAChB,MAAA,EAAQ,KAAK,gBAAgB,EAAY,GAExC,OADF,KAAA,IAAI,EAAY,GACd,EAGF,OAAA,KAAK,gBAAgB,EAAY,GAmB1C,QAAW,GACF,OAAA,KAAK,eAAe,GAAI,IAAI,GACjC,KAAK,gBAAgB,EAAI,IAqC7B,IACE,EAIA,GAEI,GAAA,aAAuC,MAElC,OADP,EAA4B,QAAS,GAAW,KAAK,IAAI,IAClD,KAGP,GAAuC,iBAAhC,GACP,aAAuC,EAAA,MAEhC,OAAA,KAAK,IAAI,CAAE,GAAI,EAA6B,MAAO,IAG1D,GAAuC,iBAAhC,GACN,EAAwD,QAElD,OAAA,KAAK,IAAI,CACd,GAAK,EAAwD,QAC7D,MAAO,IAGP,GAAA,aAAuC,SAClC,OAAA,KAAK,IAAI,CACd,KAAM,EACN,GAAI,EACJ,MAAO,IAKL,MAAA,EAGF,EACE,EAAU,KAAK,SAAS,IAAI,GAO3B,OANH,IAAgC,IAArB,EAAQ,SACrB,OAAO,OAAO,EAAS,GAElB,KAAA,SAAS,IAAI,EAAY,GAGzB,KAMT,UAAU,GAMD,OALP,EAAI,QAAQ,IACL,KAAA,eAAe,GAAI,QAAQ,IACzB,KAAA,SAAS,OAAO,OAGlB,KAMT,QAES,OADF,KAAA,SAAS,QACP,KAUD,eACN,GAEO,OAAA,MAAM,KAAK,KAAK,SAAS,UAAU,OAAO,GAC3C,EAAQ,GACH,EAAQ,KAAO,KAGpB,EAAQ,MAAQ,aAAsB,YAEpC,EAAQ,OAAS,GACjB,EAAW,qBAAqB,EAAQ,OAU1C,YACN,GAEO,OAAA,MAAM,KAAK,KAAK,SAAS,UAAU,KAAK,GACzC,EAAQ,GAER,aAAsB,QACtB,EAAQ,cAAc,EAAA,OACrB,EAAmB,mBAAmB,EAAA,MAEhC,EAAQ,KAAQ,EAAmB,QAGrC,EAAQ,KAAO,KAGpB,EAAQ,MAAQ,aAAsB,WACjC,EAAQ,OAAS,GAStB,gBACN,EACA,GAGI,GAAA,QAA6B,IAAlB,EAAQ,MACZ,OAAA,EAAQ,MAMjB,KAAE,GAAY,EAAQ,MACpB,GAAY,EAAQ,WACC,iBAAf,GAA2B,aAAsB,EAAA,QAEjD,MAAA,IAAI,EAAA,qBAAqB,GAI/B,IAAA,OAAO,EAaP,GAZA,GAAW,EAAQ,KACrB,EAAO,EAAQ,KACN,GAAW,EAAQ,cAAc,SAC1C,EAAO,EAAQ,GACN,aAAsB,WAC/B,EAAO,IAOJ,EAAS,CACR,IAAC,EACG,MAAA,IAAI,EAAA,gCAAgC,GAE5C,EAAU,CAAE,KAAM,GACb,KAAA,SAAS,IAAI,EAAS,GAIvB,MAAA,EACJ,GAAQ,SAAY,QAAgB,YAC/B,QAAgB,YAAY,oBAAqB,QAClD,EACF,IAKA,EALA,EAAgB,EAChB,KAAK,iBAAiB,EAAM,GAC5B,GAIA,GAAA,EAAQ,QAIV,EAAS,EAAO,OAAO,QAAmB,IAAV,GAK9B,EAHE,EAAQ,mBAAmB,MAGpB,KAAK,IAAI,EAAQ,QAAQ,IAAY,EAAQ,QAAQ,OACzD,GAIG,EAAQ,WAAW,EAAQ,UAEhC,CAED,IAAC,EACG,MAAA,IAAI,EAAA,gCAAgC,GAG5C,EAAO,QAAQ,MAKf,EAAO,KAAK,MAER,EAAK,UAAU,UACjB,EAAK,UAAU,SAAS,KAAK,EAA7B,GAEF,EAAQ,IAAK,EAAK,KAAK,MAAM,EAAM,IACnC,EAAA,0BAA0B,kBAAkB,EAAI,KAAU,CACxD,KAAA,EACA,MAAA,IAYE,EAAM,QACR,EAAM,OAAO,KAAK,EAAlB,GAYG,OARH,IAAY,EAAQ,WAAa,IACjC,EAAQ,MAAQ,GAGhB,GACK,KAAA,sBAAsB,EAAM,GAG9B,EAMD,iBAAiB,EAAgB,GAChC,OAAA,EAAW,IAAI,CAAC,EAAW,KAC1B,MAAA,EAAe,MAAM,KAAK,EAAA,UAAU,SAAS,UAAU,KAC3D,GAAW,EAAQ,SAAW,GAAQ,EAAQ,QAAU,GAEtD,OAAA,EACK,EAAa,MAAM,MAI1B,GACA,EAAU,OACT,KAAK,gBAAgB,EAAU,MAEzB,KAAK,IAAI,QAJhB,IAcE,gBAAgB,GAEpB,OAA4E,IAA5E,CAAC,SAAU,UAAW,SAAU,UAAU,QAAQ,EAAM,eAOpD,sBACN,EACA,GAEA,EAAA,UAAU,SAAS,QAAQ,IACI,iBAAlB,EAAQ,QAIjB,EAAQ,OAAO,cAAgB,GAC7B,EAAO,qBAAqB,EAAQ,OAAO,eAI/C,EAAS,EAAQ,cAAgB,EAAQ,MAAM,UAvcrD,QAAA,kBAAA;;ACHA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAVA,MAAA,EAAA,QAAA,uBAUA,MAAa,EA6BJ,UAAG,GACJ,QAAe,IAAf,EAA0B,OAAO,KAAK,eAEtC,IAAA,EAAY,KAAK,UAAU,IAAI,GAM5B,OALF,IACH,EAAY,IAAI,EAAA,kBAAkB,GAC7B,KAAA,UAAU,IAAI,EAAY,IAG1B,EAyBF,WAAO,GACL,OAAA,KAAK,eAAe,IAAI,GA+B1B,WAAO,GACL,OAAA,KAAK,eAAe,IAAI,GAmB1B,eAAW,GACT,OAAA,KAAK,eAAe,QAAQ,GA+B9B,WACL,EAIA,GAGO,OADF,KAAA,eAAe,IAAI,EAAoC,GACrD,KAMF,iBAAU,GAER,OADF,KAAA,eAAe,UAAU,GACvB,KAMF,aAAM,GACP,GAAA,EAAa,CACT,MAAA,EAAW,KAAK,UAAU,IAAI,GAChC,IACF,EAAS,QACJ,KAAA,UAAU,OAAO,SAGnB,KAAA,eAAe,QACpB,MAAM,KAAK,KAAK,UAAU,UAAU,QAAQ,GAAK,EAAE,SAE9C,OAAA,KAMF,uBAAgB,GAEd,OADF,KAAA,SAAS,IAAI,EAAS,GACpB,KAMF,cAAO,GACL,OAAA,MA3Le,EAAA,eAAoC,IAAI,EAAA,uBAC9D,GAMsB,EAAA,UAA4C,IAAI,IAKxD,EAAA,SAAkC,IAAI,IApBxD,QAAA,UAAA;;ACHA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IANA,MAAA,EAAA,QAAA,wBACA,EAAA,QAAA,0BAGA,EAAA,QAAA,sBAEA,SAAgB,EACd,EACA,GAEQ,OAAA,IACA,MAAA,EAAqB,EAAA,oBACtB,IAAS,KAAK,UAAU,EAAS,KAAM,MAE5C,OAAO,eAAe,EAAQ,eAAgB,CAC5C,MAAO,EAAO,MAAQ,EAAO,YAAY,KACzC,UAAU,IAEZ,OAAO,eAAe,EAAQ,OAAQ,CACpC,MAAO,EACP,UAAU,IAEN,MAAA,EAAmB,GACvB,EAAK,OAAO,GAAG,cAAgB,EAAK,MAAM,GAE5C,EAAM,SAAe,CACnB,WAAY,EAAM,aAClB,WAAY,EACZ,QAAS,GAAW,KACpB,KAAM,EAAY,KAClB,uBACU,EAAgB,EAAY,UAAU,EAAO,gCAClD,EAAgB,EAAY,SAAS,KAAK,UAC7C,EACA,KACA,gBAEE,EAAM,0BAGN,MAAA,EAAiC,CACrC,KAAM,GAGe,iBAAZ,GAAwB,aAAmB,EAAA,OAClD,EAAQ,GAAK,EACb,EAAQ,SAAY,EAAiC,SACrD,EAAQ,OAAU,EAAiC,SAAU,EAC7D,EAAQ,UAAa,EAAiC,WAE/C,IACP,EAAQ,GAAM,EAAiC,GAC/C,EAAQ,QAAW,EAAiC,QACpD,EAAQ,SAAY,EAAiC,SACrD,EAAQ,OAAU,EAAiC,SAAU,EAC7D,EAAQ,UAAa,EAAiC,WAI1D,EAAA,UAAU,IAAI,IArDlB,QAAA,iBAAA;;AC0BA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA/BA,MAAA,EAAA,QAAA,mCA+BA,SAAgB,EAAQ,GACb,OAAA,EAAA,iBAAiB,EAAS,CAAE,KAAM,YAD7C,QAAA,QAAA;;;;AChCA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,EAAA,QAAA,gBACA,EAAA,QAAA;;ACQA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IATA,IAAA,EAAA,QAAA,iCAAS,QAAA,WAAA,EAAA,QACT,IAAA,EAAA,QAAA,eAAS,QAAA,UAAA,EAAA,UACT,IAAA,EAAA,QAAA,uBAAS,QAAA,kBAAA,EAAA,kBACT,IAAA,EAAA,QAAA,mBAAS,QAAA,QAAA,EAAA,QACT,IAAA,EAAA,QAAA,0BAAS,QAAA,eAAA,EAAA,eACT,IAAA,EAAA,QAAA,6BAAS,QAAA,kBAAA,EAAA,kBACT,IAAA,EAAA,QAAA,2BAAS,QAAA,gBAAA,EAAA,gBACT,IAAA,EAAA,QAAA,sBAAS,QAAA,WAAA,EAAA,WACT,IAAA,EAAA,QAAA,WAAS,QAAA,eAAA,EAAA,MACT,EAAA,QAAA;;ACFA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAHA,MAAA,EAAA,QAAA,QACA,EAAA,QAAA,kBAEA,MAAa,EAUX,YAAY,GATL,KAAA,MAAmC,IAAI,EAAA,gBAAgB,IAGvD,KAAA,IAAqB,IAAI,IAOzB,KAAA,KAAO,EAAM,KACb,KAAA,OAAS,EAAM,OACf,KAAA,SAAS,GAPT,IAAI,GACF,OAAA,KAAK,IAAI,IAAI,GASd,SAAS,GACX,KAAK,OAAO,QACT,KAAA,YAAY,GAIb,YAAY,GAClB,EAAM,MAAM,QAAQ,GAAQ,KAAK,SAAS,EAAI,MAGxC,YAAY,GACd,KAAK,OAAO,QACT,KAAA,SAAS,EAAS,KAIpB,QAAQ,GACT,OAAA,KAAK,IAAI,IAAI,GACR,KAAK,IAAI,GAET,KAIJ,QAAQ,GACR,KAAA,IAAI,IAAI,EAAS,IAAS,GACzB,MAAA,EAAO,KAAK,IAAI,EAAS,KACzB,EAAgB,KAAK,MACxB,WACA,OAAO,GAAQ,EAAI,MAAY,EAAS,KAGpC,OAFF,KAAA,MAAM,KAAK,IAAI,EAAe,IAC9B,KAAA,YAAY,GACV,EAGD,SAAS,GACR,OAAA,IAAI,EAAA,WAAW,GAAY,EAAS,QACxC,KACC,EAAA,YAAY,KAAK,OAAO,OAAQ,EAAA,GAAG,IACnC,EAAA,KAAK,GACL,EAAA,KAAK,IAEN,UAAU,IAAM,KAAK,WAAW,IAG9B,WAAW,GACV,MAAA,EAAgB,KAAK,MACxB,WACA,OAAO,GAAQ,EAAI,MAAY,GAC7B,KAAA,IAAI,OAAO,GACX,KAAA,MAAM,KAAK,GAGX,kBAAkB,GAChB,OAAA,KAAK,MAAM,eAAe,KAC/B,EAAA,OAAO,MAAQ,KAAK,IAAI,IAAI,IAC5B,EAAA,IAAI,IAAM,KAAK,IAAI,IAAI,KAIpB,aACE,OAAA,KAAK,MAAM,eAAe,KAC/B,EAAA,IAAI,IACF,EAAM,QAAQ,GAAK,KAAK,WAAW,EAAC,OAC7B,MAhFf,QAAA,WAAA;;ACEa,aATb,SAAS,EAA0B,GAC1B,OAAA,EAAE,OAAO,CAAC,EAAK,KACpB,EAAI,GAAO,EACJ,GACN,OAAO,OAAO,OAKN,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAHA,QAAA,eAAiB,EAAQ,CAAC,OAAQ,WAGlC,QAAA,eAAiB,EAAQ,CAAC,eAAgB;;ACqBvD,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA9BA,MAAa,EAAb,cACE,KAAA,QAA4C,SAAxB,QAAQ,IAAI,QAChC,KAAA,QAAmB,EACnB,KAAA,MAAiB,EACjB,KAAA,aAAwB,EACxB,KAAA,aAAwB,GAL1B,QAAA,aAAA,EAQA,MAAa,GAAb,QAAA,mBAAA,EAMA,MAAa,GAAb,QAAA,qBAAA,EAMA,MAAa,GAAb,QAAA,kBAAA,EAUA,MAAa,EAAb,cACE,KAAA,MAAiB,EACjB,KAAA,YAAkC,IAAI,EACtC,KAAA,aAAsC,IAAI,EAC1C,KAAA,OAAwB,IAAI,GAJ9B,QAAA,YAAA;;AC1Ba,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAJb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,kBAGA,IAAa,EAAb,MADA,cAEE,KAAA,OAAsB,IAAI,EAAA,YAC1B,UAAU,GACR,OAAO,OAAO,KAAK,OAAQ,KAHlB,EAAa,EAAA,CADzB,EAAA,WACY,GAAA,QAAA,cAAA;;ACHb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,EAAA,QAAA,mBACA,EAAA,QAAA;;ACCA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAFA,MAAA,EAAA,QAAA,mBAEA,SAAgB,EAAY,GACjB,OAAA,SAAU,EAAkB,GAC/B,OAAO,eAAe,EAAQ,EAAc,CAC1C,IAAK,IAAM,EAAA,UAAU,IAAI,MAHnC,QAAA,SAAA;;ACGa,aAAA,IAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,mBACA,EAAA,QAAA,gDAGA,IAAa,EAAb,MAGE,IAAI,GACE,GAAA,KAAK,cAAc,OAAO,OAAO,QAAS,CACtC,MAAA,EAAI,CAAC,KAAK,UAAW,GAEpB,OADP,QAAQ,OAAO,GACR,GAIX,MAAM,GACJ,QAAQ,MAAM,GAGhB,YAAY,GACN,GAAA,KAAK,cAAc,OAAO,OAAO,QAC5B,OAAA,KAAK,IAAI,GAIpB,UACM,OAAA,KAAK,cAAc,OAAO,OAAO,QACzB,KAAK,MAAM,gBAEd,GAIX,eAAe,GACT,GAAA,KAAK,cAAc,OAAO,OAAO,YAE5B,OADF,KAAA,IAAI,GACF,KAIX,UAAU,GACJ,OAAA,KAAK,cAAc,OAAO,OAAO,OAC5B,EAEA,GAIX,eAAe,GACT,IAAA,KAAK,cAAc,OAAO,OAAO,YAG5B,MAAA,GAFF,KAAA,IAAI,KA7CY,EAAA,CAAxB,EAAA,SAAS,EAAA,eAA8B,EAAA,cAAa,mBAAb,OAAa,IAAb,EAAA,eAAA,EAAA,eAAa,EAAA,SAA5B,EAAA,UAAA,qBAAA,GADd,EAAe,EAAA,CAD3B,EAAA,WACY,GAAA,QAAA,gBAAA;;ACLb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACsBa,aAAA,IAAA,EAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAtBb,MAAA,EAAA,QAAA,QACA,EAAA,QAAA,kBACA,EAAA,QAAA,iBAMA,EAAA,QAAA,wBACA,EAAA,QAAA,oCAKA,EAAA,QAAA,6BAEM,EAA0B,CAC9B,mBACE,sFAIJ,IAAa,EAAY,EAAzB,MACE,YAAoB,GAAA,KAAA,OAAA,EAEb,KAAA,cAEH,IAAI,EAAA,gBAAgB,IACjB,KAAA,IAAqB,IAAI,IAChC,KAAA,OAAc,GAEA,2BACZ,GAEO,OAAA,IAAI,EAAA,WAA8B,GAGpC,SAAY,GAEb,OADW,KAAK,IAAI,IAAI,GAIrB,KAAK,IAAI,IAAI,GAFX,KAAK,YAAe,CAAE,KAAM,IAKhC,gBAAmB,GACjB,OAAA,MAAM,KAAK,KAAK,IAAI,QACxB,IAAI,IAED,GAAA,IAAS,EAAA,eAAe,SACxB,IAAS,EAAA,eAAe,aACxB,CACM,MAAA,EAAS,KAAK,SAGjB,GAAM,QAAQ,EAAA,eAAe,QAC5B,GAAA,GAAU,EAAO,MAAQ,IAAS,EAAO,KAAK,WACzC,OAAA,KAAK,SAAS,EAAO,KAAK,eAItC,OAAO,KAAO,GAGZ,0CACC,MAAA,EAAO,GAAG,OACb,MACC,GACA,MAAM,KAAK,KAAK,IAAI,QAAQ,IAAI,GAC9B,MAAM,KAAK,KAAK,SAAS,GAAK,IAAI,QAC/B,IAAI,GAAS,KAAK,gBAAgB,GAAa,KAAN,GACzC,OAAO,KAAO,KAGpB,IAAI,GAAQ,OAAO,OAAO,CAAE,MAAO,EAAG,KAAA,KACtC,OAAO,CAAC,EAAG,KACV,EAAE,EAAE,OAAS,EAAE,EAAE,OAAS,GAAK,EAAE,MAC1B,GACN,IACC,EAAa,OAAO,KAAK,GAAM,OAAO,GAAK,EAAK,GAAK,GACvD,GAAA,EAAW,OAAQ,CACf,MAAA,EAAO,KAAK,0BAA0B,EAAW,IACjD,EACJ,EAAK,GAAG,MAAR,SAAA,KAAkC,OAAO,GAAG,cAC5C,EAAK,GAAG,MAAR,SAAA,KAAkC,MAAM,GACpC,MAAA,IAAI,2BACE,EAAK,GAAG,MAAR,SAA0B,wBAC1B,OAAgB,EAAK,GAAG,wDACxB,WAAoB,EAAK,GAAG,yCAClB,EAAK,GAAG,eAAe,EAAK,GAAG,yCAGzC,EAAK,GAAG,iGAEc,EAAK,GAAG,kBACxC,EAAK,GAAG,6DAEgC,EAAK,GAAG,+BAG7C,OAAA,EAGD,gBAAgB,GACf,OAAA,IAAM,EAAA,eAAe,QAAU,IAAM,EAAA,eAAe,KAGtD,cAAc,GACZ,OAAA,MAAM,KAAK,KAAK,IAAI,QACxB,IAAI,IACG,MAAA,EAAgB,KAAK,SAAS,GAE9B,EAD4B,MAAM,KAAK,EAAc,IAAI,QACvB,OAAO,GACzC,KAAK,gBAAgB,QACvB,EAEO,IAAM,EAAU,MAGvB,GAAA,EAAM,OACD,OAAA,EAAc,QAAQ,EAAM,IAAI,OAG1C,OAAO,KAAO,GAAG,GAGf,0BAA0B,GACxB,OAAA,MAAM,KAAK,KAAK,IAAI,QACxB,IAAI,IACG,MAAA,EAAgB,KAAK,SAAc,GACnC,EAAQ,MAAM,KAAK,EAAc,IAAI,QAAQ,OAAO,IACpD,IAAA,KAAK,gBAAgB,GAGlB,OAAA,IAAM,IAGX,GAAA,EAAM,OAAQ,CACV,MAAA,EAAmB,EAAc,QAAQ,EAAM,IAC/C,EAAoB,KAAK,SAAmB,GAAQ,QACxD,EAAA,eAAe,QAEV,MAAA,CACL,WAAY,EAAkB,KAAK,WACnC,WAAY,EAAkB,KAAK,WACnC,aAAc,EAAiB,KAAK,aACpC,SAAU,EAAiB,IAC3B,IAAK,EAAkB,KAAK,IAC5B,MAAO,EAAiB,SAI7B,OAAO,KAAO,GAGZ,YACL,GAGI,GADW,KAAK,IAAI,IAAI,EAAM,MAEzB,OAAA,KAAK,IAAI,IAAI,EAAM,MAE5B,EAAM,MAAQ,EAAM,OAAS,GAC7B,EAAM,OAAS,EAAM,QAAU,KAAK,OAC9B,MAAA,EAAa,EAAa,oBAAuB,GAIhD,OAHF,KAAA,IAAI,IAAI,EAAW,KAAM,GACzB,KAAA,cAAc,KAAK,IAAI,KAAK,cAAc,WAAY,IACtD,KAAA,UAAa,GACX,EAGD,UAAa,GACd,KAAA,yBAA4B,IAE/B,EAAc,OAAO,oBACrB,KAAK,OAAO,qBAEP,KAAA,SAAS,GAIV,yBACN,GAEA,EAAW,MAAM,YAAY,UAAU,oBACrC,EAAW,MAAM,YAAY,UAAU,YACzC,EAAW,MAAM,YAAY,UAAU,YAAc,MACnD,QAAQ,MACN,EAAwB,mBAAqB,EAAW,QAKtD,SAAY,GACX,OAAA,IAAI,EAAA,WAAW,GAAY,EAAS,QACxC,KACC,EAAA,YACE,EAAc,OAAO,oBACnB,KAAK,OAAO,mBACd,EAAA,GAAG,IAEL,EAAA,KAAK,GACL,EAAA,KAAK,IAEN,UAAU,IAAM,KAAK,YAAY,IAG/B,YAAe,GACf,KAAA,IAAI,OAAO,EAAc,MACzB,KAAA,cAAc,KAAK,IACnB,KAAK,cACL,WACA,OAAO,GAAS,EAAM,OAAS,EAAc,QAI7C,cACL,EACA,GAEM,MAAA,EAAW,KAAK,SAAS,GACzB,EAAY,GAMX,OALP,EAAe,QAAQ,IACf,MAAA,EAAW,KAAK,YAAY,GAClC,EAAS,MAAM,WAAW,QAAQ,GAAQ,EAAS,QAAQ,IAC3D,EAAU,KAAK,KAEV,EAGF,aACD,IAAA,EACG,OAAA,KAAK,cAAc,KACxB,EAAA,KAAK,GACL,EAAA,IAAK,IACH,EAAiB,EAAO,IAAI,GAAK,EAAE,MACnC,EAAO,QAAQ,GAAS,KAAK,YAAY,IACzC,EAAe,QAAQ,GAAK,KAAK,YAAY,CAAE,KAAM,MAC9C,OAxNF,EAAY,EAAA,EAAA,CADxB,EAAA,UAE6B,EAAA,oBAAA,CAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,UADhC,GAAA,QAAA,aAAA;;ACfb,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,MAAa,EAAb,cACE,KAAA,eAA0B,aAC1B,KAAA,mBAAqC,KACrC,KAAA,OAAyB,IACzB,KAAA,cAAyB,GAJ3B,QAAA,4BAAA;;ACLA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAFA,EAAA,QAAA,0BACA,EAAA,QAAA,kBACA,EAAA,QAAA;;ACIa,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IANb,MAAA,EAAA,QAAA,QAEA,EAAA,QAAA,oCAIA,IAAa,EAAb,MADA,cAEU,KAAA,QAEJ,IAAI,EAAA,gBAAgB,IAChB,KAAA,cAEJ,IAAI,EAAA,gBAAgB,IAChB,KAAA,aAEJ,IAAI,EAAA,gBAAgB,IAExB,SAAS,GACF,KAAA,QAAQ,KAAK,IAAI,KAAK,QAAQ,WAAY,IAGjD,eAAe,GACR,KAAA,cAAc,KAAK,IAAI,KAAK,QAAQ,WAAY,IAGvD,cAAc,GACP,KAAA,aAAa,KAAK,IAAI,KAAK,QAAQ,WAAY,IAGtD,aACS,OAAA,KAAK,QAAQ,WAGtB,kBACS,OAAA,KAAK,aAAa,WAG3B,mBACS,OAAA,KAAK,cAAc,aAhCjB,EAAa,EAAA,CADzB,EAAA,WACY,GAAA,QAAA,cAAA;;ACmDA,aAAA,IAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAzDb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,uBACA,EAAA,QAAA,gDACA,EAAA,QAAA,QAsDA,IAAa,EAAb,MADA,cAEE,KAAA,aAA6B,IAAI,EAAA,QAGjC,QAEA,YAAY,EAAS,GACd,KAAA,aAAa,KAAK,GACnB,EAAQ,SACL,KAAA,OAAO,eAAe,cAEzB,GAAK,QAAQ,IAAI,EAAI,OACrB,EAAQ,MACL,KAAA,OAAO,eAAe,6BAE7B,QAAQ,KAAK,GAGf,UAAU,GACD,OAAA,IAAI,EAAA,WACT,GACE,GACA,EAAO,QACP,EAAO,QAAQ,GAAS,QAAQ,GAAG,EAAO,GAAK,EAAE,KAAK,QArBjC,EAAA,CAA1B,EAAA,SAAS,EAAA,iBAAiC,EAAA,cAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,SAA/B,EAAA,UAAA,cAAA,GAFhB,EAAkB,EAAA,CAD9B,EAAA,WACY,GAAA,QAAA,mBAAA;;ACzDb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACMa,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IANb,MAAA,EAAA,QAAA,kBACA,EAAA,QAAA,mBACA,EAAA,QAAA,uBACA,EAAA,QAAA,oCAGA,IAAa,EAAb,cAAyC,EAAA,aAEvC,cACQ,MAAA,EAAA,UAAU,IAAI,EAAA,kBACf,KAAA,WAAa,KAAK,YAAY,CAAE,KAAM,wBAG7C,IAAI,EAAK,GACA,OAAA,KAAK,WAAW,QAAQ,CAAE,IAAA,EAAK,KAAA,IAGxC,IAAI,GACK,OAAA,KAAK,WAAW,QAAQ,KAZtB,EAAmB,EAAA,CAD/B,EAAA,UAC+B,EAAA,oBAAA,KAAnB,GAAA,QAAA,oBAAA;;ACIA,aAAA,IAAA,EAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAVb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QACA,EAAA,QAAA,QACA,EAAA,QAAA,SACA,EAAA,QAAA,2BACA,EAAA,QAAA,gDACA,EAAA,QAAA,kBACA,EAAA,QAAA,uBAGA,IAAa,EAAb,MAIE,IAAI,EAAc,GACZ,OAAA,KAAK,MAAM,WAAW,IAAI,IAAI,IAC3B,KAAA,OAAO,kCAAkC,KACvC,EAAA,GAAG,KAAK,MAAM,WAAW,IAAI,GAAM,OAErC,IAAI,EAAA,WAAW,IAChB,EAAK,SAAS,YAChB,EAAA,IAAS,EAAM,IACT,IAAA,EAAO,GACX,EAAK,GAAG,OAAQ,GAAU,GAAQ,GAClC,EAAK,GAAG,MAAO,IAAM,EAAE,KAAK,MAC3B,GAAG,QAAS,IACb,QAAQ,MAAM,UAAY,EAAI,SAC9B,EAAE,MAAM,KAGV,EAAA,IAAQ,EAAM,IACR,IAAA,EAAO,GACX,EAAK,GAAG,OAAQ,GAAU,GAAQ,GAClC,EAAK,GAAG,MAAO,IAAM,EAAE,KAAK,MAC3B,GAAG,QAAS,IACb,QAAQ,MAAM,UAAY,EAAI,SAC9B,EAAE,MAAM,OAGX,KACD,EAAA,IAAI,GAAO,KAAK,MAAM,WAAW,QAAQ,CAAE,IAAK,EAAM,KAAM,QA7BjC,EAAA,CAA9B,EAAA,SAAS,EAAA,qBAAoC,EAAA,cAAmB,mBAAnB,OAAmB,IAAnB,EAAA,qBAAA,EAAA,qBAAmB,EAAA,SAAlC,EAAA,UAAA,aAAA,GACJ,EAAA,CAA1B,EAAA,SAAS,EAAA,iBAAiC,EAAA,cAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,SAA/B,EAAA,UAAA,cAAA,GAFhB,EAAc,EAAA,CAD1B,EAAA,WACY,GAAA,QAAA,eAAA;;ACTb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,EAAA,QAAA,sBACA,EAAA,QAAA;;ACoDA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IArDA,MAAM,EAAO,QAAQ,QACf,EAAK,QAAQ,MACb,EAAQ,SAAS,OAAQ,GAG/B,SAAgB,EAAO,EAAI,EAAO,EAAI,GACd,mBAAT,GACP,EAAI,EACJ,EAAO,IAED,GAAwB,iBAAT,IACrB,EAAO,CAAE,KAAM,IAGf,IAAA,EAAO,EAAK,KACV,MAAA,EAAM,EAAK,IAAM,OAEV,IAAT,IACA,EAAO,GAAU,QAAQ,SAExB,IAAM,EAAO,MAEZ,MAAA,EAAK,GAAK,aAChB,EAAI,EAAK,QAAQ,GAEjB,EAAI,MAAM,EAAG,EAAM,SAAU,GACrB,IAAC,EAEM,OAAA,EAAG,KADV,EAAO,GAAQ,GAGX,OAAA,EAAG,MACF,IAAA,SACD,EAAO,EAAK,QAAQ,GAAI,EAAM,SAAU,EAAI,GACpC,EAAI,EAAG,EAAI,GACV,EAAO,EAAG,EAAM,EAAI,KAE7B,MAKJ,QACI,EAAI,KAAK,EAAG,SAAU,EAAK,GAGnB,IAAQ,EAAK,cAAe,EAAG,EAAI,GAClC,EAAG,KAAM,QAOlC,SAAgB,EAAW,EAAI,EAAO,GAC7B,GAAwB,iBAAT,IAChB,EAAO,CAAE,KAAM,IAGf,IAAA,EAAO,EAAK,KACV,MAAA,EAAM,EAAK,IAAM,OAEV,IAAT,IACA,EAAO,GAAU,QAAQ,SAExB,IAAM,EAAO,MAElB,EAAI,EAAK,QAAQ,GAEb,IACA,EAAI,UAAU,EAAG,GACjB,EAAO,GAAQ,EAEnB,MAAO,GACK,OAAA,EAAK,MACJ,IAAA,SACD,EAAO,EAAW,EAAK,QAAQ,GAAI,EAAM,GACzC,EAAW,EAAG,EAAM,GACpB,MAKJ,QACQ,IAAA,EACA,IACA,EAAO,EAAI,SAAS,GAExB,MAAO,GACG,MAAA,EAEN,IAAC,EAAK,cAAe,MAAM,GAKpC,OAAA,EA1FX,QAAA,OAAA,EAgDA,QAAA,WAAA;;ACnCa,aAAA,IAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAlBb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,MASA,EAAA,QAAA,QACA,EAAA,QAAA,kBACA,EAAA,QAAA,uBACA,EAAA,QAAA,gDACA,EAAA,QAAA,QACA,EAAA,QAAA,UAGA,IAAa,EAAb,MAGE,UAAU,EAAgB,EAAU,EAAY,GACvC,OAAA,KAAK,OAAO,GAAQ,KACzB,EAAA,IAAI,KACG,KAAA,OAAO,uCACc,qBAA8B,OAG1D,EAAA,UAAU,IAAM,KAAK,gBAAgB,EAAQ,EAAU,KAI3D,eAAe,EAAgB,EAAU,EAAY,GAC5C,OAAA,KAAK,OAAO,GAAQ,KACzB,EAAA,UAAU,IAAM,KAAK,gBAAgB,EAAQ,EAAU,IACvD,EAAA,IAAI,KACG,KAAA,OAAO,+CACsB,+BAAwC,QAEhE,KAAU,OAK1B,cAAc,EAAQ,GACb,OAAA,EAAA,cAAc,KAAK,KAAnB,CACL,EACA,KAAK,UAAU,EAAM,KAAM,GAAK,KAChC,CAAE,SAAU,UAIhB,SAAS,GACA,OAAA,KAAK,MAAM,EAAA,aAAa,KAAK,KAAlB,CAAwB,EAAM,CAAE,SAAU,WAG9D,UAAU,GACD,OAAA,EAAA,WAAW,GAGpB,gBAAgB,EAAQ,EAAU,GACzB,OAAA,IAAI,EAAA,WAAW,GACpB,EAAA,aAAa,KAAU,IAAY,EAAS,IAAM,EAAE,MAAK,KAI7D,OAAO,GACE,OAAA,IAAI,EAAA,WAAW,IACpB,EAAA,OAAO,EAAQ,IACT,GACF,QAAQ,MAAM,GACd,EAAS,OAAM,IAEf,EAAS,MAAK,GAEhB,EAAS,eAKR,WACL,EACA,EAAkB,gBAEX,OAAA,IAAI,EAAA,WAAW,IACf,KAAA,WACH,EACA,CAAC,EAAK,KACA,EACF,EAAS,MAAM,GAEf,EAAS,KAAK,GAEhB,EAAS,YAEX,KAKE,WACN,EACA,EACA,EAAU,gBAEN,IAAA,EAAU,GACR,MAAA,EAAa,KAAK,WAAW,KAAK,MACxC,EAAA,QAAQ,EAAK,CAAC,EAAK,KACb,GAAA,EACK,OAAA,EAAK,GAEV,IAAA,EAAU,EAAK,OACf,IAAC,EACI,OAAA,EAAK,KAAM,GAEpB,EAAK,QAAQ,IACX,EAAO,EAAA,QAAQ,EAAK,GACpB,EAAA,KAAK,EAAM,CAAC,EAAK,KACX,GAAQ,EAAK,eACf,EAAQ,KAAK,GACR,EAAK,SAAS,KAWL,GACZ,EAAK,KAAM,GAXX,EACE,EACA,CAAC,EAAK,KACJ,EAAU,EAAQ,OAAO,KAClB,GACL,EAAK,KAAM,IAGf,KAMJ,EAAQ,KAAK,KACN,GACL,EAAK,KAAM,YAtHI,EAAA,CAA1B,EAAA,SAAS,EAAA,iBAAiC,EAAA,cAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,SAA/B,EAAA,UAAA,cAAA,GADhB,EAAW,EAAA,CADvB,EAAA,WACY,GAAA,QAAA,YAAA;;AClBb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACQa,aAAA,IAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,gDACA,EAAA,QAAA,mBAGA,IAAa,EAAb,MA2BS,aA1BkB,EAAA,CAAxB,EAAA,SAAS,EAAA,eAA+B,EAAA,cAAa,mBAAb,OAAa,IAAb,EAAA,eAAA,EAAA,eAAa,EAAA,SAA7B,EAAA,UAAA,cAAA,GADd,EAAkB,EAAA,CAD9B,EAAA,WACY,GAAA,QAAA,mBAAA;;ACFA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IANb,MAAA,EAAA,QAAA,oCAEA,EAAA,QAAA,QACA,EAAA,QAAA,iBAGA,IAAa,EAAb,MADA,cAEE,KAAA,mBAA0D,IAAI,EAAA,gBAC5D,IAEF,KAAA,SAAqB,GAGrB,YAAY,GACL,KAAA,mBAAmB,KAAK,IACxB,KAAK,mBAAmB,cACxB,IAIP,kBACQ,MAAA,EAAM,KAAK,mBAAmB,YAAc,GAC7C,KAAA,SAAW,IAAI,IAAI,IAAI,EAAI,IAAI,MAAQ,EAAE,QAAQ,EAAE,aAG1D,kBACS,OAAA,IAAI,QAAQ,CAAC,EAAS,KACtB,KAAA,kBACD,KAAK,QACF,KAAA,MAAM,OAAO,mBAAmB,QAChC,KAAA,MAAM,OAAO,mBAAmB,QAChC,KAAA,MAAM,mBAAmB,QACzB,KAAA,MAAM,QAEb,QAAQ,iDACuC,KAAK,SAAS,cAExD,KAAA,MAAQ,EAAa,MAAM,MAAO,CAAC,OAAQ,KAAK,WAChD,KAAA,MAAM,OAAO,GAAG,OAAQ,GAAQ,QAAQ,OAAO,MAAM,IACrD,KAAA,MAAM,OAAO,GAAG,OAAQ,IAC3B,QAAQ,OAAO,MAAM,KAGlB,KAAA,MAAM,GAAG,OAAQ,IACpB,QAAQ,sCAAsC,KAC9C,QAAQ,qCAC2B,KAAK,SAAS,cAE5C,KAAA,MAAQ,WA1CR,EAAU,EAAA,CADtB,EAAA,WACY,GAAA,QAAA,WAAA;;ACNA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,QAAA,eAAyD,CAClE,CACI,KAAM,aACN,KAAM,qCAEV,CACI,KAAM,iBACN,KAAM,yBAEV,CACI,KAAM,SACN,KAAM,gCAEV,CACI,KAAM,QACN,KAAM;;ACWD,aAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA1Bb,MAAA,EAAA,QAAA,oCAMA,EAAA,QAAA,QAQA,EAAA,QAAA,kBACA,EAAA,QAAA,cACA,EAAA,QAAA,WACA,EAAA,QAAA,wCACA,EAAA,QAAA,gDACA,EAAA,QAAA,sCACA,EAAA,QAAA,8BAEA,EAAA,QAAA,eACA,EAAA,QAAA,YAGA,IAAa,EAAb,MADA,cAEE,KAAA,qBAA+B,QAAQ,qBACvC,KAAA,qCAA+C,QAAQ,sBAQvD,KAAA,UAEI,IAAI,EAAA,gBAAgB,EAAA,gBACxB,KAAA,gBAA0B,KAAK,YAAY,kBAC3C,KAAA,uBAAiC,SACjC,KAAA,oBAA8B,eAC9B,mBAAmB,GACZ,KAAA,gBAAkB,KAAK,YAAY,GAE1C,YAAY,GACH,OAAA,KAAK,UAAU,WAAW,OAAO,GAAK,EAAE,OAAS,GAAM,GAAG,KAGnE,gBAAgB,GACT,KAAA,UAAU,KAAK,IAAI,KAAK,UAAU,cAAe,IAGxD,qBAAqB,GACZ,OAAA,EAAA,KAAK,EAAS,OAAO,IAG9B,eAAe,GACT,IAAC,EACG,MAAA,IAAI,MAAM,6BAoBpB,QACM,IAAA,GAAQ,EACR,IACE,SACF,GAAQ,GAEV,MAAO,IACF,OAAA,EAGT,2BACM,IAAA,EAA2D,GAC3D,IACF,EAAW,KAAK,YAAY,SAC1B,KAAK,mCAEP,MAAO,GACP,QAAQ,yDAEA,KAAK,yDAEE,mEAOV,OAHP,EAAS,gBAAkB,EAAS,iBAAmB,GACvD,EAAS,gBAAgB,UACvB,EAAS,gBAAgB,WAAa,GACjC,EAGT,wBAAwB,GAChB,MAAA,OACJ,KAAK,8BACI,IACL,EAAW,KAAK,2BAQf,OAPgB,EAAS,gBAAgB,UAAU,OACxD,GAAK,IAAM,GACX,SAEA,EAAS,gBAAgB,UAAU,KAAK,GACnC,KAAA,0BAA0B,IAE1B,EAAA,IAAG,GAGZ,0BAA0B,GACnB,KAAA,YAAY,cAAc,QAAQ,MAAQ,iBAAkB,GAGnE,kBACM,IAAA,EACA,IACF,EAAc,KAAK,YAAY,SAAS,KAAK,mBAC7C,MAAO,GACP,EAAc,GAET,OAAA,EAGT,qBACM,IAAA,EACA,IACF,EAAc,KAAK,YAAY,YAAY,QAAQ,sBACnD,MAAO,GACP,EAAc,GAET,OAAA,EAGT,sBACQ,MAAA,EAAO,KAAK,qBACd,OAAA,EAAK,aACA,OAAO,KAAK,EAAK,cAAc,IAAI,IAAS,CACjD,KAAA,EACA,QAAS,EAAK,aAAa,MAGxB,GAGT,gBAAgB,GAEV,IAAA,EADS,KAAK,kBACsB,KAClC,MAAA,EAAQ,GAUP,OATF,IACH,EAAa,KAAK,qBAEpB,EAAW,QAAQ,IACX,MAAA,EAAU,EAAE,aAAa,OAAO,GAAO,IAAQ,GACjD,EAAQ,QACV,EAAM,KAAK,EAAQ,MAGhB,EAAM,OAGf,uBAEM,IAAA,EADS,KAAK,kBACsB,KACpC,EAAO,GAkBP,GAjBC,IACH,EAAa,KAAK,qBAEpB,EAAW,QAAQ,IACX,MAAA,EAAO,EAAE,aACZ,IAAI,IACI,CAAE,MAAO,EAAG,KAAM,KAE1B,OAAO,CAAC,EAAG,KACV,EAAE,EAAE,OAAS,EAAE,EAAE,OAAS,GAAK,EAAE,MAC1B,GACN,IAEC,EAAa,OAAO,KAAK,GAAM,OAAO,GAAK,EAAK,GAAK,GAC3D,EAAO,IAAI,KAAS,KAGlB,EAAK,OACD,MAAA,IAAI,yDAC2C,KAAK,UACtD,MAIC,OAAA,EAAK,OAGd,oBACS,MAAA,CAAC,CAAE,SAAU,KAAK,gBAAiB,aAAc,KAG1D,iBAAiB,GACT,MAAA,EAAO,KAAK,kBACd,IAAA,EAA+B,EAAK,KACnC,IACH,EAAa,KAAK,qBAEd,MAAA,EAAW,KAAK,sBAClB,EAAS,SACX,EAAK,SAAW,GAEd,KAAK,gBAAgB,GAClB,KAAA,OAAO,0BACY,0CAGxB,EAAW,GAAG,aAAa,KAAK,GAChC,EAAK,KAAO,GAGT,KAAA,YAAY,cAAc,KAAK,kBAAmB,GAGzD,oBAAoB,GACZ,MAAA,EAAS,EAAQ,IAAI,GAAK,KAAK,mBAAmB,IACjD,OAAA,EAAA,cAAc,EAAO,OAAS,EAAS,EAAA,MAGhD,yBAAyB,GAChB,OAAA,KAAK,eACT,IAAI,EAAO,SAAW,EAAO,KAAM,EAAO,MAC1C,KACC,EAAA,IAAI,IACE,IAAC,EACG,MAAA,IAAI,MACR,2CACE,EAAO,SACP,EAAO,MAGT,IAAA,EAAM,EACJ,MAAA,EAAa,qCACf,GAAA,EAAI,SAAS,GACX,IACF,EAAM,EAAE,MAAM,GAAY,GAC1B,MAAO,IAEJ,OAAA,IAET,EAAA,IAAI,IACE,IAAA,EAAM,EACN,IACF,EAAM,KAAK,MAAM,GACjB,MAAO,IACF,OAAA,KAKP,oBACN,EACA,GAEO,OAAA,EAAA,cACL,EAAa,OACT,EAAa,IAAI,GACf,KAAK,mBAAmB,CAAE,SAAU,EAAO,SAAU,KAAM,KAE7D,EAAA,GAAG,KAIH,4BACN,EACA,GAEI,OAA8B,IAA9B,EAAmB,OACd,KAAK,YAAY,mBACnB,IAAS,KAAK,0BAA0B,EAAmB,KAC9D,aACA,IAGK,EAAA,IAAG,GAId,mBAAmB,GACb,IAAC,EAAO,SACJ,MAAA,IAAI,sCAAsC,EAAO,QAGrD,IAAC,EAAO,KACJ,MAAA,IAAI,sCAAsC,EAAO,YAErD,IAAA,EACA,EACE,MAAA,EAAa,EAAO,SAAW,EAAO,KACxC,IAAA,EACA,EACA,EACA,EACA,EACA,EACG,OAAA,KAAK,yBAAyB,GAAQ,KAC3C,EAAA,IAAI,IACG,EAAG,QACN,QAAQ,IACN,wIAIN,EAAA,OAAQ,KAAuC,EAAI,QACnD,EAAA,IAAK,IACH,EAAa,EAAe,KAC5B,EAAqB,EAAW,MAAM,KACtC,KAAY,QAAQ,SAAS,KAAK,uBAClC,KAAgB,EAAO,WAAW,EAAe,SACjD,KAAmB,EAAO,WAAW,EAAe,UACpD,EAAe,aAAe,EAAe,cAAgB,GAC7D,EAAe,SAAW,EAAe,UAAY,GACrD,EAAuB,EAClB,KAAA,WAAW,YAAY,EAAe,UAC3C,EAA+C,IAAjC,EAAW,MAAM,KAAK,OACpC,EAAY,EAAc,EAAa,EAAW,MAAM,KAAK,GACxD,KAAA,OAAO,4CACmB,iBAA0B,KAAK,UAC1D,MAGG,IAET,EAAA,UAAU,GACR,KAAK,oBAAoB,EAAe,aAAc,IAExD,EAAA,UAAU,KACH,KAAA,OAAO,sCACa,yBAEpB,KAAA,OAAO,mCAAmC,MAC1C,KAAA,OAAO,0BACC,KAAK,UAAU,EAAsB,KAAM,SAEjD,KAAK,eAAe,IAAI,EAAY,EAAO,QAEpD,EAAA,UAAU,GACR,KAAK,YAAY,UACf,EAAS,EACT,WACA,EACA,IAGJ,EAAA,UAAU,IAAM,KAAK,eAAe,IAAI,EAAe,EAAO,OAC9D,EAAA,UAAU,GACR,KAAK,YAAY,UACf,KAAY,KAAK,0BAA0B,IAC3C,aACA,EACA,IAGJ,EAAA,IAAI,KACE,QAAQ,IAAI,kBACT,KAAA,4BAA4B,EAAQ,KAG7C,EAAA,UAAU,IAAM,KAAK,wBAAwB,EAAW,MAAM,KAAK,KACnE,EAAA,IAAI,KAAO,CACT,SAAU,EAAO,SACjB,KAAM,EAAO,KACb,QAAS,EAAqB,QAC9B,KAAM,EAAqB,KAC3B,aAAc,EAAqB,aACnC,SAAU,EAAqB,YAEjC,EAAA,IAAI,KACE,EAAqB,SAAS,QAC3B,KAAA,WAAW,qBAMxB,gBACE,EACA,EACA,EACA,GAEI,OAAC,EAGE,KAAK,eAAe,IAAI,GAAY,KACzC,EAAA,KAAK,GACL,EAAA,IAAI,IACG,KAAA,OAAO,eAAe,SACpB,IAET,EAAA,UAAU,GACR,KAAK,YAAY,UACf,EACA,EACA,EAAO,gBACP,KAbG,EAAA,IAAG,GAmBd,aACE,EACA,GACA,eAAE,EAAF,UAAkB,GAAc,IAE1B,MAAA,EAAS,EAAA,MAAM,GAAa,KAE9B,OADC,KAAA,eAAe,GAChB,KAAK,SACP,EAAS,OACP,OAAO,OACL,CACE,IAAK,CACF,CAAA,GAAQ,EAAO,OAGpB,EAAO,iBAGJ,EAAS,OAAO,EAAO,OAEzB,IAAI,EAAA,WAAW,IACd,MAAA,EAAa,EAAO,SACpB,EAAkB,EAAO,UACzB,EAAa,EAAO,KACpB,EAAkB,EAAO,UACzB,EAAuB,EAAO,gBAAkB,GAChD,EACJ,EAAO,kBAAoB,KAAK,uBAC5B,KAAkB,GACtB,QAAQ,QAAQ,KAAiB,KAAmB,KAAc,IAC9D,KAAY,GAChB,QAAQ,QAAQ,IAAgB,IAC5B,KAAc,KAAc,IAElC,OAAO,OAAO,EAAsB,CAClC,MAAK,OAAA,OAAA,CAAK,CAAA,GAAa,GAAiB,EAAqB,SAG/D,EAAS,OAAO,GAEZ,KAAK,YAAY,UAAU,IACxB,KAAA,OAAO,sCACgB,wBAAiC,IAAgB,KAAmB,KAAc,kCAEzG,KAAA,qBAAqB,GACvB,KAAK,EAAA,KAAK,IACV,UACC,IACE,EAAS,KAAK,GACd,EAAS,YAEX,IACE,EAAS,MAAM,GACf,EAAS,eAIV,KAAA,OAAO,sCACgB,mCAA4C,IAAgB,KAAmB,KAAc,kCAEpH,KAAA,OAAO,sCACgB,QAAiB,oBAExC,KAAA,eACF,IAAI,GACJ,KACC,EAAA,KAAK,GACL,EAAA,IAAI,IAAM,KAAK,OAAO,YAAY,UAClC,EAAA,UAAU,GACR,KAAK,YAAY,UAAU,EAAQ,EAAU,EAAO,SAAU,IAEhE,EAAA,UAAU,IACR,KAAK,gBAAgB,EAAO,QAAS,EAAQ,EAAU,IAEzD,EAAA,UAAU,IAAM,KAAK,qBAAqB,KAE3C,UACC,IACE,EAAS,KAAK,GACd,EAAS,YAEX,IACE,EAAS,MAAM,GACf,EAAS,gBAKhB,KAAK,EAAA,UAAU,IACf,cA/dqB,EAAA,CAAzB,EAAA,SAAS,EAAA,gBAAwC,EAAA,cAAc,mBAAd,OAAc,IAAd,EAAA,gBAAA,EAAA,gBAAc,EAAA,SAAtC,EAAA,UAAA,sBAAA,GACH,EAAA,CAAtB,EAAA,SAAS,EAAA,aAAkC,EAAA,cAAW,mBAAX,OAAW,IAAX,EAAA,aAAA,EAAA,aAAW,EAAA,SAAhC,EAAA,UAAA,mBAAA,GACI,EAAA,CAA1B,EAAA,SAAS,EAAA,iBAAiC,EAAA,cAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,SAA/B,EAAA,UAAA,cAAA,GACG,EAAA,CAA7B,EAAA,SAAS,EAAA,oBAAwC,EAAA,cAAkB,mBAAlB,OAAkB,IAAlB,EAAA,oBAAA,EAAA,oBAAkB,EAAA,SAAtC,EAAA,UAAA,0BAAA,GACR,EAAA,CAArB,EAAA,SAAS,EAAA,YAAgC,EAAA,cAAU,mBAAV,OAAU,IAAV,EAAA,YAAA,EAAA,YAAU,EAAA,SAA9B,EAAA,UAAA,kBAAA,GARX,EAAgB,EAAA,CAD5B,EAAA,WACY,GAAA,QAAA,iBAAA;;ACRb,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAhBA,MAAa,GAAb,QAAA,uBAAA,EAgBA,MAAa,GAAb,QAAA,2BAAA;;ACjBA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,EAAA,QAAA,wBACA,EAAA,QAAA;;ACGa,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAJb,MAAA,EAAA,QAAA,oCAIA,IAAa,EAAb,MADA,cAEE,KAAA,cAA+B,IAAI,IACnC,eACE,EACA,GAGO,OADF,KAAA,cAAc,IAAI,EAAS,GACzB,KAAK,eAAe,GAE7B,eAAe,GACN,OAAA,KAAK,cAAc,IAAI,KAVrB,EAAW,EAAA,CADvB,EAAA,WACY,GAAA,QAAA,YAAA;;ACGA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAPb,MAAA,EAAA,QAAA,uCAOA,IAAa,EAAb,MACE,cAAc,EAAG,EAAoC,GAC/C,IAAC,EAAG,CACA,MAAA,EAAe,EAAK,OAAO,GAAG,cAAgB,EAAK,MAAM,GACzD,MAAA,IAAI,uBACF,EAAS,SAAS,gCACN,EAAS,SAAS,4CACb,EAAS,SAAS,sEACK,YAC9C,EAAS,SAAS,gFAGqC,iCACvD,EAAS,SAAS,6BAMxB,2BACE,EACA,EACA,GAEI,GAAA,EAAE,SAAS,OAAS,EAAM,CACtB,MAAA,EACJ,EAAE,SAAS,KAAK,OAAO,GAAG,cAAgB,EAAE,SAAS,KAAK,MAAM,GAC5D,EAAe,EAAK,OAAO,GAAG,cAAgB,EAAK,MAAM,GACzD,MAAA,IAAI,uBACF,EAAS,SAAS,iCACL,EAAS,SAAS,8CACb,EAAS,SAAS,wCAC3B,MACf,EAAE,SAAS,+DACwC,6FAE7C,EAAE,SAAS,mCAMvB,gBAAgB,EAAG,GACb,GAAoB,WAApB,EAAE,SAAS,KACP,MAAA,IAAI,uBACF,EAAS,SAAS,iCACL,EAAS,SAAS,8CACb,EAAS,SAAS,wCAC3B,EAAE,SAAS,KAAK,OAAO,GAAG,cAC/B,EAAE,SAAS,KAAK,MAAM,OAChC,EAAE,+JAGI,EAAE,2CAMd,iBAAiB,EAAG,GACb,KAAA,cAAc,EAAG,EAAU,WAC5B,EAAE,SAGD,KAAA,2BAA2B,EAAG,EAAU,WAG/C,eAAe,EAAG,GACX,KAAA,cAAc,EAAG,EAAU,UAC5B,EAAE,SAGD,KAAA,2BAA2B,EAAG,EAAU,UAG/C,mBAAmB,EAAG,GACf,KAAA,cAAc,EAAG,EAAU,cAC5B,EAAE,SAGD,KAAA,2BAA2B,EAAG,EAAU,cAG/C,eAAe,EAAG,GACX,KAAA,cAAc,EAAG,EAAU,UAC5B,EAAE,SAGD,KAAA,2BAA2B,EAAG,EAAU,UAG/C,kBAAkB,EAAG,GACd,KAAA,cAAc,EAAG,EAAU,aAC5B,EAAE,SAGD,KAAA,2BAA2B,EAAG,EAAU,eAhGpC,EAAgB,EAAA,CAD5B,EAAA,WACY,GAAA,QAAA,iBAAA;;ACFA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QAIA,IAAa,EAAb,MADA,cAEU,KAAA,YAEJ,IAAI,EAAA,gBAAgB,IAExB,SAAS,GACF,KAAA,YAAY,KAAK,IAAI,KAAK,YAAY,WAAY,IAGzD,iBACS,OAAA,KAAK,YAAY,aAVf,EAAkB,EAAA,CAD9B,EAAA,WACY,GAAA,QAAA,mBAAA;;ACAA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QAIA,IAAa,EAAb,MADA,cAEU,KAAA,QAEJ,IAAI,EAAA,gBAAgB,IAExB,SAAS,GACF,KAAA,QAAQ,KAAK,IAAI,KAAK,QAAQ,WAAY,IAGjD,aACS,OAAA,KAAK,QAAQ,aAVX,EAAc,EAAA,CAD1B,EAAA,WACY,GAAA,QAAA,eAAA;;ACAA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QAIA,IAAa,EAAb,MADA,cAEU,KAAA,WAEJ,IAAI,EAAA,gBAAgB,IAExB,SAAS,GACF,KAAA,WAAW,KAAK,IAAI,KAAK,WAAW,WAAY,IAGvD,gBACS,OAAA,KAAK,WAAW,aAVd,EAAiB,EAAA,CAD7B,EAAA,WACY,GAAA,QAAA,kBAAA;;ACAA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QAIA,IAAa,EAAb,MADA,cAGY,KAAA,WAA+D,IAAI,EAAA,gBAAgB,IAE3F,SAAS,GACA,KAAA,WAAW,KAAK,IAAI,KAAK,WAAW,WAAY,IAGzD,gBACW,OAAA,KAAK,WAAW,aATlB,EAAkB,EAAA,CAD9B,EAAA,WACY,GAAA,QAAA,mBAAA;;ACAA,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QAIA,IAAa,EAAb,MADA,cAEU,KAAA,SAEJ,IAAI,EAAA,gBAAgB,IAExB,SAAS,GACF,KAAA,SAAS,KAAK,IAAI,KAAK,SAAS,WAAY,IAGnD,cACS,OAAA,KAAK,SAAS,aAVZ,EAAe,EAAA,CAD3B,EAAA,WACY,GAAA,QAAA,gBAAA;;ACmBA,aAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAxBb,MAAA,EAAA,QAAA,QACA,EAAA,QAAA,mBACA,EAAA,QAAA,oCACA,EAAA,QAAA,wCACA,EAAA,QAAA,4BAKA,EAAA,QAAA,wBACA,EAAA,QAAA,gDACA,EAAA,QAAA,wBACA,EAAA,QAAA,8CAIA,EAAA,QAAA,sCACA,EAAA,QAAA,4BACA,EAAA,QAAA,oCACA,EAAA,QAAA,oCACA,EAAA,QAAA,gCAIA,IAAa,EAAb,MADA,cAES,KAAA,eAA4C,EAAA,0BAYnD,YACE,EACA,EACA,GAEA,EAAS,QAAQ,IACV,KAAA,WAAW,iBAAiB,EAAS,GAErC,KAAA,wBAAwB,GAEzB,EAAQ,SAAW,EAAQ,QAAQ,cAAgB,WACrD,EAAQ,QAAU,EAAQ,QAAR,MAGhB,EAAQ,SAAW,EAAQ,WACxB,KAAA,cAAc,GACV,EAAQ,SAAW,EAAQ,WAC/B,KAAA,cAAc,GAEnB,EAAQ,SACR,EAAQ,UACR,EAAQ,SAAS,cAAgB,SAE5B,KAAA,YAAY,GACR,EAAQ,SAAW,EAAQ,SAC/B,KAAA,YAAY,IAEjB,EAAc,QAAQ,CAAE,KAAW,EAAS,IAAK,EAAQ,OACpD,KAAA,gBAAgB,SAAS,MAKpC,wBAAwB,GACtB,EAAQ,KAAO,EAAQ,MAAQ,GAC3B,EAAQ,KAAK,SACf,EAAQ,KAAO,EAAQ,KAAK,IAAI,GAAO,EAAA,UAAU,IAAI,KAIzD,YAAY,GACV,EAAA,UAAU,IAAI,EAAQ,QAAS,EAAQ,UACnC,EAAQ,MACL,KAAA,mBAAmB,eACtB,EAAQ,QACR,EAAA,GAAG,EAAA,UAAU,IAAI,EAAQ,WAK/B,YAAY,GACN,EAAQ,KACL,KAAA,mBAAmB,eACtB,EAAQ,QACR,EAAA,GAAG,EAAA,UAAU,IAAI,EAAQ,YAG3B,EAAA,UAAU,IAAI,EAAQ,QAAS,EAAA,UAAU,IAAI,EAAQ,WAIzD,cAAc,GACN,MAAA,EAAU,KAAK,iBAAiB,aACpC,EAAQ,WACR,EAAQ,SAEL,KAAA,mBAAmB,eAAe,EAAQ,QAAS,GAG1D,cAAc,GACN,MAAA,EAAU,EAAQ,WACxB,EAAQ,WAAa,KAAM,KAAW,EAAQ,OAC1C,EAAQ,KACL,KAAA,mBAAmB,eACtB,EAAQ,QACR,EAAQ,cAGV,EAAA,UAAU,IAAI,EAAQ,QAAS,EAAQ,cAI3C,eACE,EACA,EACA,GAEA,EAAY,QAAQ,IACb,KAAA,WAAW,mBAAmB,EAAY,GAC/C,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAW,OAEb,KAAA,mBAAmB,SAAS,KAIrC,WACE,EACA,EACA,GAEA,EAAQ,QAAQ,IACT,KAAA,WAAW,eAAe,EAAQ,GACvC,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAO,OAET,KAAA,eAAe,SAAS,KAIjC,cACE,EACA,EACA,GAEA,EAAW,QAAQ,IACZ,KAAA,WAAW,kBAAkB,EAAW,GAC7C,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAU,OAEZ,KAAA,kBAAkB,SAAS,KAIpC,WACE,EACA,EACA,GAEA,EAAQ,QAAQ,IACT,KAAA,WAAW,eAAe,EAAQ,GACvC,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAO,OAET,KAAA,cAAc,SAAS,KAIhC,cACE,EACA,EACA,GAEA,EAAW,QAAQ,IACZ,KAAA,WAAW,cACd,EACA,EACA,EAAS,SAAT,MAEF,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAU,OAEZ,KAAA,WAAW,SAAS,KAI7B,gBACE,EACA,EACA,GAEA,EAAQ,QAAQ,IACT,KAAA,WAAW,eAAe,EAAQ,GACvC,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAO,OAET,KAAA,cAAc,cAAc,KAIrC,iBACE,EACA,EACA,GAEA,EAAQ,QAAQ,IACT,KAAA,WAAW,eAAe,EAAQ,GACvC,EAAc,QAAQ,CACpB,KAAM,EACN,IAAK,EAAO,OAET,KAAA,cAAc,eAAe,KAItC,WAAW,EAAqB,GAC9B,EAAQ,QAAS,IAEX,GADC,KAAA,WAAW,gBAAgB,EAAG,IAC9B,EACG,MAAA,IAAI,MAAM,yBAEhB,EAAA,UAAU,IAAI,OA/MG,EAAA,CAAtB,EAAA,SAAS,EAAA,aAAyC,EAAA,cAAW,mBAAX,OAAW,IAAX,EAAA,aAAA,EAAA,aAAW,EAAA,SAAvC,EAAA,UAAA,0BAAA,GACE,EAAA,CAAxB,EAAA,SAAS,EAAA,eAAsC,EAAA,cAAa,mBAAb,OAAa,IAAb,EAAA,eAAA,EAAA,eAAa,EAAA,SAApC,EAAA,UAAA,qBAAA,GACI,EAAA,CAA5B,EAAA,SAAS,EAAA,mBAA8C,EAAA,cAAiB,mBAAjB,OAAiB,IAAjB,EAAA,mBAAA,EAAA,mBAAiB,EAAA,SAA5C,EAAA,UAAA,yBAAA,GACC,EAAA,CAA7B,EAAA,SAAS,EAAA,oBAAgD,EAAA,cAAkB,mBAAlB,OAAkB,IAAlB,EAAA,oBAAA,EAAA,oBAAkB,EAAA,SAA9C,EAAA,UAAA,0BAAA,GACJ,EAAA,CAAzB,EAAA,SAAS,EAAA,gBAAwC,EAAA,cAAc,mBAAd,OAAc,IAAd,EAAA,gBAAA,EAAA,gBAAc,EAAA,SAAtC,EAAA,UAAA,sBAAA,GACI,EAAA,CAA7B,EAAA,SAAS,EAAA,oBAAwC,EAAA,cAAkB,mBAAlB,OAAkB,IAAlB,EAAA,oBAAA,EAAA,oBAAkB,EAAA,SAAtC,EAAA,UAAA,kBAAA,GACF,EAAA,CAA3B,EAAA,SAAS,EAAA,kBAA4C,EAAA,cAAgB,mBAAhB,OAAgB,IAAhB,EAAA,kBAAA,EAAA,kBAAgB,EAAA,SAA1C,EAAA,UAAA,wBAAA,GACA,EAAA,CAA3B,EAAA,SAAS,EAAA,kBAAsC,EAAA,cAAgB,mBAAhB,OAAgB,IAAhB,EAAA,kBAAA,EAAA,kBAAgB,EAAA,SAApC,EAAA,UAAA,kBAAA,GACD,EAAA,CAA1B,EAAA,SAAS,EAAA,iBAA0C,EAAA,cAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,SAAxC,EAAA,UAAA,uBAAA,GAXhB,EAAa,EAAA,CADzB,EAAA,WACY,GAAA,QAAA,cAAA;;ACvBb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,EAAA,QAAA,qBACA,EAAA,QAAA;;ACSa,aAAA,IAAA,EAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAVb,MAAA,EAAA,QAAA,mBACA,EAAA,QAAA,gCACA,EAAA,QAAA,wBACA,EAAA,QAAA,kBACA,EAAA,QAAA,QACA,EAAA,QAAA,wCACA,EAAA,QAAA,gDACA,EAAA,QAAA,oCAGA,IAAa,EAAb,MAIE,oBAAoB,EAAM,EAAQ,GAC3B,KAAA,aACF,SAAS,EAAA,eAAe,SACxB,QAAQ,CAAE,IAAK,EAAM,KAAM,IACxB,MAAA,EAAgB,KAAK,aAAa,SAAS,GAK1C,OAJP,EAAc,QAAQ,CACpB,IAAK,EAAA,eAAe,OACpB,KAAM,CAAE,WAAA,EAAY,WAAY,KAE3B,EAAc,kBAAkB,EAAA,eAAe,MAAM,KAC1D,EAAA,UAAU,GACH,EAAO,KAGL,EAAc,MAAM,eAFlB,EAAA,GAAG,OAId,EAAA,OAAO,GAAO,GAAO,EAAI,QACzB,EAAA,IAAI,KAAK,6BAA6B,EAAQ,KAI1C,6BAA6B,EAAQ,GACpC,OAAA,IACL,EAAI,QAAQ,IACN,GAAA,EAAE,MAAQ,EAAA,eAAe,MAAQ,EAAE,MAAQ,EAAA,eAAe,OAC5D,OAEI,MAAA,EAAQ,KAAK,aAAa,cAAc,EAAE,MAC5C,GAAA,EAAO,CACL,GAAA,EAAM,QACD,OAAA,EAEH,MAAA,EACJ,EAAM,SAAS,KAAK,OAAO,GAAG,cAC9B,EAAM,SAAS,KAAK,MAAM,GASrB,OARF,KAAA,gBAAgB,yBACE,MAAe,KAAK,gBAAgB,cACnD,EAAO,cACN,MACL,EAAM,iBACH,KAAK,gBAAgB,cAAc,EAAM,WAC5C,iBAEG,EAAA,UAAU,IAAI,GAEf,MAAA,IAAI,MAAM,eAGb,KAnDgB,EAAA,CAA1B,EAAA,SAAS,EAAA,iBAA0C,EAAA,cAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,SAAxC,EAAA,UAAA,uBAAA,GACH,EAAA,CAAvB,EAAA,SAAS,EAAA,cAAoC,EAAA,cAAY,mBAAZ,OAAY,IAAZ,EAAA,cAAA,EAAA,cAAY,EAAA,SAAlC,EAAA,UAAA,oBAAA,GAFb,EAAe,EAAA,CAD3B,EAAA,WACY,GAAA,QAAA,gBAAA;;ACVb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACIa,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAJb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,QAGA,IAAa,EAAb,MADA,cAEE,KAAA,WAA+B,IAAI,EAAA,UADxB,EAAmB,EAAA,CAD/B,EAAA,WACY,GAAA,QAAA,oBAAA;;ACFA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAFb,MAAA,EAAA,QAAA,0BAEa,QAAA,uBAAyB,EACpC,EACA,KAEI,EAAA,UAAU,IAAI,IAAS,GACzB,QAAQ,8BACoB,EAAK,MAC7B,+CAAkD,KAAK,UACvD,EAAA,UAAU,IAAI;;ACgBT,aAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,EAAA,MAAA,KAAA,WAAA,SAAA,EAAA,EAAA,EAAA,GAAA,OAAA,IAAA,IAAA,EAAA,UAAA,SAAA,EAAA,GAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,KAAA,IAAA,MAAA,GAAA,EAAA,IAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,MAAA,IAAA,MAAA,GAAA,EAAA,IAAA,SAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,OAAA,IAAA,EAAA,SAAA,GAAA,EAAA,EAAA,SAAA,KAAA,EAAA,GAAA,GAAA,EAAA,EAAA,MAAA,EAAA,GAAA,KAAA,WAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA1Bb,MAAA,EAAA,QAAA,QACA,EAAA,QAAA,mBACA,EAAA,QAAA,wCACA,EAAA,QAAA,gCACA,EAAA,QAAA,wBACA,EAAA,QAAA,wCACA,EAAA,QAAA,4BACA,EAAA,QAAA,4BAEA,EAAA,QAAA,kBAEA,EAAA,QAAA,4BACA,EAAA,QAAA,sCACA,EAAA,QAAA,oCACA,EAAA,QAAA,oCACA,EAAA,QAAA,gCACA,EAAA,QAAA,0CAKA,EAAA,QAAA,qBACA,EAAA,QAAA,oCAIA,IAAa,EAAb,MAGE,YACU,EACA,EACA,EACD,EACC,EACA,EACA,EACA,EACA,EACA,EACA,GAVA,KAAA,OAAA,EACA,KAAA,aAAA,EACA,KAAA,qBAAA,EACD,KAAA,cAAA,EACC,KAAA,mBAAA,EACA,KAAA,eAAA,EACA,KAAA,cAAA,EACA,KAAA,kBAAA,EACA,KAAA,kBAAA,EACA,KAAA,gBAAA,EACA,KAAA,oBAAA,EAEH,KAAA,aAAe,KAAK,aAAa,YAAyB,CAC7D,KAAM,EAAA,eAAe,eAIlB,MAAM,EAAK,GACX,KAAA,cAAc,UAAU,GACxB,KAAA,aAAa,QAAQ,CAAE,IAAK,EAAA,eAAe,OAAQ,KAAM,IAC9D,EAAA,UAAU,IAAI,GACR,MAAA,EAAkB,MAAM,KAC5B,KAAK,qBAAqB,cAAc,QAEnC,OAAA,EAAA,GAAa,GAAiB,KACnC,EAAA,IAAI,GAAa,KAAK,uBAAuB,IAC7C,EAAA,UAAU,GACR,EAAA,cAAc,GAAK,KACjB,EAAA,KAAK,GACL,EAAA,IAAI,GAAK,KAAK,2BAA2B,EAAiB,IAC1D,EAAA,IAAI,IAAM,KAAK,kBACf,EAAA,UAAU,IAAM,EAAA,cAAc,KAAK,8BACnC,EAAA,UAAU,IACR,EAAA,cAAc,KAAK,wCAErB,EAAA,UAAU,IAAM,EAAA,cAAc,KAAK,kCACnC,EAAA,UAAU,IACR,EAAA,cAAc,KAAK,uCAErB,EAAA,UAAU,IAAM,EAAA,cAAc,KAAK,2BACnC,EAAA,UAAU,IAAM,EAAA,cAAc,KAAK,0BACnC,EAAA,UAAU,IAAM,EAAA,cAAc,KAAK,6BACnC,EAAA,IAAI,IAAM,KAAK,mBACf,EAAA,UAAU,IAAM,EAAA,cAAc,KAAK,6BACnC,EAAA,IAAI,IAAM,KAAK,YAMf,QAKC,OAJF,KAAA,oBAAoB,WAAW,MAAK,GACpC,KAAK,cAAc,OAAO,MACxB,KAAA,OAAO,IAAI,6BAEX,EAAA,UAGD,2BACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,kBACL,gBACA,OAAO,GAAK,KAAK,cAAc,EAAG,eAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,EAAA,UAAU,IAAI,OAIlC,2BACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,kBACL,gBACA,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,EAAA,UAAU,IAAI,OAIlC,wBACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,eACL,aACA,OAAO,GAAK,KAAK,cAAc,EAAG,YAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,EAAA,UAAU,IAAI,OAIlC,yBACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,gBACL,cACA,OAAO,GAAK,KAAK,cAAc,EAAG,aAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,EAAA,UAAU,IAAI,OAIlC,4BACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,mBACL,iBACA,OAAO,GAAK,KAAK,cAAc,EAAG,gBAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,EAAA,UAAU,IAAI,OAIlC,gCACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,cACL,aACA,OAAO,GAAK,KAAK,cAAc,EAAG,YAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,KAAK,eAAe,OAIxC,qCACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,cACL,kBACA,OAAO,GAAK,KAAK,cAAc,EAAG,iBAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,KAAK,eAAe,OAIxC,sCACC,MAAA,CACL,EAAA,IAAG,MACA,KAAK,cACL,mBACA,OAAO,GAAK,KAAK,cAAc,EAAG,kBAClC,IAAU,GAAI,EAAA,UAAA,OAAA,EAAA,YAAC,aAAM,KAAK,eAAe,OAIxC,cACN,EACA,GAGE,OAAA,KAAK,cAAc,OAAO,YAAY,IACrC,EAAE,SAAS,SAAW,EAAE,SAAS,QAAX,MACvB,KAAK,cAAc,OAAO,KAIhB,eAAe,GAxJlB,OAAA,EAAA,UAAA,OAAA,EAAA,YAyJH,MAAA,EAAS,EAAA,UAAU,IAAqB,GAEvC,aADD,EAAO,WACN,IAGD,uBAAuB,GACvB,MAAA,EAAiB,CAAC,EAAA,IAAG,IACrB,EAEF,GACE,EAAU,GAAK,EAAE,MAAQ,EAsBxB,OArBP,EAAY,IAAI,IACR,MAAA,EAAO,KAAK,MAClB,EAAc,EAAQ,IAAM,CAC1B,QAAS,EACT,IAAK,MAEF,KAAA,OAAO,8BAA8B,EAAQ,oBAC5C,MAAA,EAAiB,EAAA,KACrB,KAAK,qBAAqB,eAAe,IACxC,KAAK,EAAA,YAAY,IACpB,EAAe,KAAK,GACpB,EAAe,UAAU,KAClB,KAAA,OAAO,8BACgB,EACxB,gCAC6B,KAAK,MAClC,EAAc,EAAQ,IAAI,sBAEvB,EAAc,EAAQ,QAG1B,EAGD,iBACF,KAAK,cAAc,OAAO,QACvB,KAAA,aAAa,0CAId,2BAA2B,EAAK,GAEtC,EAAW,OAAO,EAAG,GACjB,IAAA,EAAQ,EAQL,OAPP,EAAI,IAAI,IACN,EAAA,uBACE,EACA,KAAK,cAAc,OAAO,aAAa,wBAEzC,EAAA,UAAU,IAAI,EAAM,EAAW,SAE1B,EAGT,kBASS,OARP,MAAM,KACJ,KAAK,aAAa,SAAmB,EAAA,eAAe,SAAS,IAAI,QACjE,QAAQ,GACR,KAAK,aAAa,SAAS,GAAG,QAAQ,CACpC,IAAK,EAAA,eAAe,KACpB,KAAM,KAAK,cAAc,OAAO,SAG7B,IAzNE,EAAgB,EAAA,CAD5B,EAAA,UAKmB,EAAA,oBAAA,CAAe,mBAAf,OAAe,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,OACG,mBADH,OACG,IAAZ,EAAA,cAAA,EAAA,cAAY,EAAA,OACO,mBADP,OACO,IAAX,EAAA,aAAA,EAAA,aAAW,EAAA,OACN,mBADM,OACN,IAAb,EAAA,eAAA,EAAA,eAAa,EAAA,OACW,mBADX,OACW,IAAlB,EAAA,oBAAA,EAAA,oBAAkB,EAAA,OACR,mBADQ,OACR,IAAd,EAAA,gBAAA,EAAA,gBAAc,EAAA,OACF,mBADE,OACF,IAAb,EAAA,eAAA,EAAA,eAAa,EAAA,OACQ,mBADR,OACQ,IAAjB,EAAA,mBAAA,EAAA,mBAAiB,EAAA,OACC,mBADD,OACC,IAAlB,EAAA,oBAAA,EAAA,oBAAkB,EAAA,OACL,mBADK,OACL,IAAf,EAAA,iBAAA,EAAA,iBAAe,EAAA,OACQ,mBADR,OACQ,IAAnB,EAAA,qBAAA,EAAA,qBAAmB,EAAA,UAdvC,GAAA,QAAA,iBAAA;;ACvBA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAHb,MAAA,EAAA,QAAA,iDACA,EAAA,QAAA,gBAEa,QAAA,gBAAkB,MACvB,MAAA,EAAU,EAAA,UAAU,IAAI,EAAA,oBAC9B,EAAQ,OAGR,QAAQ,GAAG,OAAQ,EAAQ,YAAY,KAAK,EAAS,CAAE,SAAS,KAEhE,QAAQ,GAAG,SAAU,EAAQ,YAAY,KAAK,EAAS,CAAE,MAAM,KAE/D,QAAQ,GAAG,UAAW,EAAQ,YAAY,KAAK,EAAS,CAAE,MAAM,KAChE,QAAQ,GAAG,UAAW,EAAQ,YAAY,KAAK,EAAS,CAAE,MAAM,KAEhE,QAAQ,GACN,oBACA,EAAQ,YAAY,KAAK,EAAS,CAAE,MAAM;;ACqCjC,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAtDb,QAAA,oBAEA,MAAA,EAAA,QAAA,gBACA,EAAA,QAAA,2CAEA,EAAA,QAAA,kBAIA,EAAA,kBAEA,MAAM,EAAmB,EAAA,UAAU,IAAI,EAAA,kBAE1B,QAAA,UAAY,EAAC,EAAK,IAC7B,EAAiB,MAAM,EAAK,IACjB,QAAA,mBAAqB,EAChC,EACA,IACuB,EAAiB,MAAM,EAAK,GAAQ,aAChD,QAAA,mBAAqB,EAChC,EACA,EACA,KAEA,EAAiB,cAAc,UAAU,GACzC,EAAQ,IAAI,GAAK,EAAA,UAAU,IAAI,IACxB,EAAiB,MAAM,EAAK,KAGxB,QAAA,MAAQ,EACnB,EACA,EAAoB,GACpB,KAEM,MAAA,EAAS,QAAQ,yCAAyC,OAEzD,OAAA,QAAA,mBACL,EAAO,CACL,QAAS,EAAQ,SAAW,GAC5B,UAAW,EAAQ,WAAa,GAChC,SAAU,EAAQ,UAAY,GAC9B,UAAW,EAAQ,WAAa,GAChC,WAAY,EAAQ,YAAc,GAClC,YAAa,EAAQ,aAAe,GACpC,QAAS,EAAQ,SAAW,GAC5B,QAAS,EAAQ,SAAW,GAC5B,aAAc,EAAQ,cAAgB,GACtC,cAAe,EAAQ,eAAiB,IAV1C,CAWG,cACH,EACA,KAIS,QAAA,cAAgB,QAAA;;AClD7B,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAJA,EAAA,QAAA,gBACA,EAAA,QAAA,yBACA,EAAA,QAAA,0BACA,EAAA,QAAA;;ACCa,aAAA,IAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAJb,MAAA,EAAA,QAAA,oCACA,EAAA,QAAA,iBAGA,IAAa,EAAb,MACE,iBAAiB,EAAQ,GACjB,MAAA,EAAW,EAAO,UAAY,GAC9B,EAAU,EAAO,SAAW,GAC5B,EAAe,GACf,GAAc,EAAU,QACnB,EAAU,QACR,GACJ,KAAA,yBAAyB,EAAY,EAAQ,GAC3C,CACL,WAAY,EAAU,SAAV,WACZ,KAAM,EAAU,SAAV,kBAJH,EAQF,MAAA,CACL,IAAI,EAAS,IAAI,GAAK,EAAa,KACnC,IAAI,EAAQ,IAAI,GAAK,EAAa,MAItC,6BACE,IASF,yBAAyB,EAAY,EAAQ,GACvC,IAAC,EAAU,WAAiB,EAAU,QAClC,MAAA,IAAI,8CACqB,KAAK,UACxB,uBACoB,EAAS,wEAEf,KAAK,UAAU,IACtB,EAAO,SAAS,OAAO,IAAM,EAAC,aAC9B,EAAO,SACP,OACC,GAAK,GAAK,EAAC,UAAgB,EAAC,SAAD,YAE5B,IAAI,GAAK,EAAC,SAAD,sDAGhB,KAAK,aAAa,IAAY,KAAM,8KAIxB,KAAK,UAAU,8YAe3C,oBAAoB,EAAY,EAAmB,GAC1C,0CACsB,oEAEN,KAAK,UAAU,EAAkB,GAAI,KAAM,qCAC1C,KAAK,UAAU,EAAkB,GAAI,KAAM,sCAEzD,KAAK,UAAU,EAAqB,KAAM,eAItD,iBAAiB,GACR,OAAA,EAAA,iBAAiB,KA9Ef,EAAe,EAAA,CAD3B,EAAA,WACY,GAAA,QAAA,gBAAA;;ACJb,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACAA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACAA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACAA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACAA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACAA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACAA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACKa,aAAA,IAAA,EAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,EAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,yBAAA,EAAA,GAAA,EAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,EAAA,QAAA,SAAA,EAAA,EAAA,EAAA,QAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,KAAA,GAAA,OAAA,EAAA,GAAA,GAAA,OAAA,eAAA,EAAA,EAAA,GAAA,GAAA,EAAA,MAAA,KAAA,YAAA,SAAA,EAAA,GAAA,GAAA,iBAAA,SAAA,mBAAA,QAAA,SAAA,OAAA,QAAA,SAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALb,MAAA,EAAA,QAAA,4BAEA,EAAA,QAAA,oCAGA,IAAa,EAAb,MACE,YAAoB,GAAA,KAAA,cAAA,EAEpB,cACS,OAAA,KAAK,cAAc,aAG5B,UAAU,GACD,OAAA,KAAK,cACT,aACA,OAAO,GAAK,EAAE,OAAS,EAAY,MAAM,KAVnC,EAAa,EAAA,CADzB,EAAA,UAEoC,EAAA,oBAAA,CAAa,mBAAb,OAAa,IAAb,EAAA,eAAA,EAAA,eAAa,EAAA,UADrC,GAAA,QAAA,cAAA;;ACab,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAlBA,EAAA,QAAA,kBACA,EAAA,QAAA,4BACA,EAAA,QAAA,6BACA,EAAA,QAAA,yBACA,EAAA,QAAA,8BACA,EAAA,QAAA,mBACA,EAAA,QAAA,qBACA,EAAA,QAAA,mBACA,EAAA,QAAA,qBACA,EAAA,QAAA,wBACA,EAAA,QAAA,iBACA,EAAA,QAAA,gCACA,EAAA,QAAA,mBACA,EAAA,QAAA,wBACA,EAAA,QAAA,uBACA,EAAA,QAAA,uBACA,EAAA,QAAA,qBACA,EAAA,QAAA,oCACA,EAAA,QAAA;;ACPA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAXA,MAAA,EAAA,QAAA,gBACA,EAAA,QAAA,eAOM,EAAgB,EAAA,UAAU,IAAI,EAAA,eAC9B,EAAkB,EAAA,UAAU,IAAI,EAAA,iBAEtC,SAAgB,EACd,EACA,EACA,GAEO,OAAA,SAAmB,EAAa,GACjC,OAAC,GAID,EAAO,SACT,EAAc,WAAW,EAAO,QAAS,GAGvC,EAAO,UACT,EAAc,YAAY,EAAO,SAAU,EAAU,GAGnD,EAAO,WACT,EAAc,YAAY,EAAO,UAAW,EAAU,GAGpD,EAAO,aACT,EAAc,eAAe,EAAO,YAAa,EAAU,GAGzD,EAAO,SACT,EAAc,WAAW,EAAO,QAAS,EAAU,GAGjD,EAAO,YACT,EAAc,cAAc,EAAO,WAAY,EAAU,GAGvD,EAAO,eACT,EAAc,iBACZ,EAAO,cACP,EACA,GAIA,EAAO,SACT,EAAc,WAAW,EAAO,QAAS,EAAU,GAGjD,EAAO,cACT,EAAc,gBACZ,EAAO,aACP,EACA,GAIA,EAAO,WACT,EAAc,cAAc,EAAO,UAAW,EAAU,GAG1D,EAAgB,6BAEZ,EAAY,iBACT,EAAgB,cAAc,EAAY,uBAG1C,EAAA,UAAU,IAAI,IAzDZ,IAAI,GAPjB,QAAA,iBAAA;;ACgHa,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA3Hb,MAAA,EAAA,QAAA,mBACA,EAAA,QAAA,4CACA,EAAA,QAAA,qCACA,EAAA,QAAA,oDACA,EAAA,QAAA,4CAEA,EAAA,QAAA,4CACA,EAAA,QAAA,wCAEM,EAAkB,EAAA,UAAU,IAAI,EAAA,iBAChC,EAAkB,EAAA,UAAU,IAAI,EAAA,iBAChC,EAAe,EAAA,UAAU,IAAI,EAAA,cAC7B,EAAkB,EAAA,UAAU,IAAI,EAAA,iBAChC,EAAgB,EAAA,UAAU,IAAI,EAAA,eAEpC,SAAgB,EAA6B,GACjC,OAAA,IACJ,EAAS,GAAU,GACb,MAAA,EAAqC,OAAO,OAAO,GACnD,EAAa,EAAO,MAAQ,EAAO,YAAY,KAC/C,EAAoB,EAAgB,iBAAiB,EAAQ,GAC7D,EAAuB,EAAgB,oBAAoB,EAAY,KAAsB,KAC7F,EAAqB,EAAgB,iBAAiB,GAK5D,OAAO,eAAe,EAAU,eAAgB,CAAE,MAAO,EAAS,MAAQ,EAAS,YAAY,KAAM,UAAU,IAC/G,OAAO,eAAe,EAAU,OAAQ,CAAE,MAAO,EAAoB,UAAU,IAEzE,MAAA,EAAqB,EAAa,YAAsB,CAAE,KAAM,IAEtE,EAAS,SAAW,CAChB,WAAY,EAAS,aACrB,WAAY,EACZ,QAAS,KACT,KAAM,SACN,IAAK,GAGH,MAAA,EAA2B,YAAa,GAEnC,OADP,EAAgB,6BAA6B,EAAS,iBAAiB,EAAgB,cAAc,EAAS,wBACvG,EAAA,iBAAiB,EAAQ,EAAU,EAAnC,CAAuD,EAAU,IAiBxE,GAdJ,OAAO,OAAO,EAAqB,GAEnC,EAAgB,oBAAoB,EAAoB,EAAU,GAC7D,UACG,IAAM,EAAgB,yBAAyB,EAAS,iBAAiB,EAAgB,cAAc,EAAS,sBAGxH,OAAO,oBAAoB,GACtB,OAAO,GAAkC,mBAAnB,EAAS,IAC/B,IAAI,GAAc,OAAO,eAAe,EAAqB,EAAY,CACtE,cAAc,EACd,UAAU,EACV,MAAO,EAAS,MAEpB,EAAS,QAAS,CACZ,MAAA,EAAkB,EAAoB,QAC5C,EAAoB,QAAU,YAAa,GACjC,MAAA,EAA6B,KAAmB,GAElD,IAAC,EACK,MAAA,IAAI,sCAAsC,EAAoB,uCAwCpE,OArCA,EAAO,kBACP,EAAc,WAAW,EAAO,iBAAyB,GAGzD,EAAO,UACP,EAAc,YAAY,EAAO,SAAiB,EAAU,GAG5D,EAAO,WACP,EAAc,YAAY,EAAO,UAAkB,EAAU,GAG7D,EAAO,YACP,EAAc,cAAc,EAAO,WAAmB,EAAU,GAGhE,EAAO,SACP,EAAc,WAAW,EAAO,QAAgB,EAAU,GAG1D,EAAO,aACP,EAAc,eAAe,EAAO,YAAoB,EAAU,GAGlE,EAAO,eACP,EAAc,iBAAiB,EAAO,cAAsB,EAAU,GAGtE,EAAO,SACP,EAAc,WAAW,EAAO,QAAgB,EAAU,GAG1D,EAAO,cACP,EAAc,gBAAgB,EAAO,aAAqB,EAAU,GAIpE,EAAO,SACA,EAAO,SAGX,EAAO,OAAS,EAAO,OAAS,GAIzC,MAAA,EAAiC,CACnC,KAAM,GAIH,OADP,EAAA,UAAU,IAAI,GACP,GAvGf,QAAA,OAAA,EA4Ga,QAAA,SAAW;;AC1HxB,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IADA,EAAA,QAAA,uBACA,EAAA,QAAA;;ACDA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACGA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAHA,MAAA,EAAA,QAAA,mBACA,EAAA,QAAA,wCAEA,SAAgB,EAAc,GACnB,OAAA,EAAA,UAAU,IAAI,EAAA,eAAe,eAAe,WAAgB,GADvE,QAAA,WAAA;;ACHA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACGA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,MAAa,UAA0B,MAGrC,YAAY,EAAgB,GAExB,mCACE,EAAO,YAAY,QACjB,OACF,gIAPN,KAAA,KAAO,uBASL,OAAO,eAAe,KAAM,EAAkB,YAVlD,QAAA,kBAAA;;ACoBa,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAvBb,MAAA,EAAA,QAAA,sBACA,EAAA,QAAA,wCAGa,QAAA,cAAgB,EAC3B,EACA,EACA,KAEI,IAAA,EAQA,IANF,EADwB,iBAAf,EACI,EACJ,aAAsB,EAAA,MAClB,EAEA,OAEI,OACX,MAAA,IAAI,EAAA,kBAAkB,EAAQ,GAE/B,OAAA,IAGI,QAAA,SAAW,KAAwB,oBAAX,aAAqD,IAApB,OAAO;;ACG7E,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IA1BA,MAAA,EAAA,QAAA,6BAEA,EAAA,QAAA,gCAwBA,SAAgB,EAAO,GACZ,OAAA,SAAU,EAAgB,EAAsB,GAC/C,EAAA,YAAc,GAAoC,mBAAf,EACnC,OAAO,eAAe,EAAQ,EAAc,CACxC,IAAK,IAAM,EAAA,UAAU,IAAI,MAI5B,IACD,EAAa,KAAO,QAAgB,YAAY,cAAe,EAAQ,KAE3E,EAAA,UAAU,gBAAgB,CACtB,OAAQ,EACR,aAAc,EACd,MAAO,EACP,MAAO,GAAY,EAAS,IAAI,EAAA,cAAc,EAAY,EAAQ,QAf9E,QAAA,OAAA;;ACxBA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAFA,MAAA,EAAA,QAAA,mCAEA,SAAgB,EAAc,GACrB,OAAA,EAAA,iBAAiB,EAAS,CAAE,KAAM,eAD3C,QAAA,WAAA;;ACFA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACEA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAFA,MAAA,EAAA,QAAA,mCAEA,SAAgB,EAAO,GACZ,OAAA,EAAA,iBAA2B,EAAS,CAAE,KAAM,WADvD,QAAA,OAAA;;ACFA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACOA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAPA,MAAA,EAAA,QAAA,mCAOA,SAAgB,EAAO,GACZ,OAAA,EAAA,iBAAiB,EAAS,CAAE,KAAM,WAD7C,QAAA,OAAA;;ACLA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAFA,MAAA,EAAA,QAAA,mCAEA,SAAgB,EAAU,GAGjB,OAAA,EAAA,iBAAiB,EAAS,CAAE,KAAM,cAH3C,QAAA,UAAA;;ACFA,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,EAAA,QAAA;;ACuBA,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAvBA,MAAA,EAAA,QAAA,6BACA,EAAA,QAAA,yBACA,EAAA,QAAA,gCAqBA,SAAgB,EACd,GAEO,OAAA,SAAS,EAAgB,EAAsB,GAChD,EAAA,YAAc,aAAsB,EAAA,MACtC,OAAO,eAAe,EAAQ,EAAc,CAC1C,IAAK,IACH,EAAA,UAAU,QAAQ,EAAA,cAAc,EAAY,EAAQ,OAIrD,IACH,EAAa,KACV,QAAgB,YAAY,cAAe,EAAQ,KAExD,EAAA,UAAU,gBAAgB,CACxB,OAAQ,EACR,aAAc,EACd,MAAO,EACP,MAAO,GACL,EAAS,QAAQ,EAAA,cAAc,EAAY,EAAQ,QApB3D,QAAA,WAAA;;ACbS,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAVT,EAAA,QAAA,mBACA,EAAA,QAAA,qBACA,EAAA,QAAA,wBACA,EAAA,QAAA,oBACA,EAAA,QAAA,uBACA,EAAA,QAAA,mBACA,EAAA,QAAA,oBACA,EAAA,QAAA,sBACA,EAAA,QAAA,sBACA,EAAA,QAAA,6BACA,IAAA,EAAA,QAAA,qBAAS,QAAA,WAAA,EAAA;;ACLT,aAAA,SAAA,EAAA,GAAA,IAAA,IAAA,KAAA,EAAA,QAAA,eAAA,KAAA,QAAA,GAAA,EAAA,IAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IALA,QAAA,oBAEA,EAAA,QAAA,sBACA,EAAA,QAAA,uBACA,EAAA,QAAA,oBACA,EAAA,QAAA","file":"index.js","sourceRoot":"../src","sourcesContent":["\nexport class Sha256 {\n\n /**\n * Generates SHA-256 hash of string.\n *\n * @param {string} msg - (Unicode) string to be hashed.\n * @param {Object} [options]\n * @param {string} [options.msgFormat=string] - Message format: 'string' for JavaScript string\n * (gets converted to UTF-8 for hashing); 'hex-bytes' for string of hex bytes ('616263' ≡ 'abc') .\n * @param {string} [options.outFormat=hex] - Output format: 'hex' for string of contiguous\n * hex bytes; 'hex-w' for grouping hex bytes into groups of (4 byte / 8 character) words.\n * @returns {string} Hash of msg as hex character string.\n */\n hash(msg, options?) {\n const defaults = { msgFormat: 'string', outFormat: 'hex' };\n const opt = Object.assign(defaults, options);\n\n // note use throughout this routine of 'n >>> 0' to coerce Number 'n' to unsigned 32-bit integer\n msg = utf8Encode(msg);\n switch (opt.msgFormat) {\n default: // default is to convert string to UTF-8, as SHA only deals with byte-streams\n case 'string': msg = utf8Encode(msg); break;\n case 'hex-bytes': msg = hexBytesToString(msg); break; // mostly for running tests\n }\n\n // constants [§4.2.2]\n const K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n // initial hash value [§5.3.3]\n const H = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n\n // PREPROCESSING [§6.2.1]\n\n msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]\n\n // convert string msg into 512-bit blocks (array of 16 32-bit integers) [§5.2.1]\n const l = msg.length / 4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length\n const N = Math.ceil(l / 16); // number of 16-integer (512-bit) blocks required to hold 'l' ints\n const M = new Array(N); // message M is N×16 array of 32-bit integers\n\n for (let i = 0; i < N; i++) {\n M[i] = new Array(16);\n for (let j = 0; j < 16; j++) { // encode 4 chars per integer (64 per block), big-endian encoding\n M[i][j] = (msg.charCodeAt(i * 64 + j * 4 + 0) << 24) | (msg.charCodeAt(i * 64 + j * 4 + 1) << 16)\n | (msg.charCodeAt(i * 64 + j * 4 + 2) << 8) | (msg.charCodeAt(i * 64 + j * 4 + 3) << 0);\n } // note running off the end of msg is ok 'cos bitwise ops on NaN return 0\n }\n // add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]\n // note: most significant word would be (len-1)*8 >>> 32, but since JS converts\n // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators\n const lenHi = ((msg.length - 1) * 8) / Math.pow(2, 32);\n const lenLo = ((msg.length - 1) * 8) >>> 0;\n M[N - 1][14] = Math.floor(lenHi);\n M[N - 1][15] = lenLo;\n\n\n // HASH COMPUTATION [§6.2.2]\n\n for (let i = 0; i < N; i++) {\n const W = new Array(64);\n\n // 1 - prepare message schedule 'W'\n for (let t = 0; t < 16; t++) W[t] = M[i][t];\n for (let t = 16; t < 64; t++) {\n W[t] = (this.σ1(W[t - 2]) + W[t - 7] + this.σ0(W[t - 15]) + W[t - 16]) >>> 0;\n }\n\n // 2 - initialise working variables a, b, c, d, e, f, g, h with previous hash value\n let a = H[0], b = H[1], c = H[2], d = H[3], e = H[4], f = H[5], g = H[6], h = H[7];\n\n // 3 - main loop (note '>>> 0' for 'addition modulo 2^32')\n for (let t = 0; t < 64; t++) {\n const T1 = h + this.Σ1(e) + this.Ch(e, f, g) + K[t] + W[t];\n const T2 = this.Σ0(a) + this.Maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + T1) >>> 0;\n d = c;\n c = b;\n b = a;\n a = (T1 + T2) >>> 0;\n }\n\n // 4 - compute the new intermediate hash value (note '>>> 0' for 'addition modulo 2^32')\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n H[5] = (H[5] + f) >>> 0;\n H[6] = (H[6] + g) >>> 0;\n H[7] = (H[7] + h) >>> 0;\n }\n\n // convert H0..H7 to hex strings (with leading zeros)\n for (let h = 0; h < H.length; h++) H[h] = ('00000000' + H[h].toString(16)).slice(-8);\n\n // concatenate H0..H7, with separator if required\n const separator = opt.outFormat == 'hex-w' ? ' ' : '';\n\n return H.join(separator);\n\n /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n function utf8Encode(str) {\n try {\n return new TextEncoder().encode(str).reduce((prev, curr) => prev + String.fromCharCode(curr), '');\n } catch (e) { // no TextEncoder available?\n return unescape(encodeURIComponent(str)); // monsur.hossa.in/2012/07/20/utf-8-in-javascript.html\n }\n }\n\n function hexBytesToString(hexStr) { // convert string of hex numbers to a string of chars (eg '616263' -> 'abc').\n const str = hexStr.replace(' ', ''); // allow space-separated groups\n return str == '' ? '' : str.match(/.{2}/g).map(byte => String.fromCharCode(parseInt(byte, 16))).join('');\n }\n }\n /**\n * Rotates right (circular right shift) value x by n positions [§3.2.4].\n * @private\n */\n ROTR(n, x) {\n return (x >>> n) | (x << (32 - n));\n }\n /**\n * Logical functions [§4.1.2].\n * @private\n */\n Σ0(x) { return this.ROTR(2, x) ^ this.ROTR(13, x) ^ this.ROTR(22, x); }\n Σ1(x) { return this.ROTR(6, x) ^ this.ROTR(11, x) ^ this.ROTR(25, x); }\n σ0(x) { return this.ROTR(7, x) ^ this.ROTR(18, x) ^ (x >>> 3); }\n σ1(x) { return this.ROTR(17, x) ^ this.ROTR(19, x) ^ (x >>> 10); }\n Ch(x, y, z) { return (x & y) ^ (~x & z); } // 'choice'\n Maj(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } // 'majority'\n}\n\n\nexport const sha256 = new Sha256();","import { sha256 } from './sha256';\nexport function createUniqueHash(key) {\n return sha256.hash(key);\n}\n","/**\n * Thrown when service is registered without type.\n */\nexport class MissingProvidedServiceTypeError extends Error {\n name = 'ServiceNotFoundError';\n\n constructor(identifier: any) {\n super(\n `Cannot determine a class of the requesting service '${JSON.stringify(\n identifier\n )}'`\n );\n Object.setPrototypeOf(this, MissingProvidedServiceTypeError.prototype);\n }\n}\n","/**\n * Used to create unique typed service identifier.\n * Useful when service has only interface, but don't have a class.\n */\nexport class Token {\n\n /**\n * @param name Token name, optional and only used for debugging purposes.\n */\n constructor(public name?: string) {\n }\n\n}\n\nexport class InjectionToken extends Token {}","import { ServiceIdentifier } from '../types/ServiceIdentifier';\nimport { Token } from '../Token';\n\n/**\n * Thrown when requested service was not found.\n */\nexport class ServiceNotFoundError extends Error {\n name = 'ServiceNotFoundError';\n\n constructor(identifier: ServiceIdentifier) {\n super();\n\n if (typeof identifier === 'string') {\n this.message =\n `Service '${identifier}' was not found, looks like it was not registered in the container. ` +\n `Register it by calling Container.set('${JSON.stringify(\n identifier\n )}', ...) before using service.`;\n } else if (identifier instanceof Token && identifier.name) {\n this.message =\n `Service '${\n identifier.name\n }' was not found, looks like it was not registered in the container. ` +\n `Register it by calling Container.set before using service.`;\n } else if (identifier instanceof Token) {\n this.message =\n `Service with a given token was not found, looks like it was not registered in the container. ` +\n `Register it by calling Container.set before using service.`;\n }\n\n Object.setPrototypeOf(this, ServiceNotFoundError.prototype);\n }\n}\n","export class ConstructorWatcherService {\n _constructors: Map = new Map();\n\n getConstructor(name: string) {\n return this._constructors.get(name);\n }\n\n getByClass(currentClass: Function): T {\n return this._constructors.get(currentClass.name)['value'];\n }\n\n createConstructor(name: string, value) {\n if (this._constructors.has(name)) {\n return this.getConstructor(name);\n }\n\n this._constructors.set(name, value);\n return this.getConstructor(name);\n }\n\n triggerOnInit(currentClass: Function) {\n const currentConstructor = this._constructors.get(currentClass.name);\n if (currentConstructor['value'] && currentConstructor['value'].OnInit) {\n currentConstructor['value'].OnInit.bind(currentConstructor['value'])();\n }\n }\n}\n\nexport const constructorWatcherService = new ConstructorWatcherService();\n","export * from './constructor-watcher';","import { Container } from './Container';\nimport { MissingProvidedServiceTypeError } from './error/MissingProvidedServiceTypeError';\nimport { ServiceNotFoundError } from './error/ServiceNotFoundError';\nimport { Token } from './Token';\nimport { ObjectType } from './types/ObjectType';\nimport { ServiceIdentifier } from './types/ServiceIdentifier';\nimport { ServiceMetadata } from './types/ServiceMetadata';\nimport { constructorWatcherService } from '../services/constructor-watcher';\n\n/**\n * TypeDI can have multiple containers.\n * One container is ContainerInstance.\n */\nexport class ContainerInstance {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Container instance id.\n */\n id: any;\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n /**\n * All registered services.\n */\n private services: Map<\n ServiceMetadata,\n ServiceMetadata\n > = new Map();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(id: any) {\n this.id = id;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(type: ObjectType): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(id: string): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(id: Token): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(identifier: ServiceIdentifier): boolean {\n return !!this.findService(identifier);\n }\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(type: ObjectType): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(id: string): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(id: Token): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(id: { service: T }): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(identifier: ServiceIdentifier): T {\n const globalContainer = Container.of(undefined);\n const service = globalContainer.findService(identifier);\n const scopedService = this.findService(identifier);\n\n if (service && service.global === true) {\n return this.getServiceValue(identifier, service);\n }\n\n if (scopedService) {\n return this.getServiceValue(identifier, scopedService);\n }\n\n if (service && this !== globalContainer) {\n const clonedService = Object.assign({}, service);\n clonedService.value = undefined;\n const value = this.getServiceValue(identifier, clonedService);\n this.set(identifier, value);\n return value;\n }\n\n return this.getServiceValue(identifier, service);\n }\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n getMany(id: string): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n getMany(id: Token): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n getMany(id: string | Token): T[] {\n return this.filterServices(id).map(service =>\n this.getServiceValue(id, service)\n );\n }\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(service: ServiceMetadata): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(type: Function, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(name: string, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(token: Token, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(token: ServiceIdentifier, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(values: ServiceMetadata[]): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(\n identifierOrServiceMetadata:\n | ServiceIdentifier\n | ServiceMetadata\n | (ServiceMetadata[]),\n value?: any\n ): this {\n if (identifierOrServiceMetadata instanceof Array) {\n identifierOrServiceMetadata.forEach((v: any) => this.set(v));\n return this;\n }\n if (\n typeof identifierOrServiceMetadata === 'string' ||\n identifierOrServiceMetadata instanceof Token\n ) {\n return this.set({ id: identifierOrServiceMetadata, value: value });\n }\n if (\n typeof identifierOrServiceMetadata === 'object' &&\n (identifierOrServiceMetadata as { service: Token }).service\n ) {\n return this.set({\n id: (identifierOrServiceMetadata as { service: Token }).service,\n value: value\n });\n }\n if (identifierOrServiceMetadata instanceof Function) {\n return this.set({\n type: identifierOrServiceMetadata,\n id: identifierOrServiceMetadata,\n value: value\n });\n }\n\n // const newService: ServiceMetadata = arguments.length === 1 && typeof identifierOrServiceMetadata === 'object' && !(identifierOrServiceMetadata instanceof Token) ? identifierOrServiceMetadata : undefined;\n const newService: ServiceMetadata<\n any,\n any\n > = identifierOrServiceMetadata as any;\n const service = this.services.get(newService);\n if (service && service.multiple !== true) {\n Object.assign(service, newService);\n } else {\n this.services.set(newService, newService);\n }\n\n return this;\n }\n\n /**\n * Removes services with a given service identifiers (tokens or types).\n */\n remove(...ids: ServiceIdentifier[]): this {\n ids.forEach(id => {\n this.filterServices(id).forEach(service => {\n this.services.delete(service);\n });\n });\n return this;\n }\n\n /**\n * Completely resets the container by removing all previously registered services from it.\n */\n reset(): this {\n this.services.clear();\n return this;\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n /**\n * Filters registered service in the with a given service identifier.\n */\n private filterServices(\n identifier: ServiceIdentifier\n ): ServiceMetadata[] {\n return Array.from(this.services.values()).filter(service => {\n if (service.id) {\n return service.id === identifier;\n }\n\n if (service.type && identifier instanceof Function) {\n return (\n service.type === identifier ||\n identifier.prototype instanceof service.type\n );\n }\n return false;\n });\n }\n\n /**\n * Finds registered service in the with a given service identifier.\n */\n private findService(\n identifier: ServiceIdentifier\n ): ServiceMetadata | undefined {\n return Array.from(this.services.values()).find(service => {\n if (service.id) {\n if (\n identifier instanceof Object &&\n service.id instanceof Token &&\n (identifier as any).service instanceof Token\n ) {\n return service.id === (identifier as any).service;\n }\n\n return service.id === identifier;\n }\n\n if (service.type && identifier instanceof Function) {\n return service.type === identifier; // todo: not sure why it was here || identifier.prototype instanceof service.type;\n }\n return false;\n });\n }\n\n /**\n * Gets service value.\n */\n private getServiceValue(\n identifier: ServiceIdentifier,\n service: ServiceMetadata | undefined\n ): any {\n // find if instance of this object already initialized in the container and return it if it is\n if (service && service.value !== undefined) {\n return service.value;\n }\n\n // if named service was requested and its instance was not found plus there is not type to know what to initialize,\n // this means service was not pre-registered and we throw an exception\n if (\n (!service || !service.type) &&\n (!service || !service.factory) &&\n (typeof identifier === 'string' || identifier instanceof Token)\n ) {\n throw new ServiceNotFoundError(identifier);\n }\n\n // at this point we either have type in service registered, either identifier is a target type\n let type = undefined;\n if (service && service.type) {\n type = service.type;\n } else if (service && service.id instanceof Function) {\n type = service.id;\n } else if (identifier instanceof Function) {\n type = identifier;\n\n // } else if (identifier instanceof Object && (identifier as { service: Token }).service instanceof Token) {\n // type = (identifier as { service: Token }).service;\n }\n\n // if service was not found then create a new one and register it\n if (!service) {\n if (!type) {\n throw new MissingProvidedServiceTypeError(identifier);\n }\n service = { type: type };\n this.services.set(service, service);\n }\n\n // setup constructor parameters for a newly initialized service\n const paramTypes =\n type && Reflect && (Reflect as any).getMetadata\n ? (Reflect as any).getMetadata('design:paramtypes', type)\n : undefined;\n let params: any[] = paramTypes\n ? this.initializeParams(type, paramTypes)\n : [];\n\n // if factory is set then use it to create service instance\n let value: any;\n if (service.factory) {\n // filter out non-service parameters from created service constructor\n // non-service parameters can be, lets say Car(name: string, isNew: boolean, engine: Engine)\n // where name and isNew are non-service parameters and engine is a service parameter\n params = params.filter(param => param !== undefined);\n\n if (service.factory instanceof Array) {\n // use special [Type, 'create'] syntax to allow factory services\n // in this case Type instance will be obtained from Container and its method 'create' will be called\n value = (this.get(service.factory[0]) as any)[service.factory[1]](\n ...params\n );\n } else {\n // regular factory function\n value = service.factory(...params, this);\n }\n } else {\n // otherwise simply create a new object instance\n if (!type) {\n throw new MissingProvidedServiceTypeError(identifier);\n }\n\n params.unshift(null);\n\n // 'extra feature' - always pass container instance as the last argument to the service function\n // this allows us to support javascript where we don't have decorators and emitted metadata about dependencies\n // need to be injected, and user can use provided container to get instances he needs\n params.push(this);\n\n if (type.prototype.OnBefore) {\n type.prototype.OnBefore.bind(type)();\n }\n value = new (type.bind.apply(type, params))();\n constructorWatcherService.createConstructor(type['name'], {\n type,\n value\n });\n // if (value.render) {\n // debugger\n // // const test = new value['__proto__'].constructor()\n // Extend React class Correctly\n // Object.assign(value['__proto__'].constructor.prototype, value);\n // console.log(value['__proto__'].constructor.prototype);\n // console.log(type['metadata']['moduleName'], value);\n // console.log(value['__proto__'].constructor)\n // }\n\n if (value.OnInit) {\n value.OnInit.bind(value)();\n }\n }\n\n if (service && !service.transient && value) {\n service.value = value;\n }\n\n if (type) {\n this.applyPropertyHandlers(type, value);\n }\n\n return value;\n }\n\n /**\n * Initializes all parameter types for a given target service class.\n */\n private initializeParams(type: Function, paramTypes: any[]): any[] {\n return paramTypes.map((paramType, index) => {\n const paramHandler = Array.from(Container.handlers.values()).find(\n handler => handler.object === type && handler.index === index\n );\n if (paramHandler) {\n return paramHandler.value(this);\n }\n\n if (\n paramType &&\n paramType.name &&\n !this.isTypePrimitive(paramType.name)\n ) {\n return this.get(paramType);\n }\n\n return undefined;\n });\n }\n\n /**\n * Checks if given type is primitive (e.g. string, boolean, number, object).\n */\n private isTypePrimitive(param: string): boolean {\n return (\n ['string', 'boolean', 'number', 'object'].indexOf(param.toLowerCase()) !== -1\n );\n }\n\n /**\n * Applies all registered handlers on a given target class.\n */\n private applyPropertyHandlers(\n target: Function,\n instance: { [key: string]: any }\n ) {\n Container.handlers.forEach(handler => {\n if (typeof handler.index === 'number') {\n return;\n }\n if (\n handler.object.constructor !== target &&\n !(target.prototype instanceof handler.object.constructor)\n ) {\n return;\n }\n instance[handler.propertyName] = handler.value(this);\n });\n }\n}\n","import { ContainerInstance } from './ContainerInstance';\nimport { Token } from './Token';\nimport { Handler } from './types/Handler';\nimport { ObjectType } from './types/ObjectType';\nimport { ServiceIdentifier } from './types/ServiceIdentifier';\nimport { ServiceMetadata } from './types/ServiceMetadata';\n\n/**\n * Service container.\n */\nexport class Container {\n // -------------------------------------------------------------------------\n // Private Static Properties\n // -------------------------------------------------------------------------\n\n /**\n * Global container instance.\n */\n private static readonly globalInstance: ContainerInstance = new ContainerInstance(\n undefined\n );\n\n /**\n * Other containers created using Container.of method.\n */\n private static readonly instances: Map = new Map();\n\n /**\n * All registered handlers.\n */\n static readonly handlers: Map = new Map();\n\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets a separate container instance for the given instance id.\n */\n static of(instanceId: any): ContainerInstance {\n if (instanceId === undefined) return this.globalInstance;\n\n let container = this.instances.get(instanceId);\n if (!container) {\n container = new ContainerInstance(instanceId);\n this.instances.set(instanceId, container);\n }\n\n return container;\n }\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(type: ObjectType): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(id: string): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(id: Token): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(identifier: ServiceIdentifier): boolean {\n return this.globalInstance.has(identifier as any);\n }\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(type: ObjectType): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(id: string): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(id: Token): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(service: { service: T }): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(identifier: ServiceIdentifier): T {\n return this.globalInstance.get(identifier as any);\n }\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n static getMany(id: string): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n static getMany(id: Token): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n static getMany(id: string | Token): T[] {\n return this.globalInstance.getMany(id as any);\n }\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(service: ServiceMetadata): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(type: Function, value: any): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(name: string, value: any): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(token: Token, value: any): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(values: ServiceMetadata[]): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(\n identifierOrServiceMetadata:\n | ServiceIdentifier\n | ServiceMetadata\n | (ServiceMetadata[]),\n value?: any\n ): Container {\n this.globalInstance.set(identifierOrServiceMetadata as any, value);\n return this;\n }\n\n /**\n * Removes services with a given service identifiers (tokens or types).\n */\n static remove(...ids: ServiceIdentifier[]): Container {\n this.globalInstance.remove(...ids);\n return this;\n }\n\n /**\n * Completely resets the container by removing all previously registered services and handlers from it.\n */\n static reset(containerId?: any): Container {\n if (containerId) {\n const instance = this.instances.get(containerId);\n if (instance) {\n instance.reset();\n this.instances.delete(containerId);\n }\n } else {\n this.globalInstance.reset();\n Array.from(this.instances.values()).forEach(i => i.reset());\n }\n return this;\n }\n\n /**\n * Registers a new handler.\n */\n static registerHandler(handler: Handler): Container {\n this.handlers.set(handler, handler);\n return this;\n }\n\n /**\n * Helper method that imports given services.\n */\n static import(services: Function[]): Container {\n return this;\n }\n}\n","import { Metadata } from '../decorators';\nimport { createUniqueHash } from './create-unique-hash';\nimport { Container } from '../container/Container';\nimport { ServiceMetadata } from '../container/types/ServiceMetadata';\nimport { ServiceOptions } from '../container/types/ServiceOptions';\nimport { Token } from '../container/Token';\n\nexport function ReflectDecorator(\n options: any,\n metaOptions: Metadata\n) {\n return (target: Function) => {\n const uniqueHashForClass = createUniqueHash(\n `${target}${JSON.stringify(options, null, 4)}`\n );\n Object.defineProperty(target, 'originalName', {\n value: target.name || target.constructor.name,\n writable: false\n });\n Object.defineProperty(target, 'name', {\n value: uniqueHashForClass,\n writable: true\n });\n const nameCapitalized = (name: string) =>\n name.charAt(0).toUpperCase() + name.slice(1);\n\n target['metadata'] = {\n moduleName: target['originalName'],\n moduleHash: uniqueHashForClass,\n options: options || null,\n type: metaOptions.type,\n raw: `\n ---- @${nameCapitalized(metaOptions.type)} '${target.name}' metadata----\n @${nameCapitalized(metaOptions.type)}(${JSON.stringify(\n options,\n null,\n 4\n )})\n ${target['originalName']}\n `\n };\n const service: ServiceMetadata = {\n type: target\n };\n\n if (typeof options === 'string' || options instanceof Token) {\n service.id = options;\n service.multiple = (options as ServiceOptions).multiple;\n service.global = (options as ServiceOptions).global || false;\n service.transient = (options as ServiceOptions).transient;\n\n } else if (options) { // ServiceOptions\n service.id = (options as ServiceOptions).id;\n service.factory = (options as ServiceOptions).factory;\n service.multiple = (options as ServiceOptions).multiple;\n service.global = (options as ServiceOptions).global || false;\n service.transient = (options as ServiceOptions).transient;\n }\n\n\n Container.set(service);\n };\n}\n","import { ServiceOptions } from '../../container/types/ServiceOptions';\nimport { Token } from '../../container/Token';\nimport { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport interface TypeProvide extends Function {\n new(...args: any[]): T;\n}\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(): Function;\n\n// export function Service(config: { providedIn?: TypeProvide | 'root' | null, useFactory?: () => any }): Function;\n\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(name: string): Function;\n\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(token: Token): Function;\n\n\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(options?: ServiceOptions): Function;\n\n/**\n * Marks class as a service that can be injected using container.\n */\nexport function Service(options?: ServiceOptions | Token | string): Function {\n return ReflectDecorator(options, { type: 'service' });\n}\n\n","export * from './on-before';\nexport * from './on-init';","export { Service as Injectable } from '../decorators/service/Service';\nexport { Container } from './Container';\nexport { ContainerInstance } from './ContainerInstance';\nexport { Handler } from './types/Handler';\nexport { ServiceOptions } from './types/ServiceOptions';\nexport { ServiceIdentifier } from './types/ServiceIdentifier';\nexport { ServiceMetadata } from './types/ServiceMetadata';\nexport { ObjectType } from './types/ObjectType';\nexport { Token as InjectionToken } from './Token';\nexport * from './types/hooks/index';","import {\n CacheLayerInterface,\n CacheServiceConfigInterface\n} from './cache-layer.interfaces';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { filter, map, timeoutWith, skip, take } from 'rxjs/operators';\n\nexport class CacheLayer {\n public items: BehaviorSubject> = new BehaviorSubject([]);\n public name: string;\n public config: CacheServiceConfigInterface;\n public map: Map = new Map();\n\n public get(name): T {\n return this.map.get(name);\n }\n\n constructor(layer: CacheLayerInterface) {\n this.name = layer.name;\n this.config = layer.config;\n this.initHook(layer);\n }\n\n private initHook(layer) {\n if (this.config.maxAge) {\n this.onExpireAll(layer);\n }\n }\n\n private onExpireAll(layer) {\n layer.items.forEach(item => this.onExpire(item['key']));\n }\n\n private putItemHook(layerItem): void {\n if (this.config.maxAge) {\n this.onExpire(layerItem['key']);\n }\n }\n\n public getItem(key: string): T {\n if (this.map.has(key)) {\n return this.get(key);\n } else {\n return null;\n }\n }\n\n public putItem(layerItem: T): T {\n this.map.set(layerItem['key'], layerItem);\n const item = this.get(layerItem['key']);\n const filteredItems = this.items\n .getValue()\n .filter(item => item['key'] !== layerItem['key']);\n this.items.next([...filteredItems, item]);\n this.putItemHook(layerItem);\n return layerItem;\n }\n\n private onExpire(key: string) {\n return new Observable(observer => observer.next())\n .pipe(\n timeoutWith(this.config.maxAge, of(1)),\n skip(1),\n take(1)\n )\n .subscribe(() => this.removeItem(key));\n }\n\n public removeItem(key: string): void {\n const newLayerItems = this.items\n .getValue()\n .filter(item => item['key'] !== key);\n this.map.delete(key);\n this.items.next(newLayerItems);\n }\n\n public getItemObservable(key: string): Observable {\n return this.items.asObservable().pipe(\n filter(() => !!this.map.has(key)),\n map(() => this.map.get(key))\n );\n }\n\n public flushCache(): Observable {\n return this.items.asObservable().pipe(\n map(items => {\n items.forEach(i => this.removeItem(i['key']));\n return true;\n })\n );\n }\n}\n","function strEnum(o: Array): { [K in T]: K } {\n return o.reduce((res, key) => {\n res[key] = key;\n return res;\n }, Object.create(null));\n}\nexport const InternalEvents = strEnum(['load', 'config']);\nexport type InternalEvents = keyof typeof InternalEvents;\n\nexport const InternalLayers = strEnum(['globalConfig', 'modules']);\nexport type InternalLayers = keyof typeof InternalLayers;\n","export class LoggerConfig {\n logging?: boolean = process.env.LOGGING === 'true' ? true : false;\n hashes?: boolean = true;\n date?: boolean = true;\n exitHandler?: boolean = true;\n fileService?: boolean = true;\n}\n\nexport class PrivateCryptoModel {\n algorithm?: string;\n cyperIv?: string;\n cyperKey?: string;\n}\n\nexport class ExperimentalFeatures {\n // crypto?: PrivateCryptoModel;\n logExtendedInjectables?: boolean;\n showModuleWithDependencies?: boolean;\n}\n\nexport class InitOptionsConfig {\n services?: boolean;\n controllers?: boolean;\n effects?: boolean;\n pluginsBefore?: boolean;\n plugins?: boolean;\n components?: boolean;\n pluginsAfter?;\n}\n\nexport class ConfigModel {\n init?: boolean = true;\n initOptions?: InitOptionsConfig = new InitOptionsConfig();\n experimental?: ExperimentalFeatures = new ExperimentalFeatures();\n logger?: LoggerConfig = new LoggerConfig();\n strict?: boolean;\n}\n","import { Service } from '../../decorators/service/Service';\nimport { ConfigModel } from './config.model';\n\n@Service()\nexport class ConfigService {\n config: ConfigModel = new ConfigModel();\n setConfig(config: ConfigModel) {\n Object.assign(this.config, config);\n }\n}\n","export * from './config.model';\nexport * from './config.service';","import { Container } from '../../container';\n\nexport function Injector(Service: T): Function {\n return function (target: Function, propertyName: string) {\n Object.defineProperty(target, propertyName, {\n get: () => Container.get(Service)\n });\n };\n}\n","import { Service } from '../../decorators/service/Service';\nimport { ConfigService } from '../config/index';\nimport { Injector } from '../../decorators/injector/injector.decorator';\n\n@Service()\nexport class BootstrapLogger {\n @Injector(ConfigService) configService: ConfigService;\n\n log(message: string) {\n if (this.configService.config.logger.logging) {\n const m = [this.logDate(), message];\n console.log(...m);\n return m;\n }\n }\n\n error(message: string) {\n console.error(message);\n }\n\n logImporter(message: string) {\n if (this.configService.config.logger.logging) {\n return this.log(message);\n }\n }\n\n logDate() {\n if (this.configService.config.logger.date) {\n return `${Date.now().toPrecision()}`;\n } else {\n return '';\n }\n }\n\n logFileService(message: string) {\n if (this.configService.config.logger.fileService) {\n this.log(message);\n return '``';\n }\n }\n\n logHashes(message: string) {\n if (this.configService.config.logger.hashes) {\n return message;\n } else {\n return '';\n }\n }\n\n logExitHandler(message: string) {\n if (this.configService.config.logger.exitHandler) {\n this.log(message);\n } else {\n return '';\n }\n }\n}\n","export * from './bootstrap-logger';","import { BehaviorSubject, Observable, of } from 'rxjs';\nimport { take, map, timeoutWith, skip } from 'rxjs/operators';\nimport { CacheLayer } from './cache-layer';\nimport {\n CacheLayerItem,\n CacheLayerInterface,\n Duplicates\n} from './cache-layer.interfaces';\nimport { InternalEvents, InternalLayers } from '../../helpers/events';\nimport { Service } from '../../decorators/service/Service';\nimport {\n Metadata,\n ServiceArgumentsInternal\n} from '../../decorators/module/module.interfaces';\nimport { BootstrapLogger } from '../bootstrap-logger/index';\n\nconst FRIENDLY_ERROR_MESSAGES = {\n TRY_TO_UNSUBSCRIBE:\n 'Someone try to unsubscribe from collection directly... agghhh.. read docs! Blame: '\n};\n\n@Service()\nexport class CacheService {\n constructor(private logger: BootstrapLogger) {}\n\n public _cachedLayers: BehaviorSubject<\n CacheLayer>[]\n > = new BehaviorSubject([]);\n public map: Map = new Map();\n config: any = {};\n\n public static createCacheInstance(\n cacheLayer\n ): CacheLayer> {\n return new CacheLayer>(cacheLayer);\n }\n\n public getLayer(name: string): CacheLayer> {\n const exists = this.map.has(name);\n if (!exists) {\n return this.createLayer({ name: name });\n }\n return this.map.get(name);\n }\n\n public getLayersByName(name: string): CacheLayer>[] {\n return Array.from(this.map.keys())\n .map(item => {\n if (\n item !== InternalLayers.modules &&\n item !== InternalLayers.globalConfig\n ) {\n const config = this.getLayer<{\n moduleName: string;\n moduleHash: string;\n }>(item).getItem(InternalEvents.config);\n if (config && config.data && name === config.data.moduleName) {\n return this.getLayer(config.data.moduleHash);\n }\n }\n })\n .filter(i => !!i) as any;\n }\n\n public searchForDuplicateDependenciesInsideApp() {\n const uniq = [].concat\n .apply(\n [],\n Array.from(this.map.keys()).map(key =>\n Array.from(this.getLayer(key).map.keys())\n .map(key => (!this.isExcludedEvent(key) ? key : null))\n .filter(i => !!i)\n )\n )\n .map(name => Object.create({ count: 1, name }))\n .reduce((a, b) => {\n a[b.name] = (a[b.name] || 0) + b.count;\n return a;\n }, {});\n const duplicates = Object.keys(uniq).filter(a => uniq[a] > 1);\n if (duplicates.length) {\n const dups = this.searchForDuplicatesByHash(duplicates[0]);\n const moduleType =\n dups[0].class['metadata']['type'].charAt(0).toUpperCase() +\n dups[0].class['metadata']['type'].slice(1);\n throw new Error(`\n ${dups[0].class['metadata'].raw}\n ${moduleType}: '${dups[0].originalName}' found multiple times!\n ${moduleType} hash: ${dups[0].moduleHash}\n Modules: [${dups[0].moduleName}, ${dups[1].moduleName}]\n\n Hint: '${\n dups[0].originalName\n }' class identity hash is identical in both\n imported files inside ${dups[0].moduleName} and ${\n dups[1].moduleName\n }\n consider removing one of the '${dups[0].originalName}'\n `);\n }\n return duplicates;\n }\n\n private isExcludedEvent(i: any) {\n return i === InternalEvents.config || i === InternalEvents.load;\n }\n\n public searchForItem(classItem: Function): ServiceArgumentsInternal {\n return Array.from(this.map.keys())\n .map(module => {\n const currentModule = this.getLayer(module);\n const currentModuleDependencies = Array.from(currentModule.map.keys());\n const found = currentModuleDependencies.filter(i => {\n if (this.isExcludedEvent(i)) {\n return;\n } else {\n return i === classItem.name;\n }\n });\n if (found.length) {\n return currentModule.getItem(found[0]).data;\n }\n })\n .filter(i => !!i)[0] as ServiceArgumentsInternal;\n }\n\n public searchForDuplicatesByHash(key: string): Duplicates[] {\n return Array.from(this.map.keys())\n .map(module => {\n const currentModule = this.getLayer(module);\n const found = Array.from(currentModule.map.keys()).filter(i => {\n if (this.isExcludedEvent(i)) {\n return;\n }\n return i === key;\n });\n\n if (found.length) {\n const currentFoundItem = currentModule.getItem(found[0]);\n const currentModuleName = this.getLayer(module).getItem(\n InternalEvents.config\n );\n return {\n moduleName: currentModuleName.data.moduleName,\n moduleHash: currentModuleName.data.moduleHash,\n originalName: currentFoundItem.data.originalName,\n dupeName: currentFoundItem.key,\n raw: currentModuleName.data.raw,\n class: currentFoundItem.data\n };\n }\n })\n .filter(i => !!i) as any;\n }\n\n public createLayer(\n layer: CacheLayerInterface\n ): CacheLayer> {\n const exists = this.map.has(layer.name);\n if (exists) {\n return this.map.get(layer.name);\n }\n layer.items = layer.items || [];\n layer.config = layer.config || this.config;\n const cacheLayer = CacheService.createCacheInstance(layer);\n this.map.set(cacheLayer.name, cacheLayer);\n this._cachedLayers.next([...this._cachedLayers.getValue(), cacheLayer]);\n this.LayerHook(cacheLayer);\n return cacheLayer;\n }\n\n private LayerHook(layerInstance: CacheLayer>): void {\n this.protectLayerFromInvaders(layerInstance);\n if (\n layerInstance.config.cacheFlushInterval ||\n this.config.cacheFlushInterval\n ) {\n this.OnExpire(layerInstance);\n }\n }\n\n private protectLayerFromInvaders(\n cacheLayer: CacheLayer>\n ): void {\n cacheLayer.items.constructor.prototype.unsubsribeFromLayer =\n cacheLayer.items.constructor.prototype.unsubscribe;\n cacheLayer.items.constructor.prototype.unsubscribe = () => {\n console.error(\n FRIENDLY_ERROR_MESSAGES.TRY_TO_UNSUBSCRIBE + cacheLayer.name\n );\n };\n }\n\n private OnExpire(layerInstance: CacheLayer>) {\n return new Observable(observer => observer.next())\n .pipe(\n timeoutWith(\n layerInstance.config.cacheFlushInterval ||\n this.config.cacheFlushInterval,\n of(1)\n ),\n skip(1),\n take(1)\n )\n .subscribe(() => this.removeLayer(layerInstance));\n }\n\n public removeLayer(layerInstance: CacheLayer>): void {\n this.map.delete(layerInstance.name);\n this._cachedLayers.next([\n ...this._cachedLayers\n .getValue()\n .filter(layer => layer.name !== layerInstance.name)\n ]);\n }\n\n public transferItems(\n name: string,\n newCacheLayers: CacheLayerInterface[]\n ): CacheLayer>[] {\n const oldLayer = this.getLayer(name);\n const newLayers = [];\n newCacheLayers.forEach(layerName => {\n const newLayer = this.createLayer(layerName);\n oldLayer.items.getValue().forEach(item => newLayer.putItem(item));\n newLayers.push(newLayer);\n });\n return newLayers;\n }\n\n public flushCache(): Observable {\n let oldLayersNames: string[];\n return this._cachedLayers.pipe(\n take(1),\n map((layers: any[]) => {\n oldLayersNames = layers.map(l => l.name);\n layers.forEach(layer => this.removeLayer(layer));\n oldLayersNames.forEach(l => this.createLayer({ name: l }));\n return true;\n })\n );\n }\n}\n","import { Metadata } from '../../decorators/module/module.interfaces';\n\nexport interface CacheLayerItem {\n key: string;\n data: T;\n}\n\nexport class CacheServiceConfigInterface {\n deleteOnExpire?: string = 'aggressive';\n cacheFlushInterval?: number | null = 60 * 60 * 1000;\n maxAge?: number | null = 15 * 60 * 1000;\n localStorage?: boolean = false;\n}\n\nexport interface CacheLayerInterface {\n name: string;\n config?: CacheServiceConfigInterface;\n items?: any;\n}\n\nexport interface Duplicates extends Metadata {\n dupeName: string;\n originalName: string;\n class: Function;\n}\n","export * from './cache-layer.service';\nexport * from './cache-layer';\nexport * from './cache-layer.interfaces';","import { BehaviorSubject } from 'rxjs';\n// import { PluginBase, PluginNameVersion, PluginPackage } from 'hapi';\nimport { Service } from '../../decorators/service/Service';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class PluginService {\n private plugins: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n private beforePlugins: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n private afterPlugins: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.plugins.next([...this.plugins.getValue(), plugin]);\n }\n\n registerBefore(plugin) {\n this.beforePlugins.next([...this.plugins.getValue(), plugin]);\n }\n\n registerAfter(plugin) {\n this.afterPlugins.next([...this.plugins.getValue(), plugin]);\n }\n\n getPlugins(): Array {\n return this.plugins.getValue();\n }\n\n getAfterPlugins() {\n return this.afterPlugins.getValue();\n }\n\n getBeforePlugins() {\n return this.beforePlugins.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BootstrapLogger } from '../bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { Observable, Subject } from 'rxjs';\n\nexport type NodejsEvents =\n | 'beforeExit'\n | 'disconnect'\n | 'exit'\n | 'rejectionHandled'\n | 'uncaughtException'\n | 'unhandledRejection'\n | 'warning'\n | 'message'\n | 'newListener'\n | 'removeListener';\n\nexport type Signals =\n | 'SIGABRT'\n | 'SIGALRM'\n | 'SIGBUS'\n | 'SIGCHLD'\n | 'SIGCONT'\n | 'SIGFPE'\n | 'SIGHUP'\n | 'SIGILL'\n | 'SIGINT'\n | 'SIGIO'\n | 'SIGIOT'\n | 'SIGKILL'\n | 'SIGPIPE'\n | 'SIGPOLL'\n | 'SIGPROF'\n | 'SIGPWR'\n | 'SIGQUIT'\n | 'SIGSEGV'\n | 'SIGSTKFLT'\n | 'SIGSTOP'\n | 'SIGSYS'\n | 'SIGTERM'\n | 'SIGTRAP'\n | 'SIGTSTP'\n | 'SIGTTIN'\n | 'SIGTTOU'\n | 'SIGUNUSED'\n | 'SIGURG'\n | 'SIGUSR1'\n | 'SIGUSR2'\n | 'SIGVTALRM'\n | 'SIGWINCH'\n | 'SIGXCPU'\n | 'SIGXFSZ'\n | 'SIGBREAK'\n | 'SIGLOST'\n | 'SIGINFO';\n\n@Service()\nexport class ExitHandlerService {\n errorHandler: Subject = new Subject();\n @Injector(BootstrapLogger) private logger: BootstrapLogger;\n\n init() {}\n\n exitHandler(options, err) {\n this.errorHandler.next(err);\n if (options.cleanup) {\n this.logger.logExitHandler('AppStopped');\n }\n if (err) console.log(err.stack);\n if (options.exit) {\n this.logger.logExitHandler('Unhandled error rejection');\n }\n process.exit(0);\n }\n\n onExitApp(events: Array) {\n return new Observable(\n o =>\n events &&\n events.length &&\n events.forEach(event => process.on(event, e => o.next(e)))\n );\n }\n}\n","export * from './exit-handler.service';","import { CacheService, CacheLayer, CacheLayerItem } from '../cache/index';\nimport { Container } from '../../container';\nimport { BootstrapLogger } from '../bootstrap-logger';\nimport { Service } from '../../decorators/service/Service';\n\n@Service()\nexport class RequestCacheService extends CacheService {\n cacheLayer: CacheLayer>;\n constructor() {\n super(Container.get(BootstrapLogger));\n this.cacheLayer = this.createLayer({ name: 'request-cache-layer' });\n }\n\n put(key, data) {\n return this.cacheLayer.putItem({ key, data });\n }\n\n get(key) {\n return this.cacheLayer.getItem(key);\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { Observable, of } from 'rxjs';\nimport { get as httpGet } from 'http';\nimport { get as httpsGet } from 'https';\nimport { RequestCacheService } from './request.cache.service';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { tap } from 'rxjs/operators';\nimport { BootstrapLogger } from '../bootstrap-logger';\n\n@Service()\nexport class RequestService {\n @Injector(RequestCacheService) private cache: RequestCacheService;\n @Injector(BootstrapLogger) private logger: BootstrapLogger;\n\n get(link: string, cacheHash?: any) {\n if (this.cache.cacheLayer.map.has(link)) {\n this.logger.log(`Item returned from cacahe: ${link}`);\n return of(this.cache.cacheLayer.get(link).data);\n }\n return new Observable(o => {\n if (link.includes('https://')) {\n httpsGet(link, resp => {\n let data = '';\n resp.on('data', chunk => (data += chunk));\n resp.on('end', () => o.next(data));\n }).on('error', err => {\n console.error('Error: ' + err.message);\n o.error(err);\n });\n } else {\n httpGet(link, resp => {\n let data = '';\n resp.on('data', chunk => (data += chunk));\n resp.on('end', () => o.next(data));\n }).on('error', err => {\n console.error('Error: ' + err.message);\n o.error(err);\n });\n }\n }).pipe(\n tap(res => this.cache.cacheLayer.putItem({ key: link, data: res }))\n );\n }\n}\n","export * from './request.service';\nexport * from './request.cache.service';","const path = require('path');\nconst fs = require('fs');\nconst _0777 = parseInt('0777', 8);\n\n\nexport function mkdirp(p?, opts?, f?, made?) {\n if (typeof opts === 'function') {\n f = opts;\n opts = {};\n }\n else if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n\n let mode = opts.mode;\n const xfs = opts.fs || fs;\n\n if (mode === undefined) {\n mode = _0777 & (~process.umask());\n }\n if (!made) made = null;\n\n const cb = f || function () { };\n p = path.resolve(p);\n\n xfs.mkdir(p, mode, function (er) {\n if (!er) {\n made = made || p;\n return cb(null, made);\n }\n switch (er.code) {\n case 'ENOENT':\n mkdirp(path.dirname(p), opts, function (er, made) {\n if (er) cb(er, made);\n else mkdirp(p, opts, cb, made);\n });\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n xfs.stat(p, function (er2, stat) {\n // if the stat fails, then that's super weird.\n // let the original error be the failure reason.\n if (er2 || !stat.isDirectory()) cb(er, made);\n else cb(null, made);\n });\n break;\n }\n });\n}\n\nexport function mkdirpSync(p?, opts?, made?) {\n if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n\n let mode = opts.mode;\n const xfs = opts.fs || fs;\n\n if (mode === undefined) {\n mode = _0777 & (~process.umask());\n }\n if (!made) made = null;\n\n p = path.resolve(p);\n\n try {\n xfs.mkdirSync(p, mode);\n made = made || p;\n }\n catch (err0) {\n switch (err0.code) {\n case 'ENOENT':\n made = mkdirpSync(path.dirname(p), opts, made);\n mkdirpSync(p, opts, made);\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n let stat;\n try {\n stat = xfs.statSync(p);\n }\n catch (err1) {\n throw err0;\n }\n if (!stat.isDirectory()) throw err0;\n break;\n }\n }\n\n return made;\n}","import { Service } from '../../decorators/service/Service';\nimport {\n writeFileSync,\n existsSync,\n readdir,\n stat,\n writeFile,\n readFileSync,\n readFile\n} from 'fs';\nimport { Observable } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { BootstrapLogger } from '../bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { resolve } from 'path';\nimport { mkdirp } from './dist';\n\n@Service()\nexport class FileService {\n @Injector(BootstrapLogger) private logger: BootstrapLogger;\n\n writeFile(folder: string, fileName, moduleName, file) {\n return this.mkdirp(folder).pipe(\n tap(() => {\n this.logger.logFileService(\n `Bootstrap: @Service('${moduleName}'): Saved inside ${folder}`\n );\n }),\n switchMap(() => this.writeFileAsyncP(folder, fileName, file))\n );\n }\n\n writeFileAsync(folder: string, fileName, moduleName, file) {\n return this.mkdirp(folder).pipe(\n switchMap(() => this.writeFileAsyncP(folder, fileName, file)),\n map(() => {\n this.logger.logFileService(\n `Bootstrap: external @Module('${moduleName}') namespace: Saved inside ${folder}`\n );\n return `${folder}/${fileName}`;\n })\n );\n }\n\n writeFileSync(folder, file) {\n return writeFileSync.bind(null)(\n folder,\n JSON.stringify(file, null, 2) + '\\n',\n { encoding: 'utf-8' }\n );\n }\n\n readFile(file: string) {\n return JSON.parse(readFileSync.bind(null)(file, { encoding: 'utf-8' }));\n }\n\n isPresent(path: string) {\n return existsSync(path);\n }\n\n writeFileAsyncP(folder, fileName, content) {\n return new Observable(o =>\n writeFile(`${folder}/${fileName}`, content, () => o.next(true))\n );\n }\n\n mkdirp(folder): Observable {\n return new Observable(observer => {\n mkdirp(folder, err => {\n if (err) {\n console.error(err);\n observer.error(false);\n } else {\n observer.next(true);\n }\n observer.complete();\n });\n });\n }\n\n public fileWalker(\n dir: string,\n exclude: string = 'node_modules'\n ): Observable {\n return new Observable(observer => {\n this.filewalker(\n dir,\n (err, result) => {\n if (err) {\n observer.error(err);\n } else {\n observer.next(result);\n }\n observer.complete();\n },\n exclude\n );\n });\n }\n\n private filewalker(\n dir: string,\n done: (err: NodeJS.ErrnoException, data?: any) => void,\n exclude = 'node_modules'\n ) {\n let results = [];\n const fileWalker = this.filewalker.bind(this);\n readdir(dir, (err, list) => {\n if (err) {\n return done(err);\n }\n let pending = list.length;\n if (!pending) {\n return done(null, results);\n }\n list.forEach(file => {\n file = resolve(dir, file);\n stat(file, (err, stat) => {\n if (stat && stat.isDirectory()) {\n results.push(file);\n if (!file.includes(exclude)) {\n fileWalker(\n file,\n (err, res) => {\n results = results.concat(res);\n if (!--pending) {\n done(null, results);\n }\n },\n exclude\n );\n } else if (!--pending) {\n done(null, results);\n }\n } else {\n results.push(file);\n if (!--pending) {\n done(null, results);\n }\n }\n });\n });\n });\n }\n}\n","export * from './file.service';","// import { createReadStream, createWriteStream } from 'fs';\n// import { createGzip, createGunzip } from 'zlib';\n// import { Observable } from 'rxjs';\nimport { Service } from '../../decorators/service/Service';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { ConfigService, PrivateCryptoModel } from '../config/index';\n\n@Service()\nexport class CompressionService {\n @Injector(ConfigService) private config: ConfigService;\n\n // public gZipFile(input: string, output: string, options: PrivateCryptoModel = { cyperIv: '', algorithm: '', cyperKey: '' }) {\n // const config = this.config.config.experimental.crypto || options;\n // return Observable.create(observer => {\n // createReadStream(input)\n // .pipe(createGzip())\n // // .pipe(createCipheriv(config.algorithm, config.cyperKey, config.cyperIv))\n // .pipe(createWriteStream(output))\n // .on('finish', () => observer.next(true))\n // .on('error', (err) => observer.error(err));\n // });\n // }\n\n // public readGzipFile(input: string, output: string, options: PrivateCryptoModel = { cyperIv: '', algorithm: '', cyperKey: '' }) {\n // const config = this.config.config.experimental.crypto || options;\n // return Observable.create(observer => {\n // createReadStream(input)\n // // .pipe(createDecipheriv(config.algorithm, config.cyperKey, config.cyperIv))\n // .pipe(createGunzip())\n // .pipe(createWriteStream(output))\n // .on('finish', () => observer.next(true))\n // .on('error', (err) => observer.error(err));\n // });\n // }\n\n public gZipAll() {\n // var archiver = require('archiver');\n // var output = createWriteStream('./example.tar.gz');\n // var archive = archiver('tar', {\n // gzip: true,\n // zlib: { level: 9 } // Sets the compression level.\n // });\n // archive.on('error', function (err) {\n // throw err;\n // });\n // // pipe archive data to the output file\n // archive.pipe(output);\n // // append files\n // archive.file('/path/to/file0.txt', { name: 'file0-or-change-this-whatever.txt' });\n // archive.file('/path/to/README.md', { name: 'foobar.md' });\n // // Wait for streams to complete\n // archive.finalize();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { NpmPackageConfig } from '../external-importer/index';\nimport { BehaviorSubject } from 'rxjs';\nimport childProcess = require('child_process');\n\n@Service()\nexport class NpmService {\n packagesToDownload: BehaviorSubject = new BehaviorSubject(\n []\n );\n packages: string[] = [];\n child: childProcess.ChildProcess;\n\n setPackages(packages: NpmPackageConfig[]) {\n this.packagesToDownload.next([\n ...this.packagesToDownload.getValue(),\n ...packages\n ]);\n }\n\n preparePackages() {\n const arr = this.packagesToDownload.getValue() || [];\n this.packages = [...new Set(arr.map(p => `${p.name}@${p.version}`))];\n }\n\n installPackages() {\n return new Promise((resolve, reject) => {\n this.preparePackages();\n if (this.child) {\n this.child.stdout.removeAllListeners('data');\n this.child.stderr.removeAllListeners('data');\n this.child.removeAllListeners('exit');\n this.child.kill();\n }\n console.log(\n `Installing npm packages on child process! ${this.packages.toString()}`\n );\n this.child = childProcess.spawn('npm', ['i', ...this.packages]);\n this.child.stdout.on('data', data => process.stdout.write(data));\n this.child.stderr.on('data', data => {\n process.stdout.write(data);\n // reject(data)\n });\n this.child.on('exit', code => {\n console.log(`Child process exited with code ${code}`);\n console.log(\n `Installing npm packages DONE! ${this.packages.toString()}`\n );\n this.child = null;\n });\n });\n }\n}\n","export const IPFS_PROVIDERS = <{name: IPFS_PROVIDERS; link: string}[]>[\n {\n name: 'cloudflare',\n link: 'https://cloudflare-ipfs.com/ipfs/'\n },\n {\n name: 'main-ipfs-node',\n link: 'https://ipfs.io/ipfs/'\n },\n {\n name: 'infura',\n link: 'https://ipfs.infura.io/ipfs/'\n },\n {\n name: 'local',\n link: 'http://127.0.0.1:8080/ipfs/'\n }\n];\n\n\nexport type IPFS_PROVIDERS = 'cloudflare' | 'main-ipfs-node' | 'local' | 'infura';","import { Service } from '../../decorators/service/Service';\nimport {\n ExternalImporterConfig,\n ExternalImporterIpfsConfig,\n ExternalModuleConfiguration\n} from './external-importer-config';\nimport {\n from,\n Observable,\n of,\n combineLatest,\n BehaviorSubject,\n timer\n} from 'rxjs';\nimport { map, switchMap, take, filter, tap, takeUntil } from 'rxjs/operators';\nimport { RequestService } from '../request';\nimport { FileService } from '../file';\nimport { BootstrapLogger } from '../bootstrap-logger/bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { CompressionService } from '../compression/compression.service';\nimport { NpmService } from '../npm-service/npm.service';\nimport { PackagesConfig } from '../../bin/root';\nimport { IPFS_PROVIDERS } from './providers';\nimport SystemJS = require('systemjs');\n\n@Service()\nexport class ExternalImporter {\n defaultJsonFolder: string = `${process.cwd()}/package.json`;\n defaultTypescriptConfigJsonFolder: string = `${process.cwd()}/tsconfig.json`;\n\n @Injector(RequestService) private requestService: RequestService;\n @Injector(FileService) private fileService: FileService;\n @Injector(BootstrapLogger) private logger: BootstrapLogger;\n @Injector(CompressionService) compressionService: CompressionService;\n @Injector(NpmService) private npmService: NpmService;\n\n providers: BehaviorSubject<\n { name: IPFS_PROVIDERS; link: string }[]\n > = new BehaviorSubject(IPFS_PROVIDERS);\n defaultProvider: string = this.getProvider('main-ipfs-node');\n defaultNamespaceFolder: string = '@types';\n defaultOutputFolder: string = 'node_modules';\n setDefaultProvider(provider: IPFS_PROVIDERS) {\n this.defaultProvider = this.getProvider(provider);\n }\n getProvider(name: IPFS_PROVIDERS) {\n return this.providers.getValue().filter(p => p.name === name)[0].link;\n }\n\n setProviders(...args: { name: IPFS_PROVIDERS; link: string }[]) {\n this.providers.next([...this.providers.getValue(), ...args]);\n }\n\n importExternalModule(module: string) {\n return from(SystemJS.import(module));\n }\n\n validateConfig(config: ExternalImporterConfig) {\n if (!config) {\n throw new Error('Bootstrap: missing config');\n }\n }\n\n // encryptFile(fileFullPath: string) {\n // if (this.configService.config.experimental.crypto) {\n // return this.compressionService.readGzipFile(fileFullPath, 'dada');\n // } else {\n // return of(null);\n // }\n // }\n\n // decryptFile(fileFullPath: string) {\n // if (this.configService.config.experimental.crypto) {\n // return this.compressionService.gZipFile(fileFullPath, 'dada');\n // } else {\n // return of(null);\n // }\n // }\n\n isWeb() {\n let value = false;\n try {\n if (window) {\n value = true;\n }\n } catch (e) {}\n return value;\n }\n\n loadTypescriptConfigJson() {\n let tsConfig: { compilerOptions?: { typeRoots?: string[] } } = {};\n try {\n tsConfig = this.fileService.readFile(\n this.defaultTypescriptConfigJsonFolder\n );\n } catch (e) {\n console.error(`\n Error in loading tsconfig.json in ${\n this.defaultTypescriptConfigJsonFolder\n }\n Error: ${e}\n Fallback to creating tsconfig.json\n `);\n }\n tsConfig.compilerOptions = tsConfig.compilerOptions || {};\n tsConfig.compilerOptions.typeRoots =\n tsConfig.compilerOptions.typeRoots || [];\n return tsConfig;\n }\n\n addNamespaceToTypeRoots(namespace: string) {\n const defaultNamespace = `./${\n this.defaultOutputFolder\n }/@types/${namespace}`;\n const tsConfig = this.loadTypescriptConfigJson();\n const foundNamespace = tsConfig.compilerOptions.typeRoots.filter(\n t => t === defaultNamespace\n ).length;\n if (!foundNamespace) {\n tsConfig.compilerOptions.typeRoots.push(defaultNamespace);\n this.writeTypescriptConfigFile(tsConfig);\n }\n return of(true);\n }\n\n writeTypescriptConfigFile(file) {\n this.fileService.writeFileSync(process.cwd() + '/tsconfig.json', file);\n }\n\n loadPackageJson() {\n let packageJson;\n try {\n packageJson = this.fileService.readFile(this.defaultJsonFolder);\n } catch (e) {\n packageJson = {};\n }\n return packageJson;\n }\n\n loadNpmPackageJson() {\n let packageJson;\n try {\n packageJson = this.fileService.readFile(`${process.cwd()}/package.json`);\n } catch (e) {\n packageJson = {};\n }\n return packageJson;\n }\n\n prepareDependencies() {\n const file = this.loadNpmPackageJson();\n if (file.dependencies) {\n return Object.keys(file.dependencies).map(name => ({\n name,\n version: file.dependencies[name]\n }));\n }\n return [];\n }\n\n isModulePresent(hash) {\n const file = this.loadPackageJson();\n let ipfsConfig: PackagesConfig[] = file.ipfs;\n const found = [];\n if (!ipfsConfig) {\n ipfsConfig = this.defaultIpfsConfig();\n }\n ipfsConfig.forEach(c => {\n const present = c.dependencies.filter(dep => dep === hash);\n if (present.length) {\n found.push(present[0]);\n }\n });\n return found.length;\n }\n\n filterUniquePackages() {\n const file = this.loadPackageJson();\n let ipfsConfig: PackagesConfig[] = file.ipfs;\n let dups = [];\n if (!ipfsConfig) {\n ipfsConfig = this.defaultIpfsConfig();\n }\n ipfsConfig.forEach(c => {\n const uniq = c.dependencies\n .map(name => {\n return { count: 1, name: name };\n })\n .reduce((a, b) => {\n a[b.name] = (a[b.name] || 0) + b.count;\n return a;\n }, {});\n\n const duplicates = Object.keys(uniq).filter(a => uniq[a] > 1);\n dups = [...dups, ...duplicates];\n });\n\n if (dups.length) {\n throw new Error(\n `There are packages which are with the same hash ${JSON.stringify(\n dups\n )}`\n );\n }\n return dups.length;\n }\n\n defaultIpfsConfig() {\n return [{ provider: this.defaultProvider, dependencies: [] }];\n }\n\n addPackageToJson(hash: string) {\n const file = this.loadPackageJson();\n let ipfsConfig: PackagesConfig[] = file.ipfs;\n if (!ipfsConfig) {\n ipfsConfig = this.defaultIpfsConfig();\n }\n const packages = this.prepareDependencies();\n if (packages.length) {\n file.packages = packages;\n }\n if (this.isModulePresent(hash)) {\n this.logger.log(\n `Package with hash: ${hash} present and will not be downloaded!`\n );\n } else {\n ipfsConfig[0].dependencies.push(hash);\n file.ipfs = ipfsConfig;\n }\n\n this.fileService.writeFileSync(this.defaultJsonFolder, file);\n }\n\n downloadIpfsModules(modules: ExternalImporterIpfsConfig[]) {\n const latest = modules.map(m => this.downloadIpfsModule(m));\n return combineLatest(latest.length ? latest : of());\n }\n\n downloadIpfsModuleConfig(config: ExternalImporterIpfsConfig) {\n return this.requestService\n .get(config.provider + config.hash, config.hash)\n .pipe(\n map(r => {\n if (!r) {\n throw new Error(\n 'Recieved undefined from provided address' +\n config.provider +\n config.hash\n );\n }\n let res = r;\n const metaString = '';\n if (res.includes(metaString)) {\n try {\n res = r.split(metaString)[1];\n } catch (e) {}\n }\n return res;\n }),\n map(r => {\n let res = r;\n try {\n res = JSON.parse(r);\n } catch (e) {}\n return res;\n })\n );\n }\n\n private combineDependencies(\n dependencies: any[],\n config: ExternalImporterIpfsConfig\n ) {\n return combineLatest(\n dependencies.length\n ? dependencies.map(h =>\n this.downloadIpfsModule({ provider: config.provider, hash: h })\n )\n : of('')\n );\n }\n\n private writeFakeIndexIfMultiModule(\n folder: string,\n nameSpaceFakeIndex: string[]\n ) {\n if (nameSpaceFakeIndex.length === 2) {\n return this.fileService.writeFileAsyncP(\n `${folder}${this.defaultNamespaceFolder}/${nameSpaceFakeIndex[0]}`,\n 'index.d.ts',\n ''\n );\n } else {\n return of(true);\n }\n }\n\n downloadIpfsModule(config: ExternalImporterIpfsConfig) {\n if (!config.provider) {\n throw new Error(`Missing configuration inside ${config.hash}`);\n }\n\n if (!config.hash) {\n throw new Error(`Missing configuration inside ${config.provider}`);\n }\n let folder: string;\n let moduleLink: string;\n const configLink = config.provider + config.hash;\n let moduleTypings: string;\n let moduleName: string;\n let nameSpaceFakeIndex: string[];\n let originalModuleConfig: ExternalModuleConfiguration;\n let isNamespace: boolean;\n let isRegular: string;\n return this.downloadIpfsModuleConfig(config).pipe(\n tap(res => {\n if (!res['module']) {\n console.log(\n 'Todo: create logic to load module which is not from rxdi infrastructure for now can be used useDynamic which will do the same job!'\n );\n }\n }),\n filter((res: ExternalModuleConfiguration) => !!res.module),\n map((externalModule: ExternalModuleConfiguration) => {\n moduleName = externalModule.name;\n nameSpaceFakeIndex = moduleName.split('/');\n folder = `${process.cwd()}/${this.defaultOutputFolder}/`;\n moduleLink = `${config.provider}${externalModule.module}`;\n moduleTypings = `${config.provider}${externalModule.typings}`;\n externalModule.dependencies = externalModule.dependencies || [];\n externalModule.packages = externalModule.packages || [];\n originalModuleConfig = externalModule;\n this.npmService.setPackages(externalModule.packages);\n isNamespace = moduleName.split('/').length === 2;\n isRegular = isNamespace ? moduleName : moduleName.split('/')[0];\n this.logger.logFileService(\n `Package config for module ${moduleName} downloaded! ${JSON.stringify(\n externalModule\n )}`\n );\n return externalModule;\n }),\n switchMap(externalModule =>\n this.combineDependencies(externalModule.dependencies, config)\n ),\n switchMap(() => {\n this.logger.logFileService(\n `--------------------${moduleName}--------------------`\n );\n this.logger.logFileService(`\\nDownloading... ${configLink} `);\n this.logger.logFileService(\n `Config: ${JSON.stringify(originalModuleConfig, null, 2)} \\n`\n );\n return this.requestService.get(moduleLink, config.hash);\n }),\n switchMap(file =>\n this.fileService.writeFile(\n folder + moduleName,\n 'index.js',\n moduleName,\n file\n )\n ),\n switchMap(() => this.requestService.get(moduleTypings, config.hash)),\n switchMap(file =>\n this.fileService.writeFile(\n folder + `${this.defaultNamespaceFolder}/${isRegular}`,\n 'index.d.ts',\n moduleName,\n file\n )\n ),\n tap(() => {\n if (process.env.WRITE_FAKE_INDEX) {\n this.writeFakeIndexIfMultiModule(folder, nameSpaceFakeIndex);\n }\n }),\n switchMap(() => this.addNamespaceToTypeRoots(moduleName.split('/')[0])),\n map(() => ({\n provider: config.provider,\n hash: config.hash,\n version: originalModuleConfig.version,\n name: originalModuleConfig.name,\n dependencies: originalModuleConfig.dependencies,\n packages: originalModuleConfig.packages\n })),\n tap(() => {\n if (originalModuleConfig.packages.length) {\n this.npmService.installPackages();\n }\n })\n );\n }\n\n downloadTypings(\n moduleLink: string,\n folder: string,\n fileName: string,\n config: ExternalImporterConfig\n ) {\n if (!moduleLink) {\n return of(true);\n }\n return this.requestService.get(moduleLink).pipe(\n take(1),\n map(res => {\n this.logger.logFileService(`Done!`);\n return res;\n }),\n switchMap(res =>\n this.fileService.writeFile(\n folder,\n fileName,\n config.typingsFileName,\n res\n )\n )\n );\n }\n\n importModule(\n config: ExternalImporterConfig,\n token: string,\n { folderOverride, waitUntil } = {} as any\n ): Promise {\n const timer$ = timer(waitUntil || 20 * 1000);\n this.validateConfig(config);\n if (this.isWeb()) {\n SystemJS.config(\n Object.assign(\n {\n map: {\n [token]: config.link\n }\n },\n config.SystemJsConfig\n )\n );\n return SystemJS.import(config.link);\n }\n return new Observable(observer => {\n const moduleName = config.fileName;\n const moduleNamespace = config.namespace;\n const moduleLink = config.link;\n const moduleExtension = config.extension;\n const moduleSystemJsConfig = config.SystemJsConfig || {};\n const modulesFolder =\n config.outputFolder || `/${this.defaultOutputFolder}/`;\n const fileFullPath = `${folderOverride ||\n process.cwd()}${modulesFolder}/${moduleNamespace}/${moduleName}.${moduleExtension}`;\n const folder = `${folderOverride ||\n process.cwd()}${modulesFolder}${moduleNamespace}`;\n const fileName = `${moduleName}.${moduleExtension}`;\n\n Object.assign(moduleSystemJsConfig, {\n paths: { [moduleName]: fileFullPath, ...moduleSystemJsConfig.paths }\n });\n\n SystemJS.config(moduleSystemJsConfig);\n\n if (this.fileService.isPresent(fileFullPath)) {\n this.logger.logImporter(\n `Bootstrap -> @Service('${moduleName}'): present inside .${modulesFolder}${moduleNamespace}/${moduleName}.${moduleExtension} folder and loaded from there`\n );\n this.importExternalModule(moduleName)\n .pipe(take(1))\n .subscribe(\n m => {\n observer.next(m);\n observer.complete();\n },\n err => {\n observer.error(err);\n observer.complete();\n }\n );\n } else {\n this.logger.logImporter(\n `Bootstrap -> @Service('${moduleName}'): will be downloaded inside .${modulesFolder}${moduleNamespace}/${moduleName}.${moduleExtension} folder and loaded from there`\n );\n this.logger.logImporter(\n `Bootstrap -> @Service('${moduleName}'): ${moduleLink} downloading...`\n );\n this.requestService\n .get(moduleLink)\n .pipe(\n take(1),\n tap(() => this.logger.logImporter(`Done!`)),\n switchMap(res =>\n this.fileService.writeFile(folder, fileName, config.fileName, res)\n ),\n switchMap(() =>\n this.downloadTypings(config.typings, folder, fileName, config)\n ),\n switchMap(() => this.importExternalModule(moduleName))\n )\n .subscribe(\n m => {\n observer.next(m);\n observer.complete();\n },\n err => {\n observer.error(err);\n observer.complete();\n }\n );\n }\n })\n .pipe(takeUntil(timer$))\n .toPromise();\n }\n}\n","import { Config } from './external-importer-systemjs';\n\nexport class ExternalImporterConfig {\n link: string;\n fileName?: string;\n typings?: string;\n typingsFileName?: string;\n namespace?: string;\n extension?: string;\n crypto?: {\n cyperKey: string;\n cyperIv: string;\n algorithm: string;\n };\n SystemJsConfig?: Config;\n outputFolder?: string | '/node_modules/';\n}\n\nexport class ExternalImporterIpfsConfig {\n provider: string;\n hash: string;\n}\n\nexport interface NpmPackageConfig {\n name: string;\n version: string;\n}\n\nexport interface ExternalModuleConfiguration {\n name: string;\n version: string;\n typings: string;\n module: string;\n dependencies?: Array;\n packages?: NpmPackageConfig[];\n}","export * from './external-importer';\nexport * from './external-importer-config';","import { Service } from '../../decorators/service/Service';\nimport { Observable } from 'rxjs';\n\n@Service()\nexport class LazyFactory {\n lazyFactories: Map = new Map();\n setLazyFactory(\n provide: string,\n factory: Observable | Promise\n ) {\n this.lazyFactories.set(provide, factory);\n return this.getLazyFactory(provide);\n }\n getLazyFactory(provide: string) {\n return this.lazyFactories.get(provide);\n }\n}\n","import { Service } from '../../../decorators/service/Service';\nimport {\n DecoratorType,\n ServiceArgumentsInternal\n} from '../../../decorators/module/module.interfaces';\n\n@Service()\nexport class ModuleValidators {\n validateEmpty(m, original: ServiceArgumentsInternal, type: DecoratorType) {\n if (!m) {\n const requiredType = type.charAt(0).toUpperCase() + type.slice(1);\n throw new Error(`\n ${original.metadata.raw}\n -> @Module: ${original.metadata.moduleName}\n -> @Module hash: ${original.metadata.moduleHash}\n --> Maybe you forgot to import some ${requiredType} inside ${\n original.metadata.moduleName\n } ?\n\n Hint: run ts-lint again, looks like imported ${requiredType} is undefined or null inside ${\n original.metadata.moduleName\n }\n `);\n }\n }\n\n genericWrongPluggableError(\n m,\n original: ServiceArgumentsInternal,\n type: DecoratorType\n ) {\n if (m.metadata.type !== type) {\n const moduleType =\n m.metadata.type.charAt(0).toUpperCase() + m.metadata.type.slice(1);\n const requiredType = type.charAt(0).toUpperCase() + type.slice(1);\n throw new Error(`\n ${original.metadata.raw}\n -> @Module: '${original.metadata.moduleName}'\n -> @Module hash: '${original.metadata.moduleHash}'\n --> @${moduleType} '${\n m.metadata.moduleName\n }' provided, where expected class decorated with '@${requiredType}' instead,\n -> @Hint: please provide class with @Service decorator or remove ${\n m.metadata.moduleName\n } class\n `);\n }\n }\n\n validateImports(m, original: ServiceArgumentsInternal) {\n if (m.metadata.type !== 'module') {\n throw new Error(`\n ${original.metadata.raw}\n -> @Module: '${original.metadata.moduleName}'\n -> @Module hash: '${original.metadata.moduleHash}'\n --> @${m.metadata.type.charAt(0).toUpperCase() +\n m.metadata.type.slice(1)} '${\n m.originalName\n }' provided, where expected class decorated with '@Module' instead,\n -> @Hint: please provide class with @Module decorator or remove ${\n m.originalName\n } from imports\n `);\n }\n }\n\n validateServices(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'service');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'service');\n }\n\n validatePlugin(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'plugin');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'plugin');\n }\n\n validateController(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'controller');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'controller');\n }\n\n validateEffect(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'effect');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'effect');\n }\n\n validateComponent(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'component');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'component');\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class ControllersService {\n private controllers: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.controllers.next([...this.controllers.getValue(), plugin]);\n }\n\n getControllers() {\n return this.controllers.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class EffectsService {\n private effects: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.effects.next([...this.effects.getValue(), plugin]);\n }\n\n getEffects() {\n return this.effects.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class ComponentsService {\n private components: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.components.next([...this.components.getValue(), plugin]);\n }\n\n getComponents() {\n return this.components.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class BootstrapsServices {\n\n private bootstraps: BehaviorSubject> = new BehaviorSubject([]);\n\n register(plugin) {\n this.bootstraps.next([...this.bootstraps.getValue(), plugin]);\n }\n\n getBootstraps() {\n return this.bootstraps.getValue();\n }\n\n}","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class ServicesService {\n private services: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.services.next([...this.services.getValue(), plugin]);\n }\n\n getServices() {\n return this.services.getValue();\n }\n}\n","import { of } from 'rxjs';\nimport { Container } from '../../container';\nimport { Service } from '../../decorators/service/Service';\nimport { LazyFactory } from '../lazy-factory/lazy-factory.service';\nimport { PluginService } from '../plugin/plugin.service';\nimport {\n ServiceArgumentsInternal,\n Metadata\n} from '../../decorators/module/module.interfaces';\nimport { ExternalImporter } from '../external-importer';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { ModuleValidators } from './helpers/validators';\nimport {\n constructorWatcherService,\n ConstructorWatcherService\n} from '../constructor-watcher/constructor-watcher';\nimport { ControllersService } from '../controllers/controllers.service';\nimport { EffectsService } from '../effect/effect.service';\nimport { ComponentsService } from '../components/components.service';\nimport { BootstrapsServices } from '../bootstraps/bootstraps.service';\nimport { ServicesService } from '../services/services.service';\nimport { CacheLayer, CacheLayerItem } from '../../services/cache/';\n\n@Service()\nexport class ModuleService {\n public watcherService: ConstructorWatcherService = constructorWatcherService;\n\n @Injector(LazyFactory) private lazyFactoryService: LazyFactory;\n @Injector(PluginService) private pluginService: PluginService;\n @Injector(ComponentsService) private componentsService: ComponentsService;\n @Injector(ControllersService) private controllersService: ControllersService;\n @Injector(EffectsService) private effectsService: EffectsService;\n @Injector(BootstrapsServices) private bootstraps: BootstrapsServices;\n @Injector(ExternalImporter) private externalImporter: ExternalImporter;\n @Injector(ModuleValidators) private validators: ModuleValidators;\n @Injector(ServicesService) private servicesService: ServicesService;\n\n setServices(\n services: ServiceArgumentsInternal[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n services.forEach(service => {\n this.validators.validateServices(service, original);\n\n this.setInjectedDependencies(service);\n\n if (service.provide && service.provide.constructor === Function) {\n service.provide = service.provide['name'];\n }\n\n if (service.provide && service.useFactory) {\n this.setUseFactory(service);\n } else if (service.provide && service.useDynamic) {\n this.setUseDynamic(service);\n } else if (\n service.provide &&\n service.useClass &&\n service.useClass.constructor === Function\n ) {\n this.setUseClass(service);\n } else if (service.provide && service.useValue) {\n this.setUseValue(service);\n } else {\n currentModule.putItem({ data: service, key: service.name });\n this.servicesService.register(service);\n }\n });\n }\n\n setInjectedDependencies(service) {\n service.deps = service.deps || [];\n if (service.deps.length) {\n service.deps = service.deps.map(dep => Container.get(dep));\n }\n }\n\n setUseValue(service) {\n Container.set(service.provide, service.useValue);\n if (service.lazy) {\n this.lazyFactoryService.setLazyFactory(\n service.provide,\n of(Container.get(service.provide))\n );\n }\n }\n\n setUseClass(service) {\n if (service.lazy) {\n this.lazyFactoryService.setLazyFactory(\n service.provide,\n of(Container.get(service.useClass))\n );\n } else {\n Container.set(service.provide, Container.get(service.useClass));\n }\n }\n\n setUseDynamic(service) {\n const factory = this.externalImporter.importModule(\n service.useDynamic,\n service.provide\n );\n this.lazyFactoryService.setLazyFactory(service.provide, factory);\n }\n\n setUseFactory(service) {\n const factory = service.useFactory;\n service.useFactory = () => factory(...service.deps);\n if (service.lazy) {\n this.lazyFactoryService.setLazyFactory(\n service.provide,\n service.useFactory()\n );\n } else {\n Container.set(service.provide, service.useFactory());\n }\n }\n\n setControllers(\n controllers: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n controllers.forEach(controller => {\n this.validators.validateController(controller, original);\n currentModule.putItem({\n data: controller,\n key: controller.name\n });\n this.controllersService.register(controller);\n });\n }\n\n setEffects(\n effects: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n effects.forEach(effect => {\n this.validators.validateEffect(effect, original);\n currentModule.putItem({\n data: effect,\n key: effect.name\n });\n this.effectsService.register(effect);\n });\n }\n\n setComponents(\n components: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n components.forEach(component => {\n this.validators.validateComponent(component, original);\n currentModule.putItem({\n data: component,\n key: component.name\n });\n this.componentsService.register(component);\n });\n }\n\n setPlugins(\n plugins: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n plugins.forEach(plugin => {\n this.validators.validatePlugin(plugin, original);\n currentModule.putItem({\n data: plugin,\n key: plugin.name\n });\n this.pluginService.register(plugin);\n });\n }\n\n setBootstraps(\n bootstraps: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n bootstraps.forEach(bootstrap => {\n this.validators.validateEmpty(\n bootstrap,\n original,\n bootstrap['metadata']['type']\n );\n currentModule.putItem({\n data: bootstrap,\n key: bootstrap.name\n });\n this.bootstraps.register(bootstrap);\n });\n }\n\n setAfterPlugins(\n plugins: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n plugins.forEach(plugin => {\n this.validators.validatePlugin(plugin, original);\n currentModule.putItem({\n data: plugin,\n key: plugin.name\n });\n this.pluginService.registerAfter(plugin);\n });\n }\n\n setBeforePlugins(\n plugins: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n plugins.forEach(plugin => {\n this.validators.validatePlugin(plugin, original);\n currentModule.putItem({\n data: plugin,\n key: plugin.name\n });\n this.pluginService.registerBefore(plugin);\n });\n }\n\n setImports(imports: Function[], original: ServiceArgumentsInternal) {\n imports.forEach((m: any) => {\n this.validators.validateImports(m, original);\n if (!m) {\n throw new Error('Missing import module');\n } else {\n Container.get(m);\n }\n });\n }\n}\n","export * from './module.service';\nexport * from './helpers/validators';","import { Container } from '../../container';\nimport { CacheService } from '../cache/cache-layer.service';\nimport { InternalLayers, InternalEvents } from '../../helpers/events';\nimport { switchMap, filter, map } from 'rxjs/operators';\nimport { of, Observable } from 'rxjs';\nimport { BootstrapLogger } from '../bootstrap-logger/bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { Service } from '../../decorators/service/Service';\n\n@Service()\nexport class ResolverService {\n @Injector(BootstrapLogger) private bootstrapLogger: BootstrapLogger;\n @Injector(CacheService) private cacheService: CacheService;\n\n resolveDependencies(hash, target, moduleName): Observable {\n this.cacheService\n .getLayer(InternalLayers.modules)\n .putItem({ key: hash, data: target });\n const currentModule = this.cacheService.getLayer(hash);\n currentModule.putItem({\n key: InternalEvents.config,\n data: { moduleName, moduleHash: hash }\n });\n return currentModule.getItemObservable(InternalEvents.load).pipe(\n switchMap(config => {\n if (!config.data) {\n return of(null);\n }\n return currentModule.items.asObservable();\n }),\n filter(res => res && res.length),\n map(this.resolveContainerDependencies(target, moduleName))\n );\n }\n\n private resolveContainerDependencies(target, moduleName: string) {\n return res => {\n res.forEach(i => {\n if (i.key === InternalEvents.load || i.key === InternalEvents.config) {\n return;\n }\n const found = this.cacheService.searchForItem(i.data);\n if (found) {\n if (found.provide) {\n return found;\n }\n const moduleType =\n found.metadata.type.charAt(0).toUpperCase() +\n found.metadata.type.slice(1);\n this.bootstrapLogger.log(\n `Start -> @Module('${moduleName}')${this.bootstrapLogger.logHashes(\n `(${target.name})`\n )}: @${moduleType}('${\n found.originalName\n }')${this.bootstrapLogger.logHashes(`(${found.name})`)}` +\n ' initialized!'\n );\n return Container.get(found);\n } else {\n throw new Error('not found');\n }\n });\n return res;\n };\n }\n}\n","export * from './resolver.service';\n","import { Service } from '../../decorators/service/Service';\nimport { Subject } from 'rxjs';\n\n@Service()\nexport class AfterStarterService {\n appStarted: Subject = new Subject();\n}\n","import { Container } from '../container/Container';\n\nexport const logExtendedInjectables = (\n name: { name: string },\n logExtendedInjectables: boolean\n) => {\n if (Container.has(name) && logExtendedInjectables) {\n console.log(\n `Warn: Injection Token '${name.name ||\n name}' is extended after it has being declared! ${JSON.stringify(\n Container.get(name)\n )}`\n );\n }\n};\n","import { of, combineLatest, from, Observable } from 'rxjs';\nimport { Container } from '../../container';\nimport { BootstrapLogger } from '../bootstrap-logger/bootstrap-logger';\nimport { CacheService } from '../cache/cache-layer.service';\nimport { InternalLayers, InternalEvents } from '../../helpers/events';\nimport { LazyFactory } from '../lazy-factory/lazy-factory.service';\nimport { ConfigService } from '../config/config.service';\nimport { PluginService } from '../plugin/plugin.service';\nimport { ConfigModel } from '../config/config.model';\nimport { take, map, switchMap, shareReplay } from 'rxjs/operators';\nimport { CacheLayer, CacheLayerItem } from '../cache/index';\nimport { EffectsService } from '../effect/effect.service';\nimport { ControllersService } from '../controllers/controllers.service';\nimport { ComponentsService } from '../components/components.service';\nimport { BootstrapsServices } from '../bootstraps/bootstraps.service';\nimport { ServicesService } from '../services/services.service';\nimport { AfterStarterService } from '../after-starter/after-starter.service';\nimport {\n ServiceArgumentsInternal,\n SystemIngridientsType\n} from '../../decorators/module/module.interfaces';\nimport { logExtendedInjectables } from '../../helpers/log';\nimport { Service } from '../../decorators/service/Service';\nimport { PluginInterface } from '../../decorators';\n\n@Service()\nexport class BootstrapService {\n private globalConfig: CacheLayer>;\n\n constructor(\n private logger: BootstrapLogger,\n private cacheService: CacheService,\n private lazyFactoriesService: LazyFactory,\n public configService: ConfigService,\n private controllersService: ControllersService,\n private effectsService: EffectsService,\n private pluginService: PluginService,\n private componentsService: ComponentsService,\n private bootstrapsService: BootstrapsServices,\n private servicesService: ServicesService,\n private afterStarterService: AfterStarterService\n ) {\n this.globalConfig = this.cacheService.createLayer({\n name: InternalLayers.globalConfig\n });\n }\n\n public start(app, config?: ConfigModel) {\n this.configService.setConfig(config);\n this.globalConfig.putItem({ key: InternalEvents.config, data: config });\n Container.get(app);\n const lazyFactoryKeys = Array.from(\n this.lazyFactoriesService.lazyFactories.keys()\n );\n return of(lazyFactoryKeys).pipe(\n map(factories => this.prepareAsyncChainables(factories)),\n switchMap(res =>\n combineLatest(res).pipe(\n take(1),\n map(c => this.attachLazyLoadedChainables(lazyFactoryKeys, c)),\n map(() => this.validateSystem()),\n switchMap(() => combineLatest(this.asyncChainableControllers())),\n switchMap(() =>\n combineLatest(this.asyncChainablePluginsBeforeRegister())\n ),\n switchMap(() => combineLatest(this.asyncChainablePluginsRegister())),\n switchMap(() =>\n combineLatest(this.asyncChainablePluginsAfterRegister())\n ),\n switchMap(() => combineLatest(this.asyncChainableServices())),\n switchMap(() => combineLatest(this.asyncChainableEffects())),\n switchMap(() => combineLatest(this.asyncChainableComponents())),\n map(() => this.loadApplication()),\n switchMap(() => combineLatest(this.asyncChainableBootstraps())),\n map(() => this.final())\n )\n )\n );\n }\n\n private final(): Container {\n this.afterStarterService.appStarted.next(true);\n if (!this.configService.config.init) {\n this.logger.log('Bootstrap -> press start!');\n }\n return Container;\n }\n\n private asyncChainableComponents() {\n return [\n of(true),\n ...this.componentsService\n .getComponents()\n .filter(c => this.genericFilter(c, 'components'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableBootstraps() {\n return [\n of(true),\n ...this.bootstrapsService\n .getBootstraps()\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableEffects() {\n return [\n of(true),\n ...this.effectsService\n .getEffects()\n .filter(c => this.genericFilter(c, 'effects'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableServices() {\n return [\n of(true),\n ...this.servicesService\n .getServices()\n .filter(c => this.genericFilter(c, 'services'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableControllers() {\n return [\n of(true),\n ...this.controllersService\n .getControllers()\n .filter(c => this.genericFilter(c, 'controllers'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainablePluginsRegister() {\n return [\n of(true),\n ...this.pluginService\n .getPlugins()\n .filter(c => this.genericFilter(c, 'plugins'))\n .map(async c => await this.registerPlugin(c))\n ];\n }\n\n private asyncChainablePluginsAfterRegister() {\n return [\n of(true),\n ...this.pluginService\n .getAfterPlugins()\n .filter(c => this.genericFilter(c, 'pluginsAfter'))\n .map(async c => await this.registerPlugin(c))\n ];\n }\n\n private asyncChainablePluginsBeforeRegister() {\n return [\n of(true),\n ...this.pluginService\n .getBeforePlugins()\n .filter(c => this.genericFilter(c, 'pluginsBefore'))\n .map(async c => await this.registerPlugin(c))\n ];\n }\n\n private genericFilter(\n c: ServiceArgumentsInternal,\n name: SystemIngridientsType\n ) {\n return (\n this.configService.config.initOptions[name] ||\n (c.metadata.options && c.metadata.options['init']) ||\n this.configService.config.init\n );\n }\n\n private async registerPlugin(pluggable: ServiceArgumentsInternal) {\n const plugin = Container.get(pluggable);\n await plugin.register();\n return plugin;\n }\n\n private prepareAsyncChainables(injectables: any[]) {\n const asynChainables = [of(true)];\n const injectableLog: {\n [key: string]: { started: number; end: number };\n } = {} as any;\n const getName = n => n.name || n;\n injectables.map(i => {\n const date = Date.now();\n injectableLog[getName(i)] = {\n started: date,\n end: null\n };\n this.logger.log(`Bootstrap -> @Service('${getName(i)}'): loading...`);\n const somethingAsync = from( | Observable>(\n this.lazyFactoriesService.getLazyFactory(i)\n )).pipe(shareReplay(1));\n asynChainables.push(somethingAsync);\n somethingAsync.subscribe(() => {\n this.logger.log(\n `Bootstrap -> @Service('${getName(\n i\n )}'): loading finished after ${Date.now() -\n injectableLog[getName(i)].started}ms !`\n );\n delete injectableLog[getName(i)];\n });\n });\n return asynChainables;\n }\n\n private validateSystem() {\n if (this.configService.config.strict) {\n this.cacheService.searchForDuplicateDependenciesInsideApp();\n }\n }\n\n private attachLazyLoadedChainables(res, chainables) {\n // Remove first chainable unused observable\n chainables.splice(0, 1);\n let count = 0;\n res.map(name => {\n logExtendedInjectables(\n name,\n this.configService.config.experimental.logExtendedInjectables\n );\n Container.set(name, chainables[count++]);\n });\n return true;\n }\n\n loadApplication() {\n Array.from(\n this.cacheService.getLayer(InternalLayers.modules).map.keys()\n ).forEach(m =>\n this.cacheService.getLayer(m).putItem({\n key: InternalEvents.load,\n data: this.configService.config.init\n })\n );\n return true;\n }\n}\n","import { ExitHandlerService } from '../services/exit-handler/exit-handler.service';\nimport { Container } from '../container';\n\nexport const exitHandlerInit = () => {\n const handler = Container.get(ExitHandlerService);\n handler.init();\n\n // do something when app is closing\n process.on('exit', handler.exitHandler.bind(handler, { cleanup: true }));\n // catches ctrl+c event\n process.on('SIGINT', handler.exitHandler.bind(handler, { exit: true }));\n // catches 'kill pid' (for example: nodemon restart)\n process.on('SIGUSR1', handler.exitHandler.bind(handler, { exit: true }));\n process.on('SIGUSR2', handler.exitHandler.bind(handler, { exit: true }));\n // catches uncaught exceptions\n process.on(\n 'uncaughtException',\n handler.exitHandler.bind(handler, { exit: true })\n );\n};\n","import 'reflect-metadata';\n\nimport { Container } from '../container';\nimport { BootstrapService } from '../services/bootstrap/bootstrap.service';\nimport { ConfigModel } from '../services/config/config.model';\nimport { exitHandlerInit } from './exit-handler';\nimport { Observable } from 'rxjs';\nimport { ModuleArguments } from '../decorators/module/module.interfaces';\n\nexitHandlerInit();\n\nconst bootstrapService = Container.get(BootstrapService);\n\nexport const Bootstrap = (app, config?: ConfigModel): Observable =>\n bootstrapService.start(app, config);\nexport const BootstrapPromisify = (\n app,\n config?: ConfigModel\n): Promise => bootstrapService.start(app, config).toPromise();\nexport const BootstrapFramework = (\n app,\n modules: any[],\n config?: ConfigModel\n): Observable => {\n bootstrapService.configService.setConfig(config);\n modules.map(m => Container.get(m));\n return bootstrapService.start(app, config);\n};\n\nexport const setup = (\n options: ModuleArguments,\n frameworks: any[] = [],\n bootstrapOptions?: ConfigModel\n) => {\n const Module = require('../decorators/module/module.decorator').Module;\n\n return BootstrapFramework(\n Module({\n imports: options.imports || [],\n providers: options.providers || [],\n services: options.services || [],\n bootstrap: options.bootstrap || [],\n components: options.components || [],\n controllers: options.controllers || [],\n effects: options.effects || [],\n plugins: options.plugins || [],\n afterPlugins: options.afterPlugins || [],\n beforePlugins: options.beforePlugins || []\n })(function() {}),\n frameworks,\n bootstrapOptions\n );\n};\n\nexport const createTestBed = setup;\n","export * from './bootstrap';\nexport * from './create-unique-hash';\nexport * from './generic-constructor';\nexport * from './sha256';\n// export * from './testing';","import { Service } from '../../decorators/service/Service';\nimport { createUniqueHash } from '../../helpers';\n\n@Service()\nexport class MetadataService {\n generateHashData(module, original) {\n const services = module.services || [];\n const imports = module.imports || [];\n const fillMetadata = injectable => {\n if (injectable && injectable['provide']) {\n return injectable['provide'];\n } else if (injectable) {\n this.validateCustomInjectable(injectable, module, original);\n return {\n moduleName: injectable['metadata']['moduleName'],\n hash: injectable['metadata']['moduleHash']\n };\n }\n };\n return [\n [...services.map(i => fillMetadata(i))],\n [...imports.map(i => fillMetadata(i))]\n ];\n }\n\n validateCustomInjectableKeys(\n keys: Array<\n 'useFactory' | 'provide' | 'useValue' | 'useClass' | 'useDynamic' | string\n >\n ) {\n // keys.forEach(key => {\n // console.log('TOVA NE E SHEGA', key);\n // });\n }\n\n validateCustomInjectable(injectable, module, original) {\n if (!injectable['metadata'] && !injectable['provide']) {\n throw new Error(`\n ---- Wrong service ${JSON.stringify(\n injectable\n )} provided inside '${original.name}' ----\n @Module({\n services: ${JSON.stringify([\n ...module.services.filter(i => !i['metadata']),\n ...module.services\n .filter(\n i => i && i['metadata'] && i['metadata']['moduleName']\n )\n .map(i => i['metadata']['moduleName'])\n ])}\n })\n ${JSON.stringify(`${original}`, null, 2)}\n\n Hint: System recieved Object but it is not with appropriate format you must provide object with following parameters:\n\n YourObject: ${JSON.stringify(injectable)}\n\n Option 1. [YourClass]\n\n Option 2. [{provide: 'your-value', useClass: YourClass}]\n\n Option 3. [{provide: 'your-value', deps: [YourClass], useFactory: (test: YourClass) => {}}]\n\n Option 4. [{provide: 'your-value', useDynamic: {}}]\n\n Option 5. [{provide: 'your-value', useValue: 'your-value'}]\n `);\n }\n }\n\n parseModuleTemplate(moduleName, generatedHashData, targetCurrentSymbol) {\n return `\n ---- @gapi module '${moduleName}' metadata----\n @Module({\n imports: ${JSON.stringify(generatedHashData[1], null, '\\t')},\n services: ${JSON.stringify(generatedHashData[0], null, '\\t')}\n })\n ${JSON.stringify(targetCurrentSymbol, null, 2)}\n `;\n }\n\n createUniqueHash(string: string) {\n return createUniqueHash(string);\n }\n}\n","export * from './metadata.service';","export * from './compression.service';","export * from './effect.service';","export * from './controllers.service';","export * from './components.service';","export * from './bootstraps.service';","export * from './services.service';","import { PluginService } from '../plugin/plugin.service';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\nimport { Service } from '../../decorators/service/Service';\n\n@Service()\nexport class PluginManager {\n constructor(private pluginService: PluginService) {}\n\n listPlugins(): Array {\n return this.pluginService.getPlugins();\n }\n\n getPlugin(pluginClass: Function): ServiceArgumentsInternal {\n return this.pluginService\n .getPlugins()\n .filter(p => p.name === pluginClass.name)[0];\n }\n}\n","export * from './cache/index';\nexport * from './plugin/plugin.service';\nexport * from './bootstrap-logger/index';\nexport * from './exit-handler/index';\nexport * from './external-importer/index';\nexport * from './module/index';\nexport * from './resolver/index';\nexport * from './config/index';\nexport * from './metadata/index';\nexport * from './compression/index';\nexport * from './file/index';\nexport * from './constructor-watcher/index';\nexport * from './effect/index';\nexport * from './controllers/index';\nexport * from './components/index';\nexport * from './bootstraps/index';\nexport * from './services/index';\nexport * from './plugin-manager/plugin-manager';\nexport * from './after-starter/after-starter.service';","import { Container } from '../container';\nimport {\n ModuleService,\n BootstrapLogger,\n CacheLayer,\n CacheLayerItem\n} from '../services';\n\nconst moduleService = Container.get(ModuleService);\nconst bootstrapLogger = Container.get(BootstrapLogger);\n\nexport function GenericConstruct(\n module: any,\n original,\n currentModule: CacheLayer>\n) {\n return function construct(constructor, args) {\n if (!module) {\n return new constructor();\n }\n\n if (module.imports) {\n moduleService.setImports(module.imports, original);\n }\n\n if (module.services) {\n moduleService.setServices(module.services, original, currentModule);\n }\n\n if (module.providers) {\n moduleService.setServices(module.providers, original, currentModule);\n }\n\n if (module.controllers) {\n moduleService.setControllers(module.controllers, original, currentModule);\n }\n\n if (module.effects) {\n moduleService.setEffects(module.effects, original, currentModule);\n }\n\n if (module.components) {\n moduleService.setComponents(module.components, original, currentModule);\n }\n\n if (module.beforePlugins) {\n moduleService.setBeforePlugins(\n module.beforePlugins,\n original,\n currentModule\n );\n }\n\n if (module.plugins) {\n moduleService.setPlugins(module.plugins, original, currentModule);\n }\n\n if (module.afterPlugins) {\n moduleService.setAfterPlugins(\n module.afterPlugins,\n original,\n currentModule\n );\n }\n\n if (module.bootstrap) {\n moduleService.setBootstraps(module.bootstrap, original, currentModule);\n }\n\n bootstrapLogger.log(\n `Bootstrap -> @Module('${\n constructor.originalName\n }')${bootstrapLogger.logHashes(`(${constructor.name})`)}: finished!`\n );\n\n return Container.get(constructor);\n };\n}\n","import { Container, ServiceMetadata } from '../../container';\nimport { CacheService } from '../../services/cache/cache-layer.service';\nimport { GenericConstruct } from '../../helpers/generic-constructor';\nimport { BootstrapLogger } from '../../services/bootstrap-logger/bootstrap-logger';\nimport { ResolverService } from '../../services/resolver/resolver.service';\nimport { ModuleArguments, ModuleWithServices, ServiceArgumentsInternal } from '../module/module.interfaces';\nimport { MetadataService } from '../../services/metadata/metadata.service';\nimport { ModuleService } from '../../services/module/module.service';\n\nconst bootstrapLogger = Container.get(BootstrapLogger);\nconst resolverService = Container.get(ResolverService);\nconst cacheService = Container.get(CacheService);\nconst metadataService = Container.get(MetadataService);\nconst moduleService = Container.get(ModuleService);\n\nexport function Module(module?: ModuleArguments): Function {\n return (target: any) => {\n module = module || {};\n const original: ServiceArgumentsInternal = Object.assign(target);\n const moduleName = target.name || target.constructor.name;\n const generatedHashData = metadataService.generateHashData(module, original);\n const uniqueModuleTemplate = metadataService.parseModuleTemplate(moduleName, generatedHashData, `${target}`);\n const uniqueHashForClass = metadataService.createUniqueHash(uniqueModuleTemplate);\n\n // console.log(`--------- ${moduleName} --------- Hash: ${uniqueHashForClass}---------`);\n // console.log(uniqueModuleTemplate);\n\n Object.defineProperty(original, 'originalName', { value: original.name || original.constructor.name, writable: false });\n Object.defineProperty(original, 'name', { value: uniqueHashForClass, writable: true });\n\n const currentModuleLayer = cacheService.createLayer({ name: uniqueHashForClass });\n\n original.metadata = {\n moduleName: original.originalName,\n moduleHash: uniqueHashForClass,\n options: null,\n type: 'module',\n raw: uniqueModuleTemplate\n };\n\n const constructorFunction: any = function (...args: any[]) {\n bootstrapLogger.log(`Bootstrap -> @Module('${original.originalName}')${bootstrapLogger.logHashes(`(${original.name})`)}: loading...`);\n return GenericConstruct(module, original, currentModuleLayer)(original, args);\n };\n\n Object.assign(constructorFunction, original);\n\n resolverService.resolveDependencies(uniqueHashForClass, original, moduleName)\n .subscribe(\n () => bootstrapLogger.log(`Start -> @Module('${original.originalName}')${bootstrapLogger.logHashes(`(${original.name})`)}: loaded!`)\n );\n\n Object.getOwnPropertyNames(original)\n .filter(prop => typeof original[prop] === 'function')\n .map(descriptor => Object.defineProperty(constructorFunction, descriptor, {\n configurable: true,\n writable: true,\n value: original[descriptor]\n }));\n if (original.forRoot) {\n const originalForRoot = constructorFunction.forRoot;\n constructorFunction.forRoot = function (...args: any) {\n const result: ModuleWithServices = originalForRoot(...args);\n\n if (!result) {\n throw new Error(`forRoot configuration inside ${constructorFunction.name} is returning undefined or null`);\n }\n\n if (result.frameworkImports) {\n moduleService.setImports(result.frameworkImports as any, original);\n }\n\n if (result.services) {\n moduleService.setServices(result.services as any, original, currentModuleLayer);\n }\n\n if (result.providers) {\n moduleService.setServices(result.providers as any, original, currentModuleLayer);\n }\n\n if (result.components) {\n moduleService.setComponents(result.components as any, original, currentModuleLayer);\n }\n\n if (result.effects) {\n moduleService.setEffects(result.effects as any, original, currentModuleLayer);\n }\n\n if (result.controllers) {\n moduleService.setControllers(result.controllers as any, original, currentModuleLayer);\n }\n\n if (result.beforePlugins) {\n moduleService.setBeforePlugins(result.beforePlugins as any, original, currentModuleLayer);\n }\n\n if (result.plugins) {\n moduleService.setPlugins(result.plugins as any, original, currentModuleLayer);\n }\n\n if (result.afterPlugins) {\n moduleService.setAfterPlugins(result.afterPlugins as any, original, currentModuleLayer);\n }\n\n /** @angular compatability */\n if (result.ngModule) {\n return result.ngModule;\n }\n\n return result.module ? result.module : result;\n };\n }\n\n const service: ServiceMetadata = {\n type: constructorFunction\n };\n\n Container.set(service);\n return constructorFunction;\n };\n}\n\n/** @angular module compatability */\nexport const NgModule = Module;","export * from './module.decorator';\nexport * from './module.interfaces';","export * from './injector.decorator';","import { Container } from '../../container';\nimport { ModuleService } from '../../services/module/module.service';\n\nexport function InjectSoft(Service: Function): T {\n return Container.get(ModuleService).watcherService.getByClass(Service);\n}","export * from './inject-soft.decorator';","/**\n * Thrown when DI cannot inject value into property decorated by @Inject decorator.\n */\nexport class CannotInjectError extends Error {\n name = 'ServiceNotFoundError';\n\n constructor(target: Object, propertyName: string) {\n super(\n `Cannot inject value into '${\n target.constructor.name\n }.${propertyName}'. ` +\n `Please make sure you setup reflect-metadata properly and you don't use interfaces without service tokens as injection value.`\n );\n Object.setPrototypeOf(this, CannotInjectError.prototype);\n }\n}\n","import { Token } from '../container/Token';\nimport { CannotInjectError } from '../container/error/CannotInjectError';\nimport { TypeOrName } from '../container/types/type-or-name';\n\nexport const getIdentifier = (\n typeOrName: TypeOrName,\n target: Object,\n propertyName: string\n) => {\n let identifier: any;\n if (typeof typeOrName === 'string') {\n identifier = typeOrName;\n } else if (typeOrName instanceof Token) {\n identifier = typeOrName;\n } else {\n identifier = typeOrName();\n }\n if (identifier === Object) {\n throw new CannotInjectError(target, propertyName);\n }\n return identifier;\n};\n\nexport const isClient = () => typeof window !== 'undefined' && typeof window.document !== 'undefined';\n","import { Container } from '../../container/Container';\nimport { Token } from '../../container/Token';\nimport { getIdentifier, isClient } from '../../helpers/get-identifier';\nimport { TypeOrName } from '../../container/types/type-or-name';\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(type?: (type?: any) => Function): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(serviceName?: string): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(token: Token): Function;\n\nexport function Inject(fn: Function): Function;\n\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(typeOrName?: TypeOrName): Function {\n return function (target: Object, propertyName: string, index?: number) {\n if (isClient() && typeOrName && typeof typeOrName === 'function') {\n Object.defineProperty(target, propertyName, {\n get: () => Container.get(typeOrName as Function)\n });\n return;\n }\n if (!typeOrName)\n typeOrName = () => (Reflect as any).getMetadata('design:type', target, propertyName);\n\n Container.registerHandler({\n object: target,\n propertyName: propertyName,\n index: index,\n value: instance => instance.get(getIdentifier(typeOrName, target, propertyName))\n });\n };\n}\n","import { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport function Controller(options?: T | { init?: boolean }): Function {\n return ReflectDecorator(options, { type: 'controller' });\n}\n","export * from './controller.decorator';","import { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport function Effect(options?: {init?: boolean}): Function {\n return ReflectDecorator(options, { type: 'effect' });\n}","export * from './effect.decorator';","import { ReflectDecorator } from '../../helpers/reflect.decorator';\nexport interface PluginInterface {\n name?: string;\n version?: string;\n register(server?, options?): void;\n handler?(request, h);\n}\nexport function Plugin(options?: any): Function {\n return ReflectDecorator(options, { type: 'plugin' });\n}","import { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport function Component(options?: {\n init?: boolean;\n}): Function {\n return ReflectDecorator(options, { type: 'component' });\n}\n","export * from './component.decorator';","import { Container } from '../../container/Container';\nimport { Token } from '../../container/Token';\nimport { getIdentifier, isClient } from '../../helpers/get-identifier';\nimport { TypeOrName } from '../../container/types/type-or-name';\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(type?: (type?: any) => Function): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(serviceName?: string): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(token: Token): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(\n typeOrName?: TypeOrName\n): Function {\n return function(target: Object, propertyName: string, index?: number) {\n if (isClient() && typeOrName instanceof Token) {\n Object.defineProperty(target, propertyName, {\n get: () =>\n Container.getMany(getIdentifier(typeOrName, target, propertyName))\n });\n return;\n }\n if (!typeOrName) {\n typeOrName = () =>\n (Reflect as any).getMetadata('design:type', target, propertyName);\n }\n Container.registerHandler({\n object: target,\n propertyName: propertyName,\n index: index,\n value: instance =>\n instance.getMany(getIdentifier(typeOrName, target, propertyName))\n });\n };\n}\n","export * from './module/index';\nexport * from './injector/index';\nexport * from './inject-soft/index';\nexport * from './inject/Inject';\nexport * from './controller/index';\nexport * from './effect/index';\nexport * from './plugin/Plugin';\nexport * from './service/Service';\nexport * from './component/index';\nexport * from './inject-many/InjectMany';\nexport { Service as Injectable } from './service/Service';\n","import 'reflect-metadata';\n\nexport * from './container/index';\nexport * from './decorators/index';\nexport * from './helpers/index';\nexport * from './services/index';\n"]} \ No newline at end of file +{"version":3,"sources":["helpers/sha256.ts","helpers/create-unique-hash.ts","container/error/MissingProvidedServiceTypeError.ts","container/Token.ts","container/error/ServiceNotFoundError.ts","services/constructor-watcher/constructor-watcher.ts","services/constructor-watcher/index.ts","container/ContainerInstance.ts","container/Container.ts","helpers/reflect.decorator.ts","decorators/service/Service.ts","container/types/hooks/index.ts","container/index.ts","../node_modules/tslib/tslib.es6.js","../../../src/internal/util/isFunction.ts","../../src/internal/config.ts","../../../src/internal/util/hostReportError.ts","../../src/internal/Observer.ts","../../../src/internal/util/isArray.ts","../../../src/internal/util/isObject.ts","../../../src/internal/util/UnsubscriptionError.ts","../../src/internal/Subscription.ts","../../../src/internal/symbol/rxSubscriber.ts","../../src/internal/Subscriber.ts","../../../src/internal/util/canReportError.ts","../../../src/internal/util/toSubscriber.ts","../../../src/internal/symbol/observable.ts","../../../src/internal/util/noop.ts","../../../src/internal/util/pipe.ts","../../src/internal/Observable.ts","../../../src/internal/util/ObjectUnsubscribedError.ts","../../src/internal/SubjectSubscription.ts","../../src/internal/Subject.ts","../../../src/internal/operators/refCount.ts","../../../src/internal/observable/ConnectableObservable.ts","../../../src/internal/operators/groupBy.ts","../../src/internal/BehaviorSubject.ts","../../../src/internal/scheduler/Action.ts","../../../src/internal/scheduler/AsyncAction.ts","../../../src/internal/scheduler/QueueAction.ts","../../src/internal/Scheduler.ts","../../../src/internal/scheduler/AsyncScheduler.ts","../../../src/internal/scheduler/QueueScheduler.ts","../../../src/internal/scheduler/queue.ts","../../../src/internal/observable/empty.ts","../../../src/internal/util/isScheduler.ts","../../../src/internal/util/subscribeToArray.ts","../../../src/internal/scheduled/scheduleArray.ts","../../../src/internal/observable/fromArray.ts","../../../src/internal/observable/of.ts","../../../src/internal/observable/throwError.ts","../../src/internal/Notification.ts","../../../src/internal/operators/observeOn.ts","../../src/internal/ReplaySubject.ts","../../src/internal/AsyncSubject.ts","../../../src/internal/util/Immediate.ts","../../../src/internal/scheduler/AsapAction.ts","../../../src/internal/scheduler/AsapScheduler.ts","../../../src/internal/scheduler/asap.ts","../../../src/internal/scheduler/async.ts","../../../src/internal/scheduler/AnimationFrameAction.ts","../../../src/internal/scheduler/AnimationFrameScheduler.ts","../../../src/internal/scheduler/animationFrame.ts","../../../src/internal/scheduler/VirtualTimeScheduler.ts","../../../src/internal/util/identity.ts","../../../src/internal/util/isObservable.ts","../../../src/internal/util/ArgumentOutOfRangeError.ts","../../../src/internal/util/EmptyError.ts","../../../src/internal/util/TimeoutError.ts","../../../src/internal/operators/map.ts","../../../src/internal/observable/bindCallback.ts","../../../src/internal/observable/bindNodeCallback.ts","../../src/internal/OuterSubscriber.ts","../../src/internal/InnerSubscriber.ts","../../../src/internal/util/subscribeToPromise.ts","../../../src/internal/symbol/iterator.ts","../../../src/internal/util/subscribeToIterable.ts","../../../src/internal/util/subscribeToObservable.ts","../../../src/internal/util/isArrayLike.ts","../../../src/internal/util/isPromise.ts","../../../src/internal/util/subscribeTo.ts","../../../src/internal/util/subscribeToResult.ts","../../../src/internal/observable/combineLatest.ts","../../../src/internal/scheduled/scheduleObservable.ts","../../../src/internal/scheduled/schedulePromise.ts","../../../src/internal/scheduled/scheduleIterable.ts","../../../src/internal/util/isInteropObservable.ts","../../../src/internal/util/isIterable.ts","../../../src/internal/scheduled/scheduled.ts","../../../src/internal/observable/from.ts","../../../src/internal/operators/mergeMap.ts","../../../src/internal/operators/mergeAll.ts","../../../src/internal/operators/concatAll.ts","../../../src/internal/observable/concat.ts","../../../src/internal/observable/defer.ts","../../../src/internal/observable/forkJoin.ts","../../../src/internal/observable/fromEvent.ts","../../../src/internal/observable/fromEventPattern.ts","../../../src/internal/observable/generate.ts","../../../src/internal/observable/iif.ts","../../../src/internal/util/isNumeric.ts","../../../src/internal/observable/interval.ts","../../../src/internal/observable/merge.ts","../../../src/internal/observable/never.ts","../../../src/internal/observable/onErrorResumeNext.ts","../../../src/internal/observable/pairs.ts","../../../src/internal/util/not.ts","../../../src/internal/operators/filter.ts","../../../src/internal/observable/partition.ts","../../../src/internal/observable/race.ts","../../../src/internal/observable/range.ts","../../../src/internal/observable/timer.ts","../../../src/internal/observable/using.ts","../../../src/internal/observable/zip.ts","../src/index.ts","../../../src/internal/operators/audit.ts","../../../src/internal/operators/auditTime.ts","../../../src/internal/operators/buffer.ts","../../../src/internal/operators/bufferCount.ts","../../../src/internal/operators/bufferTime.ts","../../../src/internal/operators/bufferToggle.ts","../../../src/internal/operators/bufferWhen.ts","../../../src/internal/operators/catchError.ts","../../../src/internal/operators/combineAll.ts","../../../src/internal/operators/combineLatest.ts","../../../src/internal/operators/concat.ts","../../../src/internal/operators/concatMap.ts","../../../src/internal/operators/concatMapTo.ts","../../../src/internal/operators/count.ts","../../../src/internal/operators/debounce.ts","../../../src/internal/operators/debounceTime.ts","../../../src/internal/operators/defaultIfEmpty.ts","../../../src/internal/util/isDate.ts","../../../src/internal/operators/delay.ts","../../../src/internal/operators/delayWhen.ts","../../../src/internal/operators/dematerialize.ts","../../../src/internal/operators/distinct.ts","../../../src/internal/operators/distinctUntilChanged.ts","../../../src/internal/operators/distinctUntilKeyChanged.ts","../../../src/internal/operators/throwIfEmpty.ts","../../../src/internal/operators/take.ts","../../../src/internal/operators/elementAt.ts","../../../src/internal/operators/endWith.ts","../../../src/internal/operators/every.ts","../../../src/internal/operators/exhaust.ts","../../../src/internal/operators/exhaustMap.ts","../../../src/internal/operators/expand.ts","../../../src/internal/operators/finalize.ts","../../../src/internal/operators/find.ts","../../../src/internal/operators/findIndex.ts","../../../src/internal/operators/first.ts","../../../src/internal/operators/ignoreElements.ts","../../../src/internal/operators/isEmpty.ts","../../../src/internal/operators/takeLast.ts","../../../src/internal/operators/last.ts","../../../src/internal/operators/mapTo.ts","../../../src/internal/operators/materialize.ts","../../../src/internal/operators/scan.ts","../../../src/internal/operators/reduce.ts","../../../src/internal/operators/max.ts","../../../src/internal/operators/merge.ts","../../../src/internal/operators/mergeMapTo.ts","../../../src/internal/operators/mergeScan.ts","../../../src/internal/operators/min.ts","../../../src/internal/operators/multicast.ts","../../../src/internal/operators/onErrorResumeNext.ts","../../../src/internal/operators/pairwise.ts","../../../src/internal/operators/partition.ts","../../../src/internal/operators/pluck.ts","../../../src/internal/operators/publish.ts","../../../src/internal/operators/publishBehavior.ts","../../../src/internal/operators/publishLast.ts","../../../src/internal/operators/publishReplay.ts","../../../src/internal/operators/race.ts","../../../src/internal/operators/repeat.ts","../../../src/internal/operators/repeatWhen.ts","../../../src/internal/operators/retry.ts","../../../src/internal/operators/retryWhen.ts","../../../src/internal/operators/sample.ts","../../../src/internal/operators/sampleTime.ts","../../../src/internal/operators/sequenceEqual.ts","../../../src/internal/operators/share.ts","../../../src/internal/operators/shareReplay.ts","../../../src/internal/operators/single.ts","../../../src/internal/operators/skip.ts","../../../src/internal/operators/skipLast.ts","../../../src/internal/operators/skipUntil.ts","../../../src/internal/operators/skipWhile.ts","../../../src/internal/operators/startWith.ts","../../../src/internal/observable/SubscribeOnObservable.ts","../../../src/internal/operators/subscribeOn.ts","../../../src/internal/operators/switchMap.ts","../../../src/internal/operators/switchAll.ts","../../../src/internal/operators/switchMapTo.ts","../../../src/internal/operators/takeUntil.ts","../../../src/internal/operators/takeWhile.ts","../../../src/internal/operators/tap.ts","../../../src/internal/operators/throttle.ts","../../../src/internal/operators/throttleTime.ts","../../../src/internal/operators/timeInterval.ts","../../../src/internal/operators/timeoutWith.ts","../../../src/internal/operators/timeout.ts","../../../src/internal/operators/timestamp.ts","../../../src/internal/operators/toArray.ts","../../../src/internal/operators/window.ts","../../../src/internal/operators/windowCount.ts","../../../src/internal/operators/windowTime.ts","../../../src/internal/operators/windowToggle.ts","../../../src/internal/operators/windowWhen.ts","../../../src/internal/operators/withLatestFrom.ts","../../../src/internal/operators/zip.ts","../../../src/internal/operators/zipAll.ts","../../src/operators/index.ts","services/cache/cache-layer.ts","helpers/events.ts","services/config/config.model.ts","services/config/config.service.ts","services/config/index.ts","decorators/injector/injector.decorator.ts","services/bootstrap-logger/bootstrap-logger.ts","services/bootstrap-logger/index.ts","services/cache/cache-layer.service.ts","services/cache/cache-layer.interfaces.ts","services/cache/index.ts","services/plugin/plugin.service.ts","../../../../../../../.nvm/versions/node/v10.16.0/lib/node_modules/parcel/node_modules/process/browser.js","services/exit-handler/exit-handler.service.ts","services/exit-handler/index.ts","services/lazy-factory/lazy-factory.service.ts","services/module/helpers/validators.ts","services/controllers/controllers.service.ts","services/effect/effect.service.ts","services/components/components.service.ts","services/bootstraps/bootstraps.service.ts","services/services/services.service.ts","services/module/module.service.ts","services/module/index.ts","services/resolver/resolver.service.ts","services/resolver/index.ts","services/after-starter/after-starter.service.ts","helpers/log.ts","services/bootstrap/bootstrap.service.ts","helpers/exit-handler.ts","helpers/bootstrap.ts","helpers/index.ts","services/metadata/metadata.service.ts","services/metadata/index.ts","services/compression/compression.service.ts","services/compression/index.ts","../../../../../../../.nvm/versions/node/v10.16.0/lib/node_modules/parcel/node_modules/path-browserify/index.js","services/file/dist.ts","services/file/file.service.ts","services/file/index.ts","services/effect/index.ts","services/controllers/index.ts","services/components/index.ts","services/bootstraps/index.ts","services/services/index.ts","services/plugin-manager/plugin-manager.ts","services/index.ts","helpers/generic-constructor.ts","decorators/module/module.decorator.ts","decorators/module/index.ts","decorators/injector/index.ts","decorators/inject-soft/inject-soft.decorator.ts","decorators/inject-soft/index.ts","container/error/CannotInjectError.ts","helpers/get-identifier.ts","decorators/inject/Inject.ts","decorators/controller/controller.decorator.ts","decorators/controller/index.ts","decorators/effect/effect.decorator.ts","decorators/effect/index.ts","decorators/plugin/Plugin.ts","decorators/component/component.decorator.ts","decorators/component/index.ts","decorators/inject-many/InjectMany.ts","decorators/index.ts","index.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","_","f","y","g","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__exportStar","m","exports","__values","o","__read","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","cachedSetTimeout","cachedClearTimeout","process","module","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","Item","array","noop","nextTick","args","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask"],"mappings":"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","file":"index.js","sourceRoot":"../src","sourcesContent":["\nexport class Sha256 {\n\n /**\n * Generates SHA-256 hash of string.\n *\n * @param {string} msg - (Unicode) string to be hashed.\n * @param {Object} [options]\n * @param {string} [options.msgFormat=string] - Message format: 'string' for JavaScript string\n * (gets converted to UTF-8 for hashing); 'hex-bytes' for string of hex bytes ('616263' ≡ 'abc') .\n * @param {string} [options.outFormat=hex] - Output format: 'hex' for string of contiguous\n * hex bytes; 'hex-w' for grouping hex bytes into groups of (4 byte / 8 character) words.\n * @returns {string} Hash of msg as hex character string.\n */\n hash(msg, options?) {\n const defaults = { msgFormat: 'string', outFormat: 'hex' };\n const opt = Object.assign(defaults, options);\n\n // note use throughout this routine of 'n >>> 0' to coerce Number 'n' to unsigned 32-bit integer\n msg = utf8Encode(msg);\n switch (opt.msgFormat) {\n default: // default is to convert string to UTF-8, as SHA only deals with byte-streams\n case 'string': msg = utf8Encode(msg); break;\n case 'hex-bytes': msg = hexBytesToString(msg); break; // mostly for running tests\n }\n\n // constants [§4.2.2]\n const K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n // initial hash value [§5.3.3]\n const H = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n\n // PREPROCESSING [§6.2.1]\n\n msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]\n\n // convert string msg into 512-bit blocks (array of 16 32-bit integers) [§5.2.1]\n const l = msg.length / 4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length\n const N = Math.ceil(l / 16); // number of 16-integer (512-bit) blocks required to hold 'l' ints\n const M = new Array(N); // message M is N×16 array of 32-bit integers\n\n for (let i = 0; i < N; i++) {\n M[i] = new Array(16);\n for (let j = 0; j < 16; j++) { // encode 4 chars per integer (64 per block), big-endian encoding\n M[i][j] = (msg.charCodeAt(i * 64 + j * 4 + 0) << 24) | (msg.charCodeAt(i * 64 + j * 4 + 1) << 16)\n | (msg.charCodeAt(i * 64 + j * 4 + 2) << 8) | (msg.charCodeAt(i * 64 + j * 4 + 3) << 0);\n } // note running off the end of msg is ok 'cos bitwise ops on NaN return 0\n }\n // add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]\n // note: most significant word would be (len-1)*8 >>> 32, but since JS converts\n // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators\n const lenHi = ((msg.length - 1) * 8) / Math.pow(2, 32);\n const lenLo = ((msg.length - 1) * 8) >>> 0;\n M[N - 1][14] = Math.floor(lenHi);\n M[N - 1][15] = lenLo;\n\n\n // HASH COMPUTATION [§6.2.2]\n\n for (let i = 0; i < N; i++) {\n const W = new Array(64);\n\n // 1 - prepare message schedule 'W'\n for (let t = 0; t < 16; t++) W[t] = M[i][t];\n for (let t = 16; t < 64; t++) {\n W[t] = (this.σ1(W[t - 2]) + W[t - 7] + this.σ0(W[t - 15]) + W[t - 16]) >>> 0;\n }\n\n // 2 - initialise working variables a, b, c, d, e, f, g, h with previous hash value\n let a = H[0], b = H[1], c = H[2], d = H[3], e = H[4], f = H[5], g = H[6], h = H[7];\n\n // 3 - main loop (note '>>> 0' for 'addition modulo 2^32')\n for (let t = 0; t < 64; t++) {\n const T1 = h + this.Σ1(e) + this.Ch(e, f, g) + K[t] + W[t];\n const T2 = this.Σ0(a) + this.Maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + T1) >>> 0;\n d = c;\n c = b;\n b = a;\n a = (T1 + T2) >>> 0;\n }\n\n // 4 - compute the new intermediate hash value (note '>>> 0' for 'addition modulo 2^32')\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n H[5] = (H[5] + f) >>> 0;\n H[6] = (H[6] + g) >>> 0;\n H[7] = (H[7] + h) >>> 0;\n }\n\n // convert H0..H7 to hex strings (with leading zeros)\n for (let h = 0; h < H.length; h++) H[h] = ('00000000' + H[h].toString(16)).slice(-8);\n\n // concatenate H0..H7, with separator if required\n const separator = opt.outFormat == 'hex-w' ? ' ' : '';\n\n return H.join(separator);\n\n /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\n function utf8Encode(str) {\n try {\n return new TextEncoder().encode(str).reduce((prev, curr) => prev + String.fromCharCode(curr), '');\n } catch (e) { // no TextEncoder available?\n return unescape(encodeURIComponent(str)); // monsur.hossa.in/2012/07/20/utf-8-in-javascript.html\n }\n }\n\n function hexBytesToString(hexStr) { // convert string of hex numbers to a string of chars (eg '616263' -> 'abc').\n const str = hexStr.replace(' ', ''); // allow space-separated groups\n return str == '' ? '' : str.match(/.{2}/g).map(byte => String.fromCharCode(parseInt(byte, 16))).join('');\n }\n }\n /**\n * Rotates right (circular right shift) value x by n positions [§3.2.4].\n * @private\n */\n ROTR(n, x) {\n return (x >>> n) | (x << (32 - n));\n }\n /**\n * Logical functions [§4.1.2].\n * @private\n */\n Σ0(x) { return this.ROTR(2, x) ^ this.ROTR(13, x) ^ this.ROTR(22, x); }\n Σ1(x) { return this.ROTR(6, x) ^ this.ROTR(11, x) ^ this.ROTR(25, x); }\n σ0(x) { return this.ROTR(7, x) ^ this.ROTR(18, x) ^ (x >>> 3); }\n σ1(x) { return this.ROTR(17, x) ^ this.ROTR(19, x) ^ (x >>> 10); }\n Ch(x, y, z) { return (x & y) ^ (~x & z); } // 'choice'\n Maj(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } // 'majority'\n}\n\n\nexport const sha256 = new Sha256();","import { sha256 } from './sha256';\nexport function createUniqueHash(key) {\n return sha256.hash(key);\n}\n","/**\n * Thrown when service is registered without type.\n */\nexport class MissingProvidedServiceTypeError extends Error {\n name = 'ServiceNotFoundError';\n\n constructor(identifier: any) {\n super(\n `Cannot determine a class of the requesting service '${JSON.stringify(\n identifier\n )}'`\n );\n Object.setPrototypeOf(this, MissingProvidedServiceTypeError.prototype);\n }\n}\n","/**\n * Used to create unique typed service identifier.\n * Useful when service has only interface, but don't have a class.\n */\nexport class Token {\n\n /**\n * @param name Token name, optional and only used for debugging purposes.\n */\n constructor(public name?: string) {\n }\n\n}\n\nexport class InjectionToken extends Token {}","import { ServiceIdentifier } from '../types/ServiceIdentifier';\nimport { Token } from '../Token';\n\n/**\n * Thrown when requested service was not found.\n */\nexport class ServiceNotFoundError extends Error {\n name = 'ServiceNotFoundError';\n\n constructor(identifier: ServiceIdentifier) {\n super();\n\n if (typeof identifier === 'string') {\n this.message =\n `Service '${identifier}' was not found, looks like it was not registered in the container. ` +\n `Register it by calling Container.set('${JSON.stringify(\n identifier\n )}', ...) before using service.`;\n } else if (identifier instanceof Token && identifier.name) {\n this.message =\n `Service '${\n identifier.name\n }' was not found, looks like it was not registered in the container. ` +\n `Register it by calling Container.set before using service.`;\n } else if (identifier instanceof Token) {\n this.message =\n `Service with a given token was not found, looks like it was not registered in the container. ` +\n `Register it by calling Container.set before using service.`;\n }\n\n Object.setPrototypeOf(this, ServiceNotFoundError.prototype);\n }\n}\n","export class ConstructorWatcherService {\n _constructors: Map = new Map();\n\n getConstructor(name: string) {\n return this._constructors.get(name);\n }\n\n getByClass(currentClass: Function): T {\n return this._constructors.get(currentClass.name)['value'];\n }\n\n createConstructor(name: string, value) {\n if (this._constructors.has(name)) {\n return this.getConstructor(name);\n }\n\n this._constructors.set(name, value);\n return this.getConstructor(name);\n }\n\n triggerOnInit(currentClass: Function) {\n const currentConstructor = this._constructors.get(currentClass.name);\n if (currentConstructor['value'] && currentConstructor['value'].OnInit) {\n currentConstructor['value'].OnInit.bind(currentConstructor['value'])();\n }\n }\n}\n\nexport const constructorWatcherService = new ConstructorWatcherService();\n","export * from './constructor-watcher';","import { Container } from './Container';\nimport { MissingProvidedServiceTypeError } from './error/MissingProvidedServiceTypeError';\nimport { ServiceNotFoundError } from './error/ServiceNotFoundError';\nimport { Token } from './Token';\nimport { ObjectType } from './types/ObjectType';\nimport { ServiceIdentifier } from './types/ServiceIdentifier';\nimport { ServiceMetadata } from './types/ServiceMetadata';\nimport { constructorWatcherService } from '../services/constructor-watcher';\n\n/**\n * TypeDI can have multiple containers.\n * One container is ContainerInstance.\n */\nexport class ContainerInstance {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Container instance id.\n */\n id: any;\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n /**\n * All registered services.\n */\n private services: Map<\n ServiceMetadata,\n ServiceMetadata\n > = new Map();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(id: any) {\n this.id = id;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(type: ObjectType): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(id: string): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(id: Token): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n has(identifier: ServiceIdentifier): boolean {\n return !!this.findService(identifier);\n }\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(type: ObjectType): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(id: string): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(id: Token): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(id: { service: T }): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n get(identifier: ServiceIdentifier): T {\n const globalContainer = Container.of(undefined);\n const service = globalContainer.findService(identifier);\n const scopedService = this.findService(identifier);\n\n if (service && service.global === true) {\n return this.getServiceValue(identifier, service);\n }\n\n if (scopedService) {\n return this.getServiceValue(identifier, scopedService);\n }\n\n if (service && this !== globalContainer) {\n const clonedService = Object.assign({}, service);\n clonedService.value = undefined;\n const value = this.getServiceValue(identifier, clonedService);\n this.set(identifier, value);\n return value;\n }\n\n return this.getServiceValue(identifier, service);\n }\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n getMany(id: string): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n getMany(id: Token): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n getMany(id: string | Token): T[] {\n return this.filterServices(id).map(service =>\n this.getServiceValue(id, service)\n );\n }\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(service: ServiceMetadata): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(type: Function, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(name: string, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(token: Token, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(token: ServiceIdentifier, value: any): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(values: ServiceMetadata[]): this;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n set(\n identifierOrServiceMetadata:\n | ServiceIdentifier\n | ServiceMetadata\n | (ServiceMetadata[]),\n value?: any\n ): this {\n if (identifierOrServiceMetadata instanceof Array) {\n identifierOrServiceMetadata.forEach((v: any) => this.set(v));\n return this;\n }\n if (\n typeof identifierOrServiceMetadata === 'string' ||\n identifierOrServiceMetadata instanceof Token\n ) {\n return this.set({ id: identifierOrServiceMetadata, value: value });\n }\n if (\n typeof identifierOrServiceMetadata === 'object' &&\n (identifierOrServiceMetadata as { service: Token }).service\n ) {\n return this.set({\n id: (identifierOrServiceMetadata as { service: Token }).service,\n value: value\n });\n }\n if (identifierOrServiceMetadata instanceof Function) {\n return this.set({\n type: identifierOrServiceMetadata,\n id: identifierOrServiceMetadata,\n value: value\n });\n }\n\n // const newService: ServiceMetadata = arguments.length === 1 && typeof identifierOrServiceMetadata === 'object' && !(identifierOrServiceMetadata instanceof Token) ? identifierOrServiceMetadata : undefined;\n const newService: ServiceMetadata<\n any,\n any\n > = identifierOrServiceMetadata as any;\n const service = this.services.get(newService);\n if (service && service.multiple !== true) {\n Object.assign(service, newService);\n } else {\n this.services.set(newService, newService);\n }\n\n return this;\n }\n\n /**\n * Removes services with a given service identifiers (tokens or types).\n */\n remove(...ids: ServiceIdentifier[]): this {\n ids.forEach(id => {\n this.filterServices(id).forEach(service => {\n this.services.delete(service);\n });\n });\n return this;\n }\n\n /**\n * Completely resets the container by removing all previously registered services from it.\n */\n reset(): this {\n this.services.clear();\n return this;\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n /**\n * Filters registered service in the with a given service identifier.\n */\n private filterServices(\n identifier: ServiceIdentifier\n ): ServiceMetadata[] {\n return Array.from(this.services.values()).filter(service => {\n if (service.id) {\n return service.id === identifier;\n }\n\n if (service.type && identifier instanceof Function) {\n return (\n service.type === identifier ||\n identifier.prototype instanceof service.type\n );\n }\n return false;\n });\n }\n\n /**\n * Finds registered service in the with a given service identifier.\n */\n private findService(\n identifier: ServiceIdentifier\n ): ServiceMetadata | undefined {\n return Array.from(this.services.values()).find(service => {\n if (service.id) {\n if (\n identifier instanceof Object &&\n service.id instanceof Token &&\n (identifier as any).service instanceof Token\n ) {\n return service.id === (identifier as any).service;\n }\n\n return service.id === identifier;\n }\n\n if (service.type && identifier instanceof Function) {\n return service.type === identifier; // todo: not sure why it was here || identifier.prototype instanceof service.type;\n }\n return false;\n });\n }\n\n /**\n * Gets service value.\n */\n private getServiceValue(\n identifier: ServiceIdentifier,\n service: ServiceMetadata | undefined\n ): any {\n // find if instance of this object already initialized in the container and return it if it is\n if (service && service.value !== undefined) {\n return service.value;\n }\n\n // if named service was requested and its instance was not found plus there is not type to know what to initialize,\n // this means service was not pre-registered and we throw an exception\n if (\n (!service || !service.type) &&\n (!service || !service.factory) &&\n (typeof identifier === 'string' || identifier instanceof Token)\n ) {\n throw new ServiceNotFoundError(identifier);\n }\n\n // at this point we either have type in service registered, either identifier is a target type\n let type = undefined;\n if (service && service.type) {\n type = service.type;\n } else if (service && service.id instanceof Function) {\n type = service.id;\n } else if (identifier instanceof Function) {\n type = identifier;\n\n // } else if (identifier instanceof Object && (identifier as { service: Token }).service instanceof Token) {\n // type = (identifier as { service: Token }).service;\n }\n\n // if service was not found then create a new one and register it\n if (!service) {\n if (!type) {\n throw new MissingProvidedServiceTypeError(identifier);\n }\n service = { type: type };\n this.services.set(service, service);\n }\n\n // setup constructor parameters for a newly initialized service\n const paramTypes =\n type && Reflect && (Reflect as any).getMetadata\n ? (Reflect as any).getMetadata('design:paramtypes', type)\n : undefined;\n let params: any[] = paramTypes\n ? this.initializeParams(type, paramTypes)\n : [];\n\n // if factory is set then use it to create service instance\n let value: any;\n if (service.factory) {\n // filter out non-service parameters from created service constructor\n // non-service parameters can be, lets say Car(name: string, isNew: boolean, engine: Engine)\n // where name and isNew are non-service parameters and engine is a service parameter\n params = params.filter(param => param !== undefined);\n\n if (service.factory instanceof Array) {\n // use special [Type, 'create'] syntax to allow factory services\n // in this case Type instance will be obtained from Container and its method 'create' will be called\n value = (this.get(service.factory[0]) as any)[service.factory[1]](\n ...params\n );\n } else {\n // regular factory function\n value = service.factory(...params, this);\n }\n } else {\n // otherwise simply create a new object instance\n if (!type) {\n throw new MissingProvidedServiceTypeError(identifier);\n }\n\n params.unshift(null);\n\n // 'extra feature' - always pass container instance as the last argument to the service function\n // this allows us to support javascript where we don't have decorators and emitted metadata about dependencies\n // need to be injected, and user can use provided container to get instances he needs\n params.push(this);\n\n if (type.prototype.OnBefore) {\n type.prototype.OnBefore.bind(type)();\n }\n value = new (type.bind.apply(type, params))();\n constructorWatcherService.createConstructor(type['name'], {\n type,\n value\n });\n // if (value.render) {\n // debugger\n // // const test = new value['__proto__'].constructor()\n // Extend React class Correctly\n // Object.assign(value['__proto__'].constructor.prototype, value);\n // console.log(value['__proto__'].constructor.prototype);\n // console.log(type['metadata']['moduleName'], value);\n // console.log(value['__proto__'].constructor)\n // }\n\n if (value.OnInit) {\n value.OnInit.bind(value)();\n }\n }\n\n if (service && !service.transient && value) {\n service.value = value;\n }\n\n if (type) {\n this.applyPropertyHandlers(type, value);\n }\n\n return value;\n }\n\n /**\n * Initializes all parameter types for a given target service class.\n */\n private initializeParams(type: Function, paramTypes: any[]): any[] {\n return paramTypes.map((paramType, index) => {\n const paramHandler = Array.from(Container.handlers.values()).find(\n handler => handler.object === type && handler.index === index\n );\n if (paramHandler) {\n return paramHandler.value(this);\n }\n\n if (\n paramType &&\n paramType.name &&\n !this.isTypePrimitive(paramType.name)\n ) {\n return this.get(paramType);\n }\n\n return undefined;\n });\n }\n\n /**\n * Checks if given type is primitive (e.g. string, boolean, number, object).\n */\n private isTypePrimitive(param: string): boolean {\n return (\n ['string', 'boolean', 'number', 'object'].indexOf(param.toLowerCase()) !== -1\n );\n }\n\n /**\n * Applies all registered handlers on a given target class.\n */\n private applyPropertyHandlers(\n target: Function,\n instance: { [key: string]: any }\n ) {\n Container.handlers.forEach(handler => {\n if (typeof handler.index === 'number') {\n return;\n }\n if (\n handler.object.constructor !== target &&\n !(target.prototype instanceof handler.object.constructor)\n ) {\n return;\n }\n instance[handler.propertyName] = handler.value(this);\n });\n }\n}\n","import { ContainerInstance } from './ContainerInstance';\nimport { Token } from './Token';\nimport { Handler } from './types/Handler';\nimport { ObjectType } from './types/ObjectType';\nimport { ServiceIdentifier } from './types/ServiceIdentifier';\nimport { ServiceMetadata } from './types/ServiceMetadata';\n\n/**\n * Service container.\n */\nexport class Container {\n // -------------------------------------------------------------------------\n // Private Static Properties\n // -------------------------------------------------------------------------\n\n /**\n * Global container instance.\n */\n private static readonly globalInstance: ContainerInstance = new ContainerInstance(\n undefined\n );\n\n /**\n * Other containers created using Container.of method.\n */\n private static readonly instances: Map = new Map();\n\n /**\n * All registered handlers.\n */\n static readonly handlers: Map = new Map();\n\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets a separate container instance for the given instance id.\n */\n static of(instanceId: any): ContainerInstance {\n if (instanceId === undefined) return this.globalInstance;\n\n let container = this.instances.get(instanceId);\n if (!container) {\n container = new ContainerInstance(instanceId);\n this.instances.set(instanceId, container);\n }\n\n return container;\n }\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(type: ObjectType): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(id: string): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(id: Token): boolean;\n\n /**\n * Checks if the service with given name or type is registered service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static has(identifier: ServiceIdentifier): boolean {\n return this.globalInstance.has(identifier as any);\n }\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(type: ObjectType): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(id: string): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(id: Token): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(service: { service: T }): T;\n\n /**\n * Retrieves the service with given name or type from the service container.\n * Optionally, parameters can be passed in case if instance is initialized in the container for the first time.\n */\n static get(identifier: ServiceIdentifier): T {\n return this.globalInstance.get(identifier as any);\n }\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n static getMany(id: string): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n static getMany(id: Token): T[];\n\n /**\n * Gets all instances registered in the container of the given service identifier.\n * Used when service defined with multiple: true flag.\n */\n static getMany(id: string | Token): T[] {\n return this.globalInstance.getMany(id as any);\n }\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(service: ServiceMetadata): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(type: Function, value: any): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(name: string, value: any): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(token: Token, value: any): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(values: ServiceMetadata[]): Container;\n\n /**\n * Sets a value for the given type or service name in the container.\n */\n static set(\n identifierOrServiceMetadata:\n | ServiceIdentifier\n | ServiceMetadata\n | (ServiceMetadata[]),\n value?: any\n ): Container {\n this.globalInstance.set(identifierOrServiceMetadata as any, value);\n return this;\n }\n\n /**\n * Removes services with a given service identifiers (tokens or types).\n */\n static remove(...ids: ServiceIdentifier[]): Container {\n this.globalInstance.remove(...ids);\n return this;\n }\n\n /**\n * Completely resets the container by removing all previously registered services and handlers from it.\n */\n static reset(containerId?: any): Container {\n if (containerId) {\n const instance = this.instances.get(containerId);\n if (instance) {\n instance.reset();\n this.instances.delete(containerId);\n }\n } else {\n this.globalInstance.reset();\n Array.from(this.instances.values()).forEach(i => i.reset());\n }\n return this;\n }\n\n /**\n * Registers a new handler.\n */\n static registerHandler(handler: Handler): Container {\n this.handlers.set(handler, handler);\n return this;\n }\n\n /**\n * Helper method that imports given services.\n */\n static import(services: Function[]): Container {\n return this;\n }\n}\n","import { Metadata } from '../decorators';\nimport { createUniqueHash } from './create-unique-hash';\nimport { Container } from '../container/Container';\nimport { ServiceMetadata } from '../container/types/ServiceMetadata';\nimport { ServiceOptions } from '../container/types/ServiceOptions';\nimport { Token } from '../container/Token';\n\nexport function ReflectDecorator(\n options: any,\n metaOptions: Metadata\n) {\n return (target: Function) => {\n const uniqueHashForClass = createUniqueHash(\n `${target}${JSON.stringify(options, null, 4)}`\n );\n Object.defineProperty(target, 'originalName', {\n value: target.name || target.constructor.name,\n writable: false\n });\n Object.defineProperty(target, 'name', {\n value: uniqueHashForClass,\n writable: true\n });\n const nameCapitalized = (name: string) =>\n name.charAt(0).toUpperCase() + name.slice(1);\n\n target['metadata'] = {\n moduleName: target['originalName'],\n moduleHash: uniqueHashForClass,\n options: options || null,\n type: metaOptions.type,\n raw: `\n ---- @${nameCapitalized(metaOptions.type)} '${target.name}' metadata----\n @${nameCapitalized(metaOptions.type)}(${JSON.stringify(\n options,\n null,\n 4\n )})\n ${target['originalName']}\n `\n };\n const service: ServiceMetadata = {\n type: target\n };\n\n if (typeof options === 'string' || options instanceof Token) {\n service.id = options;\n service.multiple = (options as ServiceOptions).multiple;\n service.global = (options as ServiceOptions).global || false;\n service.transient = (options as ServiceOptions).transient;\n\n } else if (options) { // ServiceOptions\n service.id = (options as ServiceOptions).id;\n service.factory = (options as ServiceOptions).factory;\n service.multiple = (options as ServiceOptions).multiple;\n service.global = (options as ServiceOptions).global || false;\n service.transient = (options as ServiceOptions).transient;\n }\n\n\n Container.set(service);\n };\n}\n","import { ServiceOptions } from '../../container/types/ServiceOptions';\nimport { Token } from '../../container/Token';\nimport { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport interface TypeProvide extends Function {\n new(...args: any[]): T;\n}\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(): Function;\n\n// export function Service(config: { providedIn?: TypeProvide | 'root' | null, useFactory?: () => any }): Function;\n\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(name: string): Function;\n\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(token: Token): Function;\n\n\n/**\n * Marks class as a service that can be injected using Container.\n */\nexport function Service(options?: ServiceOptions): Function;\n\n/**\n * Marks class as a service that can be injected using container.\n */\nexport function Service(options?: ServiceOptions | Token | string): Function {\n return ReflectDecorator(options, { type: 'service' });\n}\n\n","export * from './on-before';\nexport * from './on-init';","export { Service as Injectable } from '../decorators/service/Service';\nexport { Container } from './Container';\nexport { ContainerInstance } from './ContainerInstance';\nexport { Handler } from './types/Handler';\nexport { ServiceOptions } from './types/ServiceOptions';\nexport { ServiceIdentifier } from './types/ServiceIdentifier';\nexport { ServiceMetadata } from './types/ServiceMetadata';\nexport { ObjectType } from './types/ObjectType';\nexport { Token as InjectionToken } from './Token';\nexport * from './types/hooks/index';","/*! *****************************************************************************\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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\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 __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\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 function isFunction(x: any): x is Function {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport const config = {\n /**\n * The promise constructor used by default for methods such as\n * {@link toPromise} and {@link forEach}\n */\n Promise: undefined as PromiseConstructorLike,\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n * FOR MIGRATION REASONS.\n */\n set useDeprecatedSynchronousErrorHandling(value: boolean) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport function hostReportError(err: any) {\n setTimeout(() => { throw err; }, 0);\n}","import { Observer } from './types';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nexport const empty: Observer = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete(): void { /*noop*/ }\n};\n","export const isArray = Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number');\n","export function isObject(x: any): x is Object {\n return x !== null && typeof x === 'object';\n}\n","export interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n new(errors: any[]): UnsubscriptionError;\n}\n\nfunction UnsubscriptionErrorImpl(this: any, errors: any[]) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n}\n\nUnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic } from './types';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY: Subscription = (function(empty: any) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n public closed: boolean = false;\n\n /** @internal */\n protected _parentOrParents: Subscription | Subscription[] = null;\n /** @internal */\n private _subscriptions: SubscriptionLike[] = null;\n\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n constructor(unsubscribe?: () => void) {\n if (unsubscribe) {\n ( this)._unsubscribe = unsubscribe;\n }\n }\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[];\n\n if (this.closed) {\n return;\n }\n\n let { _parentOrParents, _unsubscribe, _subscriptions } = ( this);\n\n this.closed = true;\n this._parentOrParents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n } else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n } catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n } else {\n errors.push(e);\n }\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription. Can also be used to add a child subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n add(teardown: TeardownLogic): Subscription {\n let subscription = (teardown);\n\n if (!(teardown)) {\n return Subscription.EMPTY;\n }\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(<(() => void)>teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state.\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n\n // Add `this` as parent of `subscription` if that's not already the case.\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n // If we don't have a parent, then set `subscription._parents` to\n // the `this`, which is the common case that we optimize for.\n subscription._parentOrParents = this;\n } else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n // If there's already one parent, but not multiple, allocate an\n // Array to store the rest of the parent Subscriptions.\n subscription._parentOrParents = [_parentOrParents, this];\n } else if (_parentOrParents.indexOf(this) === -1) {\n // Only add `this` to the _parentOrParents list if it's not already there.\n _parentOrParents.push(this);\n } else {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n\n // Optimize for the common case when adding the first subscription.\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n } else {\n subscriptions.push(subscription);\n }\n\n return subscription;\n }\n\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n remove(subscription: Subscription): void {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","/** @deprecated do not use, this is no longer checked by RxJS internals */\nexport const rxSubscriber =\n typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n\n/**\n * @deprecated use rxSubscriber instead\n */\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Observer, PartialObserver, TeardownLogic } from './types';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n\n [rxSubscriberSymbol]() { return this; }\n\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n */\n static create(next?: (x?: T) => void,\n error?: (e?: any) => void,\n complete?: () => void): Subscriber {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n\n /** @internal */ syncErrorValue: any = null;\n /** @internal */ syncErrorThrown: boolean = false;\n /** @internal */ syncErrorThrowable: boolean = false;\n\n protected isStopped: boolean = false;\n protected destination: PartialObserver | Subscriber; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n constructor(destinationOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n } else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, > destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, <((value: T) => void)> destinationOrNext, error, complete);\n break;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.destination.complete();\n this.unsubscribe();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SafeSubscriber extends Subscriber {\n\n private _context: any;\n\n constructor(private _parentSubscriber: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n let next: ((value: T) => void);\n let context: any = this;\n\n if (isFunction(observerOrNext)) {\n next = (<((value: T) => void)> observerOrNext);\n } else if (observerOrNext) {\n next = (> observerOrNext).next;\n error = (> observerOrNext).error;\n complete = (> observerOrNext).complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(<() => void> context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n\n next(value?: T): void {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n\n error(err?: any): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n\n complete(): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n }\n\n private __tryOrUnsub(fn: Function, value?: any): void {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n }\n }\n\n private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _unsubscribe(): void {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\n\n/**\n * Determines whether the ErrorObserver is closed or stopped or has a\n * destination that is closed or stopped - in which case errors will\n * need to be reported via a different mechanism.\n * @param observer the observer\n */\nexport function canReportError(observer: Subscriber | Subject): boolean {\n while (observer) {\n const { closed, destination, isStopped } = observer as any;\n if (closed || isStopped) {\n return false;\n } else if (destination && destination instanceof Subscriber) {\n observer = destination;\n } else {\n observer = null;\n }\n }\n return true;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nimport { PartialObserver } from '../types';\n\nexport function toSubscriber(\n nextOrObserver?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscriber {\n\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return (> nextOrObserver);\n }\n\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n\n return new Subscriber(nextOrObserver, error, complete);\n}\n","/** Symbol.observable addition */\n/* Note: This will add Symbol.observable globally for all TypeScript users,\n however, we are no longer polyfilling Symbol.observable */\ndeclare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\n\n/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n","/* tslint:disable:no-empty */\nexport function noop() { }\n","import { noop } from './noop';\nimport { UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pipe(): UnaryFunction;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction;\n/* tslint:enable:max-line-length */\n\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (!fns) {\n return noop as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n","import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n\n /** Internal implementation detail, do not use directly. */\n public _isScalar: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n source: Observable;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n operator: Operator;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n * @nocollapse\n * @deprecated use new Observable() instead\n */\n static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n }\n\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n lift(operator: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: PartialObserver): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n /** @deprecated Use an observer instead of an error callback */\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * ## Example\n * ### Subscribe with an Observer\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Subscribe with functions\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Cancel a subscription\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * );\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscription {\n\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n sink.add(operator.call(sink, this.source));\n } else {\n sink.add(\n this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink)\n );\n }\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n // Must be declared in a separate statement to avoid a ReferenceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n let subscription: Subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n }) as Promise;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): TeardownLogic {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n\n // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in\n // favor of iif and throwError functions.\n /**\n * @nocollapse\n * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n */\n static if: typeof iif;\n /**\n * @nocollapse\n * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n */\n static throw: typeof throwError;\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable<{}>;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ### Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n if (operations.length === 0) {\n return this as any;\n }\n\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n toPromise(this: Observable): Promise;\n toPromise(this: Observable, PromiseCtor: typeof Promise): Promise;\n toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: any;\n this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}\n","export interface ObjectUnsubscribedError extends Error {\n}\n\nexport interface ObjectUnsubscribedErrorCtor {\n new(): ObjectUnsubscribedError;\n}\n\nfunction ObjectUnsubscribedErrorImpl(this: any) {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n}\n\nObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any;","import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription extends Subscription {\n closed: boolean = false;\n\n constructor(public subject: Subject, public subscriber: Observer) {\n super();\n }\n\n unsubscribe() {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber\n */\nexport class SubjectSubscriber extends Subscriber {\n constructor(protected destination: Subject) {\n super(destination);\n }\n}\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n *\n * @class Subject\n */\nexport class Subject extends Observable implements SubscriptionLike {\n\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n\n observers: Observer[] = [];\n\n closed = false;\n\n isStopped = false;\n\n hasError = false;\n\n thrownError: any = null;\n\n constructor() {\n super();\n }\n\n /**@nocollapse\n * @deprecated use new Subject() instead\n */\n static create: Function = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n }\n\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n\n next(value?: T) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n\n error(err: any) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(subscriber: Subscriber): TeardownLogic {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return super._trySubscribe(subscriber);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create customize Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable = new Observable();\n (observable).source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(protected destination?: Observer, source?: Observable) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n\n error(err: any) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { Observable } from '../Observable';\n\n/**\n * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way\n * you can connect to it.\n *\n * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if\n * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it\n * unsubscribes from the source. This way you can make sure that everything before the *published*\n * refCount has only a single subscription independently of the number of subscribers to the target\n * observable.\n *\n * Note that using the {@link share} operator is exactly the same as using the *publish* operator\n * (making the observable hot) and the *refCount* operator in a sequence.\n *\n * ![](refCount.png)\n *\n * ## Example\n *\n * In the following example there are two intervals turned into connectable observables\n * by using the *publish* operator. The first one uses the *refCount* operator, the\n * second one does not use it. You will notice that a connectable observable does nothing\n * until you call its connect function.\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { tap, publish, refCount } from 'rxjs/operators';\n *\n * // Turn the interval observable into a ConnectableObservable (hot)\n * const refCountInterval = interval(400).pipe(\n * tap((num) => console.log(`refCount ${num}`)),\n * publish(),\n * refCount()\n * );\n *\n * const publishedInterval = interval(400).pipe(\n * tap((num) => console.log(`publish ${num}`)),\n * publish()\n * );\n *\n * refCountInterval.subscribe();\n * refCountInterval.subscribe();\n * // 'refCount 0' -----> 'refCount 1' -----> etc\n * // All subscriptions will receive the same value and the tap (and\n * // every other operator) before the publish operator will be executed\n * // only once per event independently of the number of subscriptions.\n *\n * publishedInterval.subscribe();\n * // Nothing happens until you call .connect() on the observable.\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link share}\n * @see {@link publish}\n */\nexport function refCount(): MonoTypeOperatorFunction {\n return function refCountOperatorFunction(source: ConnectableObservable): Observable {\n return source.lift(new RefCountOperator(source));\n } as MonoTypeOperatorFunction;\n}\n\nclass RefCountOperator implements Operator {\n constructor(private connectable: ConnectableObservable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n\n const { connectable } = this;\n ( connectable)._refCount++;\n\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n ( refCounter).connection = connectable.connect();\n }\n\n return subscription;\n }\n}\n\nclass RefCountSubscriber extends Subscriber {\n\n private connection: Subscription;\n\n constructor(destination: Subscriber,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n\n protected _unsubscribe() {\n\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n const refCount = ( connectable)._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n ( connectable)._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // )\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n const { connection } = this;\n const sharedConnection = ( connectable)._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subject, SubjectSubscriber } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic } from '../types';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\n\n/**\n * @class ConnectableObservable\n */\nexport class ConnectableObservable extends Observable {\n\n protected _subject: Subject;\n protected _refCount: number = 0;\n protected _connection: Subscription;\n /** @internal */\n _isComplete = false;\n\n constructor(public source: Observable,\n protected subjectFactory: () => Subject) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n\n protected getSubject(): Subject {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n\n connect(): Subscription {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n\n refCount(): Observable {\n return higherOrderRefCount()(this) as Observable;\n }\n}\n\nconst connectableProto = ConnectableObservable.prototype;\n\nexport const connectableObservableDescriptor: PropertyDescriptorMap = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\n\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination: Subject,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n protected _error(err: any): void {\n this._unsubscribe();\n super._error(err);\n }\n protected _complete(): void {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n protected _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\n\nclass RefCountOperator implements Operator {\n constructor(private connectable: ConnectableObservable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n\n const { connectable } = this;\n ( connectable)._refCount++;\n\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n ( refCounter).connection = connectable.connect();\n }\n\n return subscription;\n }\n}\n\nclass RefCountSubscriber extends Subscriber {\n\n private connection: Subscription;\n\n constructor(destination: Subscriber,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n\n protected _unsubscribe() {\n\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n const refCount = ( connectable)._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n ( connectable)._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // ).subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n const { connection } = this;\n const sharedConnection = ( connectable)._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function groupBy(keySelector: (value: T) => K): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable) => Observable): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable, subjectSelector?: () => Subject): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * ![](groupBy.png)\n *\n * When the Observable emits an item, a key is computed for this item with the keySelector function.\n *\n * If a {@link GroupedObservable} for this key exists, this {@link GroupedObservable} emits. Elsewhere, a new\n * {@link GroupedObservable} for this key is created and emits.\n *\n * A {@link GroupedObservable} represents values belonging to the same group represented by a common key. The common\n * key is available as the key field of a {@link GroupedObservable} instance.\n *\n * The elements emitted by {@link GroupedObservable}s are by default the items emitted by the Observable, or elements\n * returned by the elementSelector function.\n *\n * ## Examples\n *\n * ### Group objects by id and return as array\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { mergeMap, groupBy, reduce } from 'rxjs/operators';\n *\n * of(\n * {id: 1, name: 'JavaScript'},\n * {id: 2, name: 'Parcel'},\n * {id: 2, name: 'webpack'},\n * {id: 1, name: 'TypeScript'},\n * {id: 3, name: 'TSLint'}\n * ).pipe(\n * groupBy(p => p.id),\n * mergeMap((group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], []))),\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // [ { id: 1, name: 'JavaScript'},\n * // { id: 1, name: 'TypeScript'} ]\n * //\n * // [ { id: 2, name: 'Parcel'},\n * // { id: 2, name: 'webpack'} ]\n * //\n * // [ { id: 3, name: 'TSLint'} ]\n * ```\n *\n * ### Pivot data on the id field\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { groupBy, map, mergeMap, reduce } from 'rxjs/operators';\n *\n * of(\n * { id: 1, name: 'JavaScript' },\n * { id: 2, name: 'Parcel' },\n * { id: 2, name: 'webpack' },\n * { id: 1, name: 'TypeScript' },\n * { id: 3, name: 'TSLint' }\n * )\n * .pipe(\n * groupBy(p => p.id, p => p.name),\n * mergeMap(group$ =>\n * group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`]))\n * ),\n * map(arr => ({ id: parseInt(arr[0], 10), values: arr.slice(1) }))\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // { id: 1, values: [ 'JavaScript', 'TypeScript' ] }\n * // { id: 2, values: [ 'Parcel', 'webpack' ] }\n * // { id: 3, values: [ 'TSLint' ] }\n * ```\n *\n * @param {function(value: T): K} keySelector A function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] A function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable): Observable} [durationSelector]\n * A function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable>} An Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nexport function groupBy(keySelector: (value: T) => K,\n elementSelector?: ((value: T) => R) | void,\n durationSelector?: (grouped: GroupedObservable) => Observable,\n subjectSelector?: () => Subject): OperatorFunction> {\n return (source: Observable) =>\n source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n}\n\nexport interface RefCountSubscription {\n count: number;\n unsubscribe: () => void;\n closed: boolean;\n attemptedToUnsubscribe: boolean;\n}\n\nclass GroupByOperator implements Operator> {\n constructor(private keySelector: (value: T) => K,\n private elementSelector?: ((value: T) => R) | void,\n private durationSelector?: (grouped: GroupedObservable) => Observable,\n private subjectSelector?: () => Subject) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new GroupBySubscriber(\n subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupBySubscriber extends Subscriber implements RefCountSubscription {\n private groups: Map> = null;\n public attemptedToUnsubscribe: boolean = false;\n public count: number = 0;\n\n constructor(destination: Subscriber>,\n private keySelector: (value: T) => K,\n private elementSelector?: ((value: T) => R) | void,\n private durationSelector?: (grouped: GroupedObservable) => Observable,\n private subjectSelector?: () => Subject) {\n super(destination);\n }\n\n protected _next(value: T): void {\n let key: K;\n try {\n key = this.keySelector(value);\n } catch (err) {\n this.error(err);\n return;\n }\n\n this._group(value, key);\n }\n\n private _group(value: T, key: K) {\n let groups = this.groups;\n\n if (!groups) {\n groups = this.groups = new Map>();\n }\n\n let group = groups.get(key);\n\n let element: R;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n } catch (err) {\n this.error(err);\n }\n } else {\n element = value;\n }\n\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject()) as Subject;\n groups.set(key, group);\n const groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n let duration: any;\n try {\n duration = this.durationSelector(new GroupedObservable(key, >group));\n } catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n\n if (!group.closed) {\n group.next(element);\n }\n }\n\n protected _error(err: any): void {\n const groups = this.groups;\n if (groups) {\n groups.forEach((group, key) => {\n group.error(err);\n });\n\n groups.clear();\n }\n this.destination.error(err);\n }\n\n protected _complete(): void {\n const groups = this.groups;\n if (groups) {\n groups.forEach((group, key) => {\n group.complete();\n });\n\n groups.clear();\n }\n this.destination.complete();\n }\n\n removeGroup(key: K): void {\n this.groups.delete(key);\n }\n\n unsubscribe() {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n super.unsubscribe();\n }\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupDurationSubscriber extends Subscriber {\n constructor(private key: K,\n private group: Subject,\n private parent: GroupBySubscriber) {\n super(group);\n }\n\n protected _next(value: T): void {\n this.complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { parent, key } = this;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n }\n}\n\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable\n */\nexport class GroupedObservable extends Observable {\n /** @deprecated Do not construct this type. Internal use only */\n constructor(public key: K,\n private groupSubject: Subject,\n private refCountSubscription?: RefCountSubscription) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n const subscription = new Subscription();\n const { refCountSubscription, groupSubject } = this;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass InnerRefCountSubscription extends Subscription {\n constructor(private parent: RefCountSubscription) {\n super();\n parent.count++;\n }\n\n unsubscribe() {\n const parent = this.parent;\n if (!parent.closed && !this.closed) {\n super.unsubscribe();\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { SubscriptionLike } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n if (subscription && !(subscription).closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n\n getValue(): T {\n if (this.hasError) {\n throw this.thrownError;\n } else if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return this._value;\n }\n }\n\n next(value: T): void {\n super.next(this._value = value);\n }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n","import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsyncAction extends Action {\n\n public id: any;\n public state: T;\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay: number = 0): any {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay: number = 0): any {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n clearInterval(id);\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, delay: number): any {\n let errored: boolean = false;\n let errorValue: any = undefined;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n\n if (index !== -1) {\n actions.splice(index, 1);\n }\n\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class QueueAction extends AsyncAction {\n\n constructor(protected scheduler: QueueScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay) ;\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Otherwise flush the scheduler starting with this action.\n return scheduler.flush(this);\n }\n}\n","import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}\n */\nexport class Scheduler implements SchedulerLike {\n\n /**\n * Note: the extra arrow function wrapper is to make testing by overriding\n * Date.now easier.\n * @nocollapse\n */\n public static now: () => number = () => Date.now();\n\n constructor(private SchedulerAction: typeof Action,\n now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport class AsyncScheduler extends Scheduler {\n public static delegate?: Scheduler;\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @deprecated internal use only\n */\n public active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @deprecated internal use only\n */\n public scheduled: any = undefined;\n\n constructor(SchedulerAction: typeof Action,\n now: () => number = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n } else {\n return now();\n }\n });\n }\n\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n } else {\n return super.schedule(work, delay, state);\n }\n }\n\n public flush(action: AsyncAction): void {\n\n const {actions} = this;\n\n if (this.active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this.active = true;\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift()); // exhaust the scheduler queue\n\n this.active = false;\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n *\n * @static true\n * @name queue\n * @owner Scheduler\n */\n\nexport const queue = new QueueScheduler(QueueAction);\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * The same Observable instance returned by any call to {@link empty} without a\n * `scheduler`. It is preferrable to use this over `empty()`.\n */\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n * \n *\n * ![](empty.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then complete\n * ```ts\n * import { empty } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * const result = empty().pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'\n * ```ts\n * import { empty, interval } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * const interval$ = interval(1000);\n * result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throwError}\n *\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @return An \"empty\" Observable: emits only the complete\n * notification.\n * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`)\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { SchedulerLike } from '../types';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && typeof (value).schedule === 'function';\n}\n","import { Subscriber } from '../Subscriber';\n\n/**\n * Subscribes to an ArrayLike with a subscriber\n * @param array The array or array-like to subscribe to\n */\nexport const subscribeToArray = (array: ArrayLike) => (subscriber: Subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport function scheduleArray(input: ArrayLike, scheduler: SchedulerLike) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\n\nexport function fromArray(input: ArrayLike, scheduler?: SchedulerLike) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n } else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { Observable } from '../Observable';\nimport { scheduleArray } from '../scheduled/scheduleArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike):\n Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike):\n Observable;\n/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike):\n Observable;\nexport function of(...args: (T | SchedulerLike)[]): Observable;\n\n// TODO(benlesh): Update the typings for this when we can switch to TS 3.x\nexport function of(a: T): Observable;\nexport function of(a: T, b: T2): Observable;\nexport function of(a: T, b: T2, c: T3): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7):\n Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8):\n Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9):\n Observable;\nexport function of(...args: T[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * Each argument becomes a `next` notification.\n *\n * ![](of.png)\n *\n * Unlike {@link from}, it does not do any flattening and emits each argument in whole\n * as a separate `next` notification.\n *\n * ## Examples\n *\n * Emit the values `10, 20, 30`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of(10, 20, 30)\n * .subscribe(\n * next => console.log('next:', next),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'next: 10'\n * // 'next: 20'\n * // 'next: 30'\n *\n * ```\n *\n * Emit the array `[1,2,3]`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of([1,2,3])\n * .subscribe(\n * next => console.log('next:', next),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'next: [1,2,3]'\n * ```\n *\n * @see {@link from}\n * @see {@link range}\n *\n * @param {...T} values A comma separated list of arguments you want to be emitted\n * @return {Observable} An Observable that emits the arguments\n * described above and then completes.\n * @method of\n * @owner Observable\n */\n\nexport function of(...args: Array): Observable {\n let scheduler = args[args.length - 1] as SchedulerLike;\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args as T[], scheduler);\n } else {\n return fromArray(args as T[]);\n }\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits an error notification.\n *\n * Just emits 'error', and nothing else.\n * \n *\n * ![](throw.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the error notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then emit an error\n * ```ts\n * import { throwError, concat, of } from 'rxjs';\n *\n * const result = concat(of(7), throwError(new Error('oops!')));\n * result.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // 7\n * // Error: oops!\n * ```\n *\n * ---\n *\n * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2\n * ```ts\n * import { throwError, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * interval(1000).pipe(\n * mergeMap(x => x === 2\n * ? throwError('Twos are bad')\n * : of('a', 'b', 'c')\n * ),\n * ).subscribe(x => console.log(x), e => console.error(e));\n *\n * // Logs:\n * // a\n * // b\n * // c\n * // a\n * // b\n * // c\n * // Twos are bad\n * ```\n *\n * @see {@link Observable}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link of}\n *\n * @param {any} error The particular Error to pass to the error notification.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emission of the error notification.\n * @return {Observable} An error Observable: emits only the error notification\n * using the given error argument.\n * @static true\n * @name throwError\n * @owner Observable\n */\nexport function throwError(error: any, scheduler?: SchedulerLike): Observable {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n } else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\n\ninterface DispatchArg {\n error: any;\n subscriber: Subscriber;\n}\n\nfunction dispatch({ error, subscriber }: DispatchArg) {\n subscriber.error(error);\n}\n","import { PartialObserver } from './types';\nimport { Observable } from './Observable';\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nimport { deprecate } from 'util';\n\n// TODO: When this enum is removed, replace it with a type alias. See #4556.\n/**\n * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead.\n */\nexport enum NotificationKind {\n NEXT = 'N',\n ERROR = 'E',\n COMPLETE = 'C',\n}\n\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification\n */\nexport class Notification {\n hasValue: boolean;\n\n constructor(public kind: 'N' | 'E' | 'C', public value?: T, public error?: any) {\n this.hasValue = kind === 'N';\n }\n\n /**\n * Delivers to the given `observer` the value wrapped by this Notification.\n * @param {Observer} observer\n * @return\n */\n observe(observer: PartialObserver): any {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n\n /**\n * Given some {@link Observer} callbacks, deliver the value represented by the\n * current Notification to the correctly corresponding callback.\n * @param {function(value: T): void} next An Observer `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n\n /**\n * Takes an Observer or its individual callback functions, and calls `observe`\n * or `do` methods accordingly.\n * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n * the `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) {\n if (nextOrObserver && typeof (>nextOrObserver).next === 'function') {\n return this.observe(>nextOrObserver);\n } else {\n return this.do(<(value: T) => void>nextOrObserver, error, complete);\n }\n }\n\n /**\n * Returns a simple Observable that just delivers the notification represented\n * by this Notification instance.\n * @return {any}\n */\n toObservable(): Observable {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n\n private static completeNotification: Notification = new Notification('C');\n private static undefinedValueNotification: Notification = new Notification('N', undefined);\n\n /**\n * A shortcut to create a Notification instance of the type `next` from a\n * given value.\n * @param {T} value The `next` value.\n * @return {Notification} The \"next\" Notification representing the\n * argument.\n * @nocollapse\n */\n static createNext(value: T): Notification {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n\n /**\n * A shortcut to create a Notification instance of the type `error` from a\n * given error.\n * @param {any} [err] The `error` error.\n * @return {Notification} The \"error\" Notification representing the\n * argument.\n * @nocollapse\n */\n static createError(err?: any): Notification {\n return new Notification('E', undefined, err);\n }\n\n /**\n * A shortcut to create a Notification instance of the type `complete`.\n * @return {Notification} The valueless \"complete\" Notification.\n * @nocollapse\n */\n static createComplete(): Notification {\n return Notification.completeNotification;\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Notification } from '../Notification';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * Ensure a specific scheduler is used, from outside of an Observable.\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n * Ensure values in subscribe are called just before browser repaint.\n * ```ts\n * import { interval } from 'rxjs';\n * import { observeOn } from 'rxjs/operators';\n *\n * const intervals = interval(10); // Intervals are scheduled\n * // with async scheduler by default...\n * intervals.pipe(\n * observeOn(animationFrameScheduler), // ...but we will observe on animationFrame\n * ) // scheduler to ensure smooth animation.\n * .subscribe(val => {\n * someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nexport function observeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction {\n return function observeOnOperatorFunction(source: Observable): Observable {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\n\nexport class ObserveOnOperator implements Operator {\n constructor(private scheduler: SchedulerLike, private delay: number = 0) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ObserveOnSubscriber extends Subscriber {\n /** @nocollapse */\n static dispatch(this: SchedulerAction, arg: ObserveOnMessage) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n\n constructor(destination: Subscriber,\n private scheduler: SchedulerLike,\n private delay: number = 0) {\n super(destination);\n }\n\n private scheduleMessage(notification: Notification): void {\n const destination = this.destination as Subscription;\n destination.add(this.scheduler.schedule(\n ObserveOnSubscriber.dispatch,\n this.delay,\n new ObserveOnMessage(notification, this.destination)\n ));\n }\n\n protected _next(value: T): void {\n this.scheduleMessage(Notification.createNext(value));\n }\n\n protected _error(err: any): void {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n }\n}\n\nexport class ObserveOnMessage {\n constructor(public notification: Notification,\n public destination: PartialObserver) {\n }\n}\n","import { Subject } from './Subject';\nimport { SchedulerLike } from './types';\nimport { queue } from './scheduler/queue';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\n/**\n * A variant of Subject that \"replays\" or emits old values to new subscribers.\n * It buffers a set number of values and will emit those values immediately to\n * any new subscribers in addition to emitting new values to existing subscribers.\n *\n * @class ReplaySubject\n */\nexport class ReplaySubject extends Subject {\n private _events: (ReplayEvent | T)[] = [];\n private _bufferSize: number;\n private _windowTime: number;\n private _infiniteTimeWindow: boolean = false;\n\n constructor(bufferSize: number = Number.POSITIVE_INFINITY,\n windowTime: number = Number.POSITIVE_INFINITY,\n private scheduler?: SchedulerLike) {\n super();\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n } else {\n this.next = this.nextTimeWindow;\n }\n }\n\n private nextInfiniteTimeWindow(value: T): void {\n const _events = this._events;\n _events.push(value);\n // Since this method is invoked in every next() call than the buffer\n // can overgrow the max size only by one item\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n\n super.next(value);\n }\n\n private nextTimeWindow(value: T): void {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n\n super.next(value);\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n // When `_infiniteTimeWindow === true` then the buffer is already trimmed\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription: Subscription;\n\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n } else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next((>_events[i]).value);\n }\n }\n\n if (this.hasError) {\n subscriber.error(this.thrownError);\n } else if (this.isStopped) {\n subscriber.complete();\n }\n\n return subscription;\n }\n\n _getNow(): number {\n return (this.scheduler || queue).now();\n }\n\n private _trimBufferThenGetEvents(): ReplayEvent[] {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = []>this._events;\n\n const eventsCount = _events.length;\n let spliceCount = 0;\n\n // Trim events that fall out of the time window.\n // Start at the front of the list. Break early once\n // we encounter an event that falls within the window.\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n\n return _events;\n }\n\n}\n\nclass ReplayEvent {\n constructor(public time: number, public value: T) {\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that only emits a value when it completes. It will emit\n * its latest value to all its observers on completion.\n *\n * @class AsyncSubject\n */\nexport class AsyncSubject extends Subject {\n private value: T = null;\n private hasNext: boolean = false;\n private hasCompleted: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return super._subscribe(subscriber);\n }\n\n next(value: T): void {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n }\n\n error(error: any): void {\n if (!this.hasCompleted) {\n super.error(error);\n }\n }\n\n complete(): void {\n this.hasCompleted = true;\n if (this.hasNext) {\n super.next(this.value);\n }\n super.complete();\n }\n}\n","let nextHandle = 1;\n\nconst tasksByHandle: { [handle: string]: () => void } = {};\n\nfunction runIfPresent(handle: number) {\n const cb = tasksByHandle[handle];\n if (cb) {\n cb();\n }\n}\n\nexport const Immediate = {\n setImmediate(cb: () => void): number {\n const handle = nextHandle++;\n tasksByHandle[handle] = cb;\n Promise.resolve().then(() => runIfPresent(handle));\n return handle;\n },\n\n clearImmediate(handle: number): void {\n delete tasksByHandle[handle];\n },\n};\n","import { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsapAction extends AsyncAction {\n\n constructor(protected scheduler: AsapScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If a microtask has already been scheduled, don't schedule another\n // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n // the current scheduled microtask id.\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(\n scheduler.flush.bind(scheduler, null)\n ));\n }\n protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested microtask and\n // set the scheduled flag to undefined so the next AsapAction will schedule\n // its own.\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AsapScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n\n this.active = true;\n this.scheduled = undefined;\n\n const {actions} = this;\n let error: any;\n let index: number = -1;\n let count: number = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * Perform task as fast as it can be performed asynchronously\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```ts\n * import { asapScheduler, asyncScheduler } from 'rxjs';\n *\n * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...\n * asapScheduler.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n * @static true\n * @name asap\n * @owner Scheduler\n */\n\nexport const asap = new AsapScheduler(AsapAction);\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n *\n * @static true\n * @name async\n * @owner Scheduler\n */\n\nexport const async = new AsyncScheduler(AsyncAction);\n","import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AnimationFrameAction extends AsyncAction {\n\n constructor(protected scheduler: AnimationFrameScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(\n () => scheduler.flush(null)));\n }\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested animation frame and\n // set the scheduled flag to undefined so the next AnimationFrameAction will\n // request its own.\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n\n this.active = true;\n this.scheduled = undefined;\n\n const {actions} = this;\n let error: any;\n let index: number = -1;\n let count: number = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n *\n * @static true\n * @name animationFrame\n * @owner Scheduler\n */\n\nexport const animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n","import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { SchedulerAction } from '../types';\n\nexport class VirtualTimeScheduler extends AsyncScheduler {\n\n protected static frameTimeFactor: number = 10;\n\n public frame: number = 0;\n public index: number = -1;\n\n constructor(SchedulerAction: typeof AsyncAction = VirtualAction as any,\n public maxFrames: number = Number.POSITIVE_INFINITY) {\n super(SchedulerAction, () => this.frame);\n }\n\n /**\n * Prompt the Scheduler to execute all of its queued actions, therefore\n * clearing its queue.\n * @return {void}\n */\n public flush(): void {\n\n const {actions, maxFrames} = this;\n let error: any, action: AsyncAction;\n\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @nodoc\n */\nexport class VirtualAction extends AsyncAction {\n\n protected active: boolean = true;\n\n constructor(protected scheduler: VirtualTimeScheduler,\n protected work: (this: SchedulerAction, state?: T) => void,\n protected index: number = scheduler.index += 1) {\n super(scheduler, work);\n this.index = scheduler.index = index;\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (!this.id) {\n return super.schedule(state, delay);\n }\n this.active = false;\n // If an action is rescheduled, we save allocations by mutating its state,\n // pushing it to the end of the scheduler queue, and recycling the action.\n // But since the VirtualTimeScheduler is used for testing, VirtualActions\n // must be immutable so they can be inspected later.\n const action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n\n protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n this.delay = scheduler.frame + delay;\n const {actions} = scheduler;\n actions.push(this);\n (actions as Array>).sort(VirtualAction.sortActions);\n return true;\n }\n\n protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n return undefined;\n }\n\n protected _execute(state: T, delay: number): any {\n if (this.active === true) {\n return super._execute(state, delay);\n }\n }\n\n public static sortActions(a: VirtualAction, b: VirtualAction) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n } else if (a.index > b.index) {\n return 1;\n } else {\n return -1;\n }\n } else if (a.delay > b.delay) {\n return 1;\n } else {\n return -1;\n }\n }\n}\n","export function identity(x: T): T {\n return x;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\n\n/**\n * Tests to see if the object is an RxJS {@link Observable}\n * @param obj the object to test\n */\nexport function isObservable(obj: any): obj is Observable {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n","export interface ArgumentOutOfRangeError extends Error {\n}\n\nexport interface ArgumentOutOfRangeErrorCtor {\n new(): ArgumentOutOfRangeError;\n}\n\nfunction ArgumentOutOfRangeErrorImpl(this: any) {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n}\n\nArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nexport const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor = ArgumentOutOfRangeErrorImpl as any;","export interface EmptyError extends Error {\n}\n\nexport interface EmptyErrorCtor {\n new(): EmptyError;\n}\n\nfunction EmptyErrorImpl(this: any) {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n}\n\nEmptyErrorImpl.prototype = Object.create(Error.prototype);\n\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n *\n * @class EmptyError\n */\nexport const EmptyError: EmptyErrorCtor = EmptyErrorImpl as any;","export interface TimeoutError extends Error {\n}\n\nexport interface TimeoutErrorCtor {\n new(): TimeoutError;\n}\n\nfunction TimeoutErrorImpl(this: any) {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n}\n\nTimeoutErrorImpl.prototype = Object.create(Error.prototype);\n\n/**\n * An error thrown when duetime elapses.\n *\n * @see {@link operators/timeout}\n *\n * @class TimeoutError\n */\nexport const TimeoutError: TimeoutErrorCtor = TimeoutErrorImpl as any;\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n * Map every click to the clientX position of that click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nexport function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction {\n return function mapOperation(source: Observable): Observable {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\n\nexport class MapOperator implements Operator {\n constructor(private project: (value: T, index: number) => R, private thisArg: any) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapSubscriber extends Subscriber {\n count: number = 0;\n private thisArg: any;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => R,\n thisArg: any) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n // NOTE: This looks unoptimized, but it's actually purposefully NOT\n // using try/catch optimizations.\n protected _next(value: T) {\n let result: any;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { SchedulerLike, SchedulerAction } from '../types';\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\n\n// tslint:disable:max-line-length\n/** @deprecated resultSelector is no longer supported, use a mapping function. */\nexport function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\n\nexport function bindCallback(callbackFunc: (...args: Array
any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable;\nexport function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable;\n\nexport function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\n// tslint:enable:max-line-length\n\n/**\n * Converts a callback API to a function that returns an Observable.\n *\n * Give it a function `f` of type `f(x, callback)` and\n * it will return a function `g` that when called as `g(x)` will output an\n * Observable.\n *\n * `bindCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters. The\n * last parameter must be a callback function that `func` calls when it is\n * done.\n *\n * The output of `bindCallback` is a function that takes the same parameters\n * as `func`, except the last one (the callback). When the output function\n * is called with arguments it will return an Observable. If function `func`\n * calls its callback with one argument, the Observable will emit that value.\n * If on the other hand the callback is called with multiple values the resulting\n * Observable will emit an array with said values as arguments.\n *\n * It is **very important** to remember that input function `func` is not called\n * when the output function is, but rather when the Observable returned by the output\n * function is subscribed. This means if `func` makes an AJAX request, that request\n * will be made every time someone subscribes to the resulting Observable, but not before.\n *\n * The last optional parameter - `scheduler` - can be used to control when the call\n * to `func` happens after someone subscribes to Observable, as well as when results\n * passed to callback will be emitted. By default, the subscription to an Observable calls `func`\n * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`,\n * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you were to use the async Scheduler\n * and call `subscribe` on the output Observable, all function calls that are currently executing\n * will end before `func` is invoked.\n *\n * By default, results passed to the callback are emitted immediately after `func` invokes the callback.\n * In particular, if the callback is called synchronously, then the subscription of the resulting Observable\n * will call the `next` function synchronously as well. If you want to defer that call,\n * you may use {@link asyncScheduler} just as before. This means that by using `Scheduler.async` you can\n * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo.\n *\n * Note that the Observable created by the output function will always emit a single value\n * and then complete immediately. If `func` calls the callback multiple times, values from subsequent\n * calls will not appear in the stream. If you need to listen for multiple calls,\n * you probably want to use {@link fromEvent} or {@link fromEventPattern} instead.\n *\n * If `func` depends on some context (`this` property) and is not already bound, the context of `func`\n * will be the context that the output function has at call time. In particular, if `func`\n * is called as a method of some objec and if `func` is not already bound, in order to preserve the context\n * it is recommended that the context of the output function is set to that object as well.\n *\n * If the input function calls its callback in the \"node style\" (i.e. first argument to callback is\n * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback}\n * provides convenient error handling and probably is a better choice.\n * `bindCallback` will treat such functions the same as any other and error parameters\n * (whether passed or not) will always be interpreted as regular callback argument.\n *\n * ## Examples\n *\n * ### Convert jQuery's getJSON to an Observable API\n * ```ts\n * import { bindCallback } from 'rxjs';\n * import * as jQuery from 'jquery';\n *\n * // Suppose we have jQuery.getJSON('/my/url', callback)\n * const getJSONAsObservable = bindCallback(jQuery.getJSON);\n * const result = getJSONAsObservable('/my/url');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Receive an array of arguments passed to a callback\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * const someFunction = (a, b, c) => {\n * console.log(a); // 5\n * console.log(b); // 'some string'\n * console.log(c); // {someProperty: 'someValue'}\n * };\n *\n * const boundSomeFunction = bindCallback(someFunction);\n * boundSomeFunction().subscribe(values => {\n * console.log(values) // [5, 'some string', {someProperty: 'someValue'}]\n * });\n * ```\n *\n * ### Compare behaviour with and without async Scheduler\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * function iCallMyCallbackSynchronously(cb) {\n * cb();\n * }\n *\n * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously);\n * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async);\n *\n * boundSyncFn().subscribe(() => console.log('I was sync!'));\n * boundAsyncFn().subscribe(() => console.log('I was async!'));\n * console.log('This happened...');\n *\n * // Logs:\n * // I was sync!\n * // This happened...\n * // I was async!\n * ```\n *\n * ### Use bindCallback on an object method\n * ```ts\n * import { bindCallback } from 'rxjs';\n *\n * const boundMethod = bindCallback(someObject.methodWithCallback);\n * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject\n * .subscribe(subscriber);\n * ```\n *\n * @see {@link bindNodeCallback}\n * @see {@link from}\n *\n * @param {function} func A function with a callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the callback would deliver.\n * @name bindCallback\n */\nexport function bindCallback(\n callbackFunc: Function,\n resultSelector?: Function|SchedulerLike,\n scheduler?: SchedulerLike\n): (...args: any[]) => Observable {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n // DEPRECATED PATH\n return (...args: any[]) => bindCallback(callbackFunc, scheduler)(...args).pipe(\n map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)),\n );\n }\n }\n\n return function (this: any, ...args: any[]): Observable {\n const context = this;\n let subject: AsyncSubject;\n const params = {\n context,\n subject,\n callbackFunc,\n scheduler,\n };\n return new Observable(subscriber => {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n const handler = (...innerArgs: any[]) => {\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n } else {\n const state: DispatchState = {\n args, subscriber, params,\n };\n return scheduler.schedule>(dispatch, 0, state);\n }\n });\n };\n}\n\ninterface DispatchState {\n args: any[];\n subscriber: Subscriber;\n params: ParamsContext;\n}\n\ninterface ParamsContext {\n callbackFunc: Function;\n scheduler: SchedulerLike;\n context: any;\n subject: AsyncSubject;\n}\n\nfunction dispatch(this: SchedulerAction>, state: DispatchState) {\n const self = this;\n const { args, subscriber, params } = state;\n const { callbackFunc, context, scheduler } = params;\n let { subject } = params;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n const handler = (...innerArgs: any[]) => {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule>(dispatchNext, 0, { value, subject }));\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n subject.error(err);\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\ninterface NextState {\n subject: AsyncSubject;\n value: T;\n}\n\nfunction dispatchNext(this: SchedulerAction>, state: NextState) {\n const { value, subject } = state;\n subject.next(value);\n subject.complete();\n}\n\ninterface ErrorState {\n subject: AsyncSubject;\n err: any;\n}\n\nfunction dispatchError(this: SchedulerAction>, state: ErrorState) {\n const { err, subject } = state;\n subject.error(err);\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; /* tslint:enable:max-line-length */\n\nexport function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n/**\n * Converts a Node.js-style callback API to a function that returns an\n * Observable.\n *\n * It's just like {@link bindCallback}, but the\n * callback is expected to be of type `callback(error, result)`.\n *\n * `bindNodeCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters, but the\n * last parameter must be a callback function that `func` calls when it is\n * done. The callback function is expected to follow Node.js conventions,\n * where the first argument to the callback is an error object, signaling\n * whether call was successful. If that object is passed to callback, it means\n * something went wrong.\n *\n * The output of `bindNodeCallback` is a function that takes the same\n * parameters as `func`, except the last one (the callback). When the output\n * function is called with arguments, it will return an Observable.\n * If `func` calls its callback with error parameter present, Observable will\n * error with that value as well. If error parameter is not passed, Observable will emit\n * second parameter. If there are more parameters (third and so on),\n * Observable will emit an array with all arguments, except first error argument.\n *\n * Note that `func` will not be called at the same time output function is,\n * but rather whenever resulting Observable is subscribed. By default call to\n * `func` will happen synchronously after subscription, but that can be changed\n * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike}\n * can also control when values from callback will be emitted by Observable.\n * To find out more, check out documentation for {@link bindCallback}, where\n * {@link SchedulerLike} works exactly the same.\n *\n * As in {@link bindCallback}, context (`this` property) of input function will be set to context\n * of returned function, when it is called.\n *\n * After Observable emits value, it will complete immediately. This means\n * even if `func` calls callback again, values from second and consecutive\n * calls will never appear on the stream. If you need to handle functions\n * that call callbacks multiple times, check out {@link fromEvent} or\n * {@link fromEventPattern} instead.\n *\n * Note that `bindNodeCallback` can be used in non-Node.js environments as well.\n * \"Node.js-style\" callbacks are just a convention, so if you write for\n * browsers or any other environment and API you use implements that callback style,\n * `bindNodeCallback` can be safely used on that API functions as well.\n *\n * Remember that Error object passed to callback does not have to be an instance\n * of JavaScript built-in `Error` object. In fact, it does not even have to an object.\n * Error parameter of callback function is interpreted as \"present\", when value\n * of that parameter is truthy. It could be, for example, non-zero number, non-empty\n * string or boolean `true`. In all of these cases resulting Observable would error\n * with that value. This means usually regular style callbacks will fail very often when\n * `bindNodeCallback` is used. If your Observable errors much more often then you\n * would expect, check if callback really is called in Node.js-style and, if not,\n * switch to {@link bindCallback} instead.\n *\n * Note that even if error parameter is technically present in callback, but its value\n * is falsy, it still won't appear in array emitted by Observable.\n *\n * ## Examples\n * ### Read a file from the filesystem and get the data as an Observable\n * ```ts\n * import * as fs from 'fs';\n * const readFileAsObservable = bindNodeCallback(fs.readFile);\n * const result = readFileAsObservable('./roadNames.txt', 'utf8');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Use on function calling callback with multiple arguments\n * ```ts\n * someFunction((err, a, b) => {\n * console.log(err); // null\n * console.log(a); // 5\n * console.log(b); // \"some string\"\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(value => {\n * console.log(value); // [5, \"some string\"]\n * });\n * ```\n *\n * ### Use on function calling callback in regular style\n * ```ts\n * someFunction(a => {\n * console.log(a); // 5\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(\n * value => {} // never gets called\n * err => console.log(err) // 5\n * );\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link from}\n *\n * @param {function} func Function with a Node.js-style callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the Node.js callback would\n * deliver.\n * @name bindNodeCallback\n */\nexport function bindNodeCallback(\n callbackFunc: Function,\n resultSelector: Function|SchedulerLike,\n scheduler?: SchedulerLike\n): (...args: any[]) => Observable {\n\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n // DEPRECATED PATH\n return (...args: any[]) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n }\n\n return function(this: any, ...args: any[]): Observable {\n const params: ParamsState = {\n subject: undefined,\n args,\n callbackFunc,\n scheduler,\n context: this,\n };\n return new Observable(subscriber => {\n const { context } = params;\n let { subject } = params;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n const handler = (...innerArgs: any[]) => {\n const err = innerArgs.shift();\n\n if (err) {\n subject.error(err);\n return;\n }\n\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n } else {\n return scheduler.schedule>(dispatch, 0, { params, subscriber, context });\n }\n });\n };\n}\n\ninterface DispatchState {\n subscriber: Subscriber;\n context: any;\n params: ParamsState;\n}\n\ninterface ParamsState {\n callbackFunc: Function;\n args: any[];\n scheduler: SchedulerLike;\n subject: AsyncSubject;\n context: any;\n}\n\nfunction dispatch(this: SchedulerAction>, state: DispatchState) {\n const { params, subscriber, context } = state;\n const { callbackFunc, args, scheduler } = params;\n let subject = params.subject;\n\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n const handler = (...innerArgs: any[]) => {\n const err = innerArgs.shift();\n if (err) {\n this.add(scheduler.schedule>(dispatchError, 0, { err, subject }));\n } else {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule>(dispatchNext, 0, { value, subject }));\n }\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n this.add(scheduler.schedule>(dispatchError, 0, { err, subject }));\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\ninterface DispatchNextArg {\n subject: AsyncSubject;\n value: T;\n}\n\nfunction dispatchNext(arg: DispatchNextArg) {\n const { value, subject } = arg;\n subject.next(value);\n subject.complete();\n}\n\ninterface DispatchErrorArg {\n subject: AsyncSubject;\n err: any;\n}\n\nfunction dispatchError(arg: DispatchErrorArg) {\n const { err, subject } = arg;\n subject.error(err);\n}\n","import { Subscriber } from './Subscriber';\nimport { InnerSubscriber } from './InnerSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this.destination.error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.destination.complete();\n }\n}\n","import { Subscriber } from './Subscriber';\nimport { OuterSubscriber } from './OuterSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class InnerSubscriber extends Subscriber {\n private index = 0;\n\n constructor(private parent: OuterSubscriber, public outerValue: T, public outerIndex: number) {\n super();\n }\n\n protected _next(value: R): void {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n\n protected _error(error: any): void {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { hostReportError } from './hostReportError';\n\nexport const subscribeToPromise = (promise: PromiseLike) => (subscriber: Subscriber) => {\n promise.then(\n (value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n },\n (err: any) => subscriber.error(err)\n )\n .then(null, hostReportError);\n return subscriber;\n};\n","export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n\n/**\n * @deprecated use {@link iterator} instead\n */\nexport const $$iterator = iterator;\n","import { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport const subscribeToIterable = (iterable: Iterable) => (subscriber: Subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n const item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n\n // Finalize the iterator if it happens to be a Generator\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n\n return subscriber;\n};\n","import { Subscriber } from '../Subscriber';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/**\n * Subscribes to an object that implements Symbol.observable with the given\n * Subscriber.\n * @param obj An object that implements Symbol.observable\n */\nexport const subscribeToObservable = (obj: any) => (subscriber: Subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n } else {\n return obs.subscribe(subscriber);\n }\n};\n","export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');","/**\n * Tests to see if the object is an ES2015 (ES6) Promise\n * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects}\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return !!value && typeof (value).subscribe !== 'function' && typeof (value as any).then === 'function';\n}\n","import { ObservableInput } from '../types';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { Subscription } from '../Subscription';\nimport { Subscriber } from '../Subscriber';\n\nexport const subscribeTo = (result: ObservableInput): (subscriber: Subscriber) => Subscription | void => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result as any);\n } else if (isArrayLike(result)) {\n return subscribeToArray(result);\n } else if (isPromise(result)) {\n return subscribeToPromise(result as Promise);\n } else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result as any);\n } else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { Subscription } from '../Subscription';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Subscriber } from '../Subscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\n\nexport function subscribeToResult(\n outerSubscriber: OuterSubscriber,\n result: any,\n outerValue?: T,\n outerIndex?: number,\n destination?: Subscriber\n): Subscription;\nexport function subscribeToResult(\n outerSubscriber: OuterSubscriber,\n result: any,\n outerValue?: T,\n outerIndex?: number,\n destination: Subscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)\n): Subscription | void {\n if (destination.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(destination);\n }\n return subscribeTo(result)(destination);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Operator } from '../Operator';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\n\nconst NONE = {};\n\n/* tslint:disable:max-line-length */\n\n// If called with a single array, it \"auto-spreads\" the array, with result selector\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(sources: [O1], resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(sources: O[], resultSelector: (...args: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable;\n\n// standard call, but with a result selector\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable;\n\n// With a scheduler (deprecated)\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest>(sources: O[], scheduler: SchedulerLike): Observable[]>;\n\n// Best case\nexport function combineLatest>(sources: [O1]): Observable<[ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput>(sources: [O1, O2]): Observable<[ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function combineLatest>(sources: O[]): Observable[]>;\n\n// Standard calls\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest>(...observables: O[]): Observable;\n\n/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */\nexport function combineLatest, R>(...observables: Array | ((...values: Array) => R)>): Observable;\n\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest>(...observables: Array): Observable;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest, R>(...observables: Array[]) => R) | SchedulerLike>): Observable;\n\n/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */\nexport function combineLatest(...observables: Array | ((...values: Array) => R) | SchedulerLike>): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.\n *\n * ![](combineLatest.png)\n *\n * `combineLatest` combines the values from all the Observables passed as\n * arguments. This is done by subscribing to each Observable in order and,\n * whenever any Observable emits, collecting an array of the most recent\n * values from each Observable. So if you pass `n` Observables to operator,\n * returned Observable will always emit an array of `n` values, in order\n * corresponding to order of passed Observables (value from the first Observable\n * on the first place and so on).\n *\n * Static version of `combineLatest` accepts either an array of Observables\n * or each Observable can be put directly as an argument. Note that array of\n * Observables is good choice, if you don't know beforehand how many Observables\n * you will combine. Passing empty array will result in Observable that\n * completes immediately.\n *\n * To ensure output array has always the same length, `combineLatest` will\n * actually wait for all input Observables to emit at least once,\n * before it starts emitting results. This means if some Observable emits\n * values before other Observables started emitting, all these values but the last\n * will be lost. On the other hand, if some Observable does not emit a value but\n * completes, resulting Observable will complete at the same moment without\n * emitting anything, since it will be now impossible to include value from\n * completed Observable in resulting array. Also, if some input Observable does\n * not emit any value and never completes, `combineLatest` will also never emit\n * and never complete, since, again, it will wait for all streams to emit some\n * value.\n *\n * If at least one Observable was passed to `combineLatest` and all passed Observables\n * emitted something, resulting Observable will complete when all combined\n * streams complete. So even if some Observable completes, result of\n * `combineLatest` will still emit values when other Observables do. In case\n * of completed Observable, its value from now on will always be the last\n * emitted value. On the other hand, if any Observable errors, `combineLatest`\n * will error immediately as well, and all other Observables will be unsubscribed.\n *\n * `combineLatest` accepts as optional parameter `project` function, which takes\n * as arguments all values that would normally be emitted by resulting Observable.\n * `project` can return any kind of value, which will be then emitted by Observable\n * instead of default array. Note that `project` does not take as argument that array\n * of values, but values themselves. That means default `project` can be imagined\n * as function that takes all its arguments and puts them into an array.\n *\n * ## Examples\n * ### Combine two timer Observables\n * ```ts\n * import { combineLatest, timer } from 'rxjs';\n *\n * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now\n * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now\n * const combinedTimers = combineLatest(firstTimer, secondTimer);\n * combinedTimers.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0] after 0.5s\n * // [1, 0] after 1s\n * // [1, 1] after 1.5s\n * // [2, 1] after 2s\n * ```\n *\n * ### Combine an array of Observables\n * ```ts\n * import { combineLatest, of } from 'rxjs';\n * import { delay, starWith } from 'rxjs/operators';\n *\n * const observables = [1, 5, 10].map(\n * n => of(n).pipe(\n * delay(n * 1000), // emit 0 and then emit n after n seconds\n * startWith(0),\n * )\n * );\n * const combined = combineLatest(observables);\n * combined.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0, 0] immediately\n * // [1, 0, 0] after 1s\n * // [1, 5, 0] after 5s\n * // [1, 5, 10] after 10s\n * ```\n *\n *\n * ### Use project function to dynamically calculate the Body-Mass Index\n * ```ts\n * import { combineLatest, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const weight = of(70, 72, 76, 79, 75);\n * const height = of(1.76, 1.77, 1.78);\n * const bmi = combineLatest(weight, height).pipe(\n * map(([w, h]) => w / (h * h)),\n * );\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n * ```\n *\n * @see {@link combineAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {ObservableInput} observable1 An input Observable to combine with other Observables.\n * @param {ObservableInput} observable2 An input Observable to combine with other Observables.\n * More than one input Observables may be given as arguments\n * or an array of Observables may be given as the first argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each input Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n */\nexport function combineLatest, R>(\n ...observables: (O | ((...values: ObservedValueOf[]) => R) | SchedulerLike)[]\n): Observable {\n let resultSelector: (...values: Array) => R = null;\n let scheduler: SchedulerLike = null;\n\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop() as SchedulerLike;\n }\n\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop() as (...values: Array) => R;\n }\n\n // if the first and only other argument besides the resultSelector is an array\n // assume it's been called with `combineLatest([obs1, obs2, obs3], resultSelector)`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0] as any;\n }\n\n return fromArray(observables, scheduler).lift(new CombineLatestOperator, R>(resultSelector));\n}\n\nexport class CombineLatestOperator implements Operator {\n constructor(private resultSelector?: (...values: Array) => R) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class CombineLatestSubscriber extends OuterSubscriber {\n private active: number = 0;\n private values: any[] = [];\n private observables: any[] = [];\n private toRespond: number;\n\n constructor(destination: Subscriber, private resultSelector?: (...values: Array) => R) {\n super(destination);\n }\n\n protected _next(observable: any) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n\n protected _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n } else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n }\n\n notifyComplete(unused: Subscriber): void {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n } else {\n this.destination.next(values.slice());\n }\n }\n }\n\n private _tryResultSelector(values: any[]) {\n let result: any;\n try {\n result = this.resultSelector.apply(this, values);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { InteropObservable, SchedulerLike, Subscribable } from '../types';\n\nexport function scheduleObservable(input: InteropObservable, scheduler: SchedulerLike) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable: Subscribable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport function schedulePromise(input: PromiseLike, scheduler: SchedulerLike) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(\n value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n },\n err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n }\n )));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport function scheduleIterable(input: Iterable, scheduler: SchedulerLike) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator: Iterator;\n sub.add(() => {\n // Finalize generators\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value: T;\n let done: boolean;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n } catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n } else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { ObservableInput, SchedulerLike, Observable } from 'rxjs';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see from\n * @see of\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled(input: ObservableInput, scheduler: SchedulerLike): Observable {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n } else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n } else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n } else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\n\nexport function from>(input: O): Observable>;\n/** @deprecated use {@link scheduled} instead. */\nexport function from>(input: O, scheduler: SchedulerLike): Observable>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * Converts almost anything to an Observable.\n *\n * ![](from.png)\n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * iterable\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * ### Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * ---\n *\n * ### Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * function* generateDoubles(seed) {\n * let i = seed;\n * while (true) {\n * yield i;\n * i = 2 * i; // double it\n * }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * ---\n *\n * ### With async scheduler\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // start\n * // end\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable}\n * @name from\n * @owner Observable\n */\nexport function from(input: ObservableInput, scheduler?: SchedulerLike): Observable {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n } else {\n return scheduled(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.\n *\n * ![](mergeMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n * Map and flatten each letter to an Observable ticking every 1 second\n * ```ts\n * import { of, interval } from 'rxjs';\n * import { mergeMap, map } from 'rxjs/operators';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n * mergeMap(x => interval(1000).pipe(map(i => x+i))),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a,b,c with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item\n * emitted by the source Observable and merging the results of the Observables\n * obtained from this transformation.\n * @method mergeMap\n * @owner Observable\n */\nexport function mergeMap>(\n project: (value: T, index: number) => O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction|R> {\n if (typeof resultSelector === 'function') {\n // DEPRECATED PATH\n return (source: Observable) => source.pipe(\n mergeMap((a, i) => from(project(a, i)).pipe(\n map((b: any, ii: number) => resultSelector(a, b, i, ii)),\n ), concurrent)\n );\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source: Observable) => source.lift(new MergeMapOperator(project, concurrent));\n}\n\nexport class MergeMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput,\n private concurrent: number = Number.POSITIVE_INFINITY) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new MergeMapSubscriber(\n observer, this.project, this.concurrent\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeMapSubscriber extends OuterSubscriber {\n private hasCompleted: boolean = false;\n private buffer: T[] = [];\n private active: number = 0;\n protected index: number = 0;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput,\n private concurrent: number = Number.POSITIVE_INFINITY) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n } else {\n this.buffer.push(value);\n }\n }\n\n protected _tryNext(value: T) {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n }\n\n private _innerSub(ish: ObservableInput, value: T, index: number): void {\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * Flattens an Observable-of-Observables.\n *\n * ![](mergeAll.png)\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map((ev) => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { take, map, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map((ev) => interval(1000).pipe(take(10))),\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nexport function mergeAll(concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction, T> {\n return mergeMap(identity, concurrent);\n}\n","\nimport { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function concatAll(): OperatorFunction, T>;\nexport function concatAll(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.\n *\n * ![](concatAll.png)\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, take, concatAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(ev => interval(1000).pipe(take(4))),\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nexport function concatAll(): OperatorFunction, T> {\n return mergeAll(1);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat>(v1: O1, scheduler: SchedulerLike): Observable>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\n\nexport function concat>(v1: O1): Observable>;\nexport function concat, O2 extends ObservableInput>(v1: O1, v2: O2): Observable | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable | ObservedValueOf | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\nexport function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>;\nexport function concat>(...observables: O[]): Observable>;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat>(...observables: (O | SchedulerLike)[]): Observable>;\nexport function concat(...observables: ObservableInput[]): Observable;\n/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */\nexport function concat(...observables: (ObservableInput | SchedulerLike)[]): Observable;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from given\n * Observable and then moves on to the next.\n *\n * Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.\n *\n * ![](concat.png)\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n * ### Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n * ```ts\n * import { concat, interval, range } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * ### Concatenate 3 Observables\n * ```ts\n * import { concat, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * ### Concatenate the same Observable to repeat it\n * ```ts\n * import { concat, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('...and it is done!')\n * );\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // \"...and it is done!\" also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n *\n * @param {ObservableInput} input1 An input Observable to concatenate with others.\n * @param {ObservableInput} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {SchedulerLike} [scheduler=null] An optional {@link SchedulerLike} to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nexport function concat, R>(...observables: Array): Observable | R> {\n return concatAll()(of(...observables));\n}\n","import { Observable } from '../Observable';\nimport { SubscribableOrPromise, ObservedValueOf, ObservableInput } from '../types';\nimport { from } from './from'; // lol\nimport { empty } from './empty';\n\n/**\n * Creates an Observable that, on subscribe, calls an Observable factory to\n * make an Observable for each new Observer.\n *\n * Creates the Observable lazily, that is, only when it\n * is subscribed.\n * \n *\n * ![](defer.png)\n *\n * `defer` allows you to create the Observable only when the Observer\n * subscribes, and create a fresh Observable for each Observer. It waits until\n * an Observer subscribes to it, and then it generates an Observable,\n * typically with an Observable factory function. It does this afresh for each\n * subscriber, so although each subscriber may think it is subscribing to the\n * same Observable, in fact each subscriber gets its own individual\n * Observable.\n *\n * ## Example\n * ### Subscribe to either an Observable of clicks or an Observable of interval, at random\n * ```ts\n * import { defer, fromEvent, interval } from 'rxjs';\n *\n * const clicksOrInterval = defer(function () {\n * return Math.random() > 0.5\n * ? fromEvent(document, 'click')\n * : interval(1000);\n * });\n * clicksOrInterval.subscribe(x => console.log(x));\n *\n * // Results in the following behavior:\n * // If the result of Math.random() is greater than 0.5 it will listen\n * // for clicks anywhere on the \"document\"; when document is clicked it\n * // will log a MouseEvent object to the console. If the result is less\n * // than 0.5 it will emit ascending numbers, one every second(1000ms).\n * ```\n *\n * @see {@link Observable}\n *\n * @param {function(): SubscribableOrPromise} observableFactory The Observable\n * factory function to invoke for each Observer that subscribes to the output\n * Observable. May also return a Promise, which will be converted on the fly\n * to an Observable.\n * @return {Observable} An Observable whose Observers' subscriptions trigger\n * an invocation of the given Observable factory function.\n * @static true\n * @name defer\n * @owner Observable\n */\nexport function defer>(observableFactory: () => O | void): Observable> {\n return new Observable>(subscriber => {\n let input: O | void;\n try {\n input = observableFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { isObservable } from '../util/isObservable';\nimport { from } from './from';\n\n/* tslint:disable:max-line-length */\n\n// forkJoin(a$, b$, c$)\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: SubscribableOrPromise): Observable<[T]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput): Observable<[T, T2]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]>;\n\n// forkJoin([a$, b$, c$]);\n// TODO(benlesh): Uncomment for TS 3.0\n// export function forkJoin(sources: []): Observable;\nexport function forkJoin(sources: [ObservableInput]): Observable<[A]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput]): Observable<[A, B]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E, F]>;\nexport function forkJoin[]>(sources: A): Observable[]>;\n\n// forkJoin({})\nexport function forkJoin(sourcesObject: {}): Observable;\nexport function forkJoin(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf }>;\n\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function forkJoin(...args: Array|Function>): Observable;\n/** @deprecated Use the version that takes an array of Observables instead */\nexport function forkJoin(...sources: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Accepts an `Array` of {@link ObservableInput} or a dictionary `Object` of {@link ObservableInput} and returns\n * an {@link Observable} that emits either an array of values in the exact same order as the passed array,\n * or a dictionary of values in the same shape as the passed dictionary.\n *\n * Wait for Observables to complete and then combine last values they emitted.\n *\n * ![](forkJoin.png)\n *\n * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array\n * or a dictionary of input observables. If no input observables are provided, resulting stream will complete\n * immediately.\n *\n * `forkJoin` will wait for all passed observables to complete and then it will emit an array or an object with last\n * values from corresponding observables.\n *\n * If you pass an array of `n` observables to the operator, resulting\n * array will have `n` values, where first value is the last thing emitted by the first observable,\n * second value is the last thing emitted by the second observable and so on.\n *\n * If you pass a dictionary of observables to the operator, resulting\n * objects will have the same keys as the dictionary passed, with their last values they've emitted\n * located at the corresponding key.\n *\n * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined\n * values not only at the end of lifecycle of passed observables, but also throughout it, try out {@link combineLatest}\n * or {@link zip} instead.\n *\n * In order for resulting array to have the same length as the number of input observables, whenever any of\n * that observables completes without emitting any value, `forkJoin` will complete at that moment as well\n * and it will not emit anything either, even if it already has some last values from other observables.\n * Conversely, if there is an observable that never completes, `forkJoin` will never complete as well,\n * unless at any point some other observable completes without emitting value, which brings us back to\n * the previous case. Overall, in order for `forkJoin` to emit a value, all observables passed as arguments\n * have to emit something at least once and complete.\n *\n * If any input observable errors at some point, `forkJoin` will error as well and all other observables\n * will be immediately unsubscribed.\n *\n * Optionally `forkJoin` accepts project function, that will be called with values which normally\n * would land in emitted array. Whatever is returned by project function, will appear in output\n * observable instead. This means that default project can be thought of as a function that takes\n * all its arguments and puts them into an array. Note that project function will be called only\n * when output observable is supposed to emit a result.\n *\n * ## Examples\n *\n * ### Use forkJoin with a dictionary of observable inputs\n * ```ts\n * import { forkJoin, of, timer } from 'rxjs';\n *\n * const observable = forkJoin({\n * foo: of(1, 2, 3, 4),\n * bar: Promise.resolve(8),\n * baz: timer(4000),\n * });\n * observable.subscribe({\n * next: value => console.log(value),\n * complete: () => console.log('This is how it ends!'),\n * });\n *\n * // Logs:\n * // { foo: 4, bar: 8, baz: 0 } after 4 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * ### Use forkJoin with an array of observable inputs\n * ```ts\n * import { forkJoin, of } from 'rxjs';\n *\n * const observable = forkJoin([\n * of(1, 2, 3, 4),\n * Promise.resolve(8),\n * timer(4000),\n * ]);\n * observable.subscribe({\n * next: value => console.log(value),\n * complete: () => console.log('This is how it ends!'),\n * });\n *\n * // Logs:\n * // [4, 8, 0] after 4 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n *\n * @param {...ObservableInput} sources Any number of Observables provided either as an array or as an arguments\n * passed directly to the operator.\n * @param {function} [project] Function that takes values emitted by input Observables and returns value\n * that will appear in resulting Observable instead of default array.\n * @return {Observable} Observable emitting either an array of last values emitted by passed Observables\n * or value from project function.\n */\nexport function forkJoin(\n ...sources: any[]\n): Observable {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n // TODO(benlesh): isObservable check will not be necessary when deprecated path is removed.\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n\n // DEPRECATED PATHS BELOW HERE\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop() as Function;\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(\n map((args: any[]) => resultSelector(...args))\n );\n }\n\n return forkJoinInternal(sources, null);\n}\n\nfunction forkJoinInternal(sources: ObservableInput[], keys: string[] | null): Observable {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\n\nconst toString: Function = Object.prototype.toString;\n\nexport interface NodeStyleEventEmitter {\n addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n}\n\nexport type NodeEventHandler = (...args: any[]) => void;\n\n// For APIs that implement `addListener` and `removeListener` methods that may\n// not use the same arguments or return EventEmitter values\n// such as React Native\nexport interface NodeCompatibleEventEmitter {\n addListener: (eventName: string, handler: NodeEventHandler) => void | {};\n removeListener: (eventName: string, handler: NodeEventHandler) => void | {};\n}\n\nexport interface JQueryStyleEventEmitter {\n on: (eventName: string, handler: Function) => void;\n off: (eventName: string, handler: Function) => void;\n}\n\nexport interface HasEventTargetAddRemove {\n addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;\n}\n\nexport type EventTargetLike = HasEventTargetAddRemove | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;\n\nexport type FromEventTarget = EventTargetLike | ArrayLike>;\n\nexport interface EventListenerOptions {\n capture?: boolean;\n passive?: boolean;\n once?: boolean;\n}\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n}\n\n/* tslint:disable:max-line-length */\nexport function fromEvent(target: FromEventTarget, eventName: string): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, resultSelector: (...args: any[]) => T): Observable;\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.\n *\n * ![](fromEvent.png)\n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * ## Examples\n * ### Emits clicks happening on the DOM document\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n * ```\n *\n * ### Use addEventListener with capture option\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter\n * // which will be passed to addEventListener\n * const clicksInDiv = fromEvent(someDivInDocument, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {FromEventTarget} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @return {Observable}\n * @name fromEvent\n */\nexport function fromEvent(\n target: FromEventTarget,\n eventName: string,\n options?: EventListenerOptions | ((...args: any[]) => T),\n resultSelector?: ((...args: any[]) => T)\n): Observable {\n\n if (isFunction(options)) {\n // DEPRECATED PATH\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEvent(target, eventName, options).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable(subscriber => {\n function handler(e: T) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n } else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions);\n });\n}\n\nfunction setupSubscription(sourceObj: FromEventTarget, eventName: string,\n handler: (...args: any[]) => void, subscriber: Subscriber,\n options?: EventListenerOptions) {\n let unsubscribe: () => void;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n } else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n } else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler as NodeEventHandler);\n unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler);\n } else if (sourceObj && (sourceObj as any).length) {\n for (let i = 0, len = (sourceObj as any).length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n } else {\n throw new TypeError('Invalid event target');\n }\n\n subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { NodeEventHandler } from './fromEvent';\nimport { map } from '../operators/map';\n\n/* tslint:disable:max-line-length */\nexport function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable from an arbitrary API for registering event handlers.\n *\n * When that method for adding event handler was something {@link fromEvent}\n * was not prepared for.\n *\n * ![](fromEventPattern.png)\n *\n * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions\n * for events. It is similar to {@link fromEvent}, but far\n * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by\n * `fromEventPattern` (although in slightly more verbose way).\n *\n * This operator accepts as a first argument an `addHandler` function, which will be injected with\n * handler parameter. That handler is actually an event handler function that you now can pass\n * to API expecting it. `addHandler` will be called whenever Observable\n * returned by the operator is subscribed, so registering handler in API will not\n * necessarily happen when `fromEventPattern` is called.\n *\n * After registration, every time an event that we listen to happens,\n * Observable returned by `fromEventPattern` will emit value that event handler\n * function was called with. Note that if event handler was called with more\n * then one argument, second and following arguments will not appear in the Observable.\n *\n * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern`\n * another function - `removeHandler` - as a second parameter. It will be injected\n * with the same handler function as before, which now you can use to unregister\n * it from the API. `removeHandler` will be called when consumer of resulting Observable\n * unsubscribes from it.\n *\n * In some APIs unregistering is actually handled differently. Method registering an event handler\n * returns some kind of token, which is later used to identify which function should\n * be unregistered or it itself has method that unregisters event handler.\n * If that is the case with your API, make sure token returned\n * by registering method is returned by `addHandler`. Then it will be passed\n * as a second argument to `removeHandler`, where you will be able to use it.\n *\n * If you need access to all event handler parameters (not only the first one),\n * or you need to transform them in any way, you can call `fromEventPattern` with optional\n * third parameter - project function which will accept all arguments passed to\n * event handler when it is called. Whatever is returned from project function will appear on\n * resulting stream instead of usual event handlers first argument. This means\n * that default project can be thought of as function that takes its first parameter\n * and ignores the rest.\n *\n * ## Example\n * ### Emits clicks happening on the DOM document\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * function addClickHandler(handler) {\n * document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n * document.removeEventListener('click', handler);\n * }\n *\n * const clicks = fromEventPattern(\n * addClickHandler,\n * removeClickHandler\n * );\n * clicks.subscribe(x => console.log(x));\n *\n * // Whenever you click anywhere in the browser, DOM MouseEvent\n * // object will be logged.\n * ```\n *\n * ## Example\n * ### Use with API that returns cancellation token\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * const token = someAPI.registerEventHandler(function() {});\n * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts\n * // not handler itself, but special token.\n *\n * const someAPIObservable = fromEventPattern(\n * function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here...\n * function(handler, token) { someAPI.unregisterEventHandler(token); } // ...to then use it here.\n * );\n * ```\n *\n * ## Example\n * ### Use with project function\n *\n * ```ts\n * import { fromEventPattern } from 'rxjs';\n *\n * someAPI.registerEventHandler((eventType, eventMessage) => {\n * console.log(eventType, eventMessage); // Logs \"EVENT_TYPE\" \"EVENT_MESSAGE\" to console.\n * });\n *\n * const someAPIObservable = fromEventPattern(\n * handler => someAPI.registerEventHandler(handler),\n * handler => someAPI.unregisterEventHandler(handler)\n * (eventType, eventMessage) => eventType + \" --- \" + eventMessage // without that function only \"EVENT_TYPE\"\n * ); // would be emitted by the Observable\n *\n * someAPIObservable.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"EVENT_TYPE --- EVENT_MESSAGE\"\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, token?: any): void} [removeHandler] A function that\n * takes a `handler` function as an argument and removes it from the event source. If `addHandler`\n * returns some kind of token, `removeHandler` function will have it as a second parameter.\n * @param {function(...args: any): T} [project] A function to\n * transform results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable} Observable which, when an event happens, emits first parameter\n * passed to registered event handler. Alternatively it emits whatever project function returns\n * at that moment.\n * @static true\n * @name fromEventPattern\n * @owner Observable\n */\n\nexport function fromEventPattern(addHandler: (handler: NodeEventHandler) => any,\n removeHandler?: (handler: NodeEventHandler, signal?: any) => void,\n resultSelector?: (...args: any[]) => T): Observable {\n\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEventPattern(addHandler, removeHandler).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable(subscriber => {\n const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e);\n\n let retValue: any;\n try {\n retValue = addHandler(handler);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n\n return () => removeHandler(handler, retValue) ;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { identity } from '../util/identity';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\n\nexport type ConditionFunc = (state: S) => boolean;\nexport type IterateFunc = (state: S) => S;\nexport type ResultFunc = (state: S) => T;\n\ninterface SchedulerState {\n needIterate?: boolean;\n state: S;\n subscriber: Subscriber;\n condition?: ConditionFunc;\n iterate: IterateFunc;\n resultSelector: ResultFunc;\n}\n\nexport interface GenerateBaseOptions {\n /**\n * Initial state.\n */\n initialState: S;\n /**\n * Condition function that accepts state and returns boolean.\n * When it returns false, the generator stops.\n * If not specified, a generator never stops.\n */\n condition?: ConditionFunc;\n /**\n * Iterate function that accepts state and returns new state.\n */\n iterate: IterateFunc;\n /**\n * SchedulerLike to use for generation process.\n * By default, a generator starts immediately.\n */\n scheduler?: SchedulerLike;\n}\n\nexport interface GenerateOptions extends GenerateBaseOptions {\n /**\n * Result selection function that accepts state and returns a value to emit.\n */\n resultSelector: ResultFunc;\n}\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate(0, x => x < 10, x => x + 1, x => x);\n *\n * @example Using asap scheduler, produces sequence of 2, 3, 5, then completes.\n * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap);\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.\n * @returns {Observable} The generated sequence.\n */\n export function generate(initialState: S,\n condition: ConditionFunc,\n iterate: IterateFunc,\n resultSelector: ResultFunc,\n scheduler?: SchedulerLike): Observable;\n\n/**\n * Generates an Observable by running a state-driven loop\n * that emits an element on each iteration.\n *\n * Use it instead of nexting values in a for loop.\n *\n * \n *\n * `generate` allows you to create stream of values generated with a loop very similar to\n * traditional for loop. First argument of `generate` is a beginning value. Second argument\n * is a function that accepts this value and tests if some condition still holds. If it does,\n * loop continues, if not, it stops. Third value is a function which takes previously defined\n * value and modifies it in some way on each iteration. Note how these three parameters\n * are direct equivalents of three expressions in regular for loop: first expression\n * initializes some state (for example numeric index), second tests if loop can make next\n * iteration (for example if index is lower than 10) and third states how defined value\n * will be modified on every step (index will be incremented by one).\n *\n * Return value of a `generate` operator is an Observable that on each loop iteration\n * emits a value. First, condition function is ran. If it returned true, Observable\n * emits currently stored value (initial value at the first iteration) and then updates\n * that value with iterate function. If at some point condition returned false, Observable\n * completes at that moment.\n *\n * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you\n * to immediately map value that would normally be emitted by an Observable.\n *\n * If you find three anonymous functions in `generate` call hard to read, you can provide\n * single object to the operator instead. That object has properties: `initialState`,\n * `condition`, `iterate` and `resultSelector`, which should have respective values that you\n * would normally pass to `generate`. `resultSelector` is still optional, but that form\n * of calling `generate` allows you to omit `condition` as well. If you omit it, that means\n * condition always holds, so output Observable will never complete.\n *\n * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call,\n * scheduler simply comes as a last argument (no matter if there is resultSelector\n * function or not). In case of single-parameter call, you can provide it as a\n * `scheduler` property on object passed to the operator. In both cases scheduler decides when\n * next iteration of the loop will happen and therefore when next value will be emitted\n * by the Observable. For example to ensure that each value is pushed to the observer\n * on separate task in event loop, you could use `async` scheduler. Note that\n * by default (when no scheduler is passed) values are simply emitted synchronously.\n *\n *\n * @example Use with condition and iterate functions.\n * const generated = generate(0, x => x < 3, x => x + 1);\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // \"Yo!\"\n *\n *\n * @example Use with condition, iterate and resultSelector functions.\n * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000);\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n *\n * @example Use with options object.\n * const generated = generate({\n * initialState: 0,\n * condition(value) { return value < 3; },\n * iterate(value) { return value + 1; },\n * resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!')\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // \"Yo!\"\n *\n * @example Use options object without condition function.\n * const generated = generate({\n * initialState: 0,\n * iterate(value) { return value + 1; },\n * resultSelector(value) { return value * 1000; }\n * });\n *\n * generated.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('Yo!') // This will never run.\n * );\n *\n * // Logs:\n * // 0\n * // 1000\n * // 2000\n * // 3000\n * // ...and never stops.\n *\n *\n * @see {@link from}\n * @see {@link index/Observable.create}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence.\n * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately.\n * @return {Observable} The generated sequence.\n */\nexport function generate(initialState: S,\n condition: ConditionFunc,\n iterate: IterateFunc,\n scheduler?: SchedulerLike): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition and scheduler.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate({\n * initialState: 0,\n * condition: x => x < 10,\n * iterate: x => x + 1,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateBaseOptions} options Object that must contain initialState, iterate and might contain condition and scheduler.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(options: GenerateBaseOptions): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition, result selector and scheduler.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate({\n * initialState: 0,\n * condition: x => x < 10,\n * iterate: x => x + 1,\n * resultSelector: x => x,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateOptions} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(options: GenerateOptions): Observable;\n\nexport function generate(initialStateOrOptions: S | GenerateOptions,\n condition?: ConditionFunc,\n iterate?: IterateFunc,\n resultSelectorOrObservable?: (ResultFunc) | SchedulerLike,\n scheduler?: SchedulerLike): Observable {\n\n let resultSelector: ResultFunc;\n let initialState: S;\n\n if (arguments.length == 1) {\n const options = initialStateOrOptions as GenerateOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity as ResultFunc;\n scheduler = options.scheduler;\n } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions as S;\n resultSelector = identity as ResultFunc;\n scheduler = resultSelectorOrObservable as SchedulerLike;\n } else {\n initialState = initialStateOrOptions as S;\n resultSelector = resultSelectorOrObservable as ResultFunc;\n }\n\n return new Observable(subscriber => {\n let state = initialState;\n if (scheduler) {\n return scheduler.schedule>(dispatch, 0, {\n subscriber,\n iterate,\n condition,\n resultSelector,\n state\n });\n }\n\n do {\n if (condition) {\n let conditionResult: boolean;\n try {\n conditionResult = condition(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n let value: T;\n try {\n value = resultSelector(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n\n return undefined;\n });\n}\n\nfunction dispatch(this: SchedulerAction>, state: SchedulerState) {\n const { subscriber, condition } = state;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } else {\n state.needIterate = true;\n }\n if (condition) {\n let conditionResult: boolean;\n try {\n conditionResult = condition(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n let value: T;\n try {\n value = state.resultSelector(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n","import { Observable } from '../Observable';\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nimport { SubscribableOrPromise } from '../types';\n\n/**\n * Decides at subscription time which Observable will actually be subscribed.\n *\n * `If` statement for Observables.\n *\n * `iif` accepts a condition function and two Observables. When\n * an Observable returned by the operator is subscribed, condition function will be called.\n * Based on what boolean it returns at that moment, consumer will subscribe either to\n * the first Observable (if condition was true) or to the second (if condition was false). Condition\n * function may also not return anything - in that case condition will be evaluated as false and\n * second Observable will be subscribed.\n *\n * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that\n * was left undefined, resulting stream will simply complete immediately. That allows you to, rather\n * then controlling which Observable will be subscribed, decide at runtime if consumer should have access\n * to given Observable or not.\n *\n * If you have more complex logic that requires decision between more than two Observables, {@link defer}\n * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}\n * and exists only for convenience and readability reasons.\n *\n *\n * ## Examples\n * ### Change at runtime which Observable will be subscribed\n * ```ts\n * import { iif, of } from 'rxjs';\n *\n * let subscribeToFirst;\n * const firstOrSecond = iif(\n * () => subscribeToFirst,\n * of('first'),\n * of('second'),\n * );\n *\n * subscribeToFirst = true;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"first\"\n *\n * subscribeToFirst = false;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"second\"\n *\n * ```\n *\n * ### Control an access to an Observable\n * ```ts\n * let accessGranted;\n * const observableIfYouHaveAccess = iif(\n * () => accessGranted,\n * of('It seems you have an access...'), // Note that only one Observable is passed to the operator.\n * );\n *\n * accessGranted = true;\n * observableIfYouHaveAccess.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"It seems you have an access...\"\n * // \"The end\"\n *\n * accessGranted = false;\n * observableIfYouHaveAccess.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"The end\"\n * ```\n *\n * @see {@link defer}\n *\n * @param {function(): boolean} condition Condition which Observable should be chosen.\n * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.\n * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.\n * @return {Observable} Either first or second Observable, depending on condition.\n * @static true\n * @name iif\n * @owner Observable\n */\nexport function iif(\n condition: () => boolean,\n trueResult: SubscribableOrPromise = EMPTY,\n falseResult: SubscribableOrPromise = EMPTY\n): Observable {\n return defer(() => condition() ? trueResult : falseResult);\n}\n","import { isArray } from './isArray';\n\nexport function isNumeric(val: any): val is number | string {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isNumeric } from '../util/isNumeric';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits sequential numbers every specified\n * interval of time, on a specified {@link SchedulerLike}.\n *\n * Emits incremental numbers periodically in time.\n * \n *\n * ![](interval.png)\n *\n * `interval` returns an Observable that emits an infinite sequence of\n * ascending integers, with a constant interval of time of your choosing\n * between those emissions. The first emission is not sent immediately, but\n * only after the first period has passed. By default, this operator uses the\n * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any\n * {@link SchedulerLike} to it.\n *\n * ## Example\n * Emits ascending numbers, one every second (1000ms) up to the number 3\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const numbers = interval(1000);\n *\n * const takeFourNumbers = numbers.pipe(take(4));\n *\n * takeFourNumbers.subscribe(x => console.log('Next: ', x));\n *\n * // Logs:\n * // Next: 0\n * // Next: 1\n * // Next: 2\n * // Next: 3\n * ```\n *\n * @see {@link timer}\n * @see {@link delay}\n *\n * @param {number} [period=0] The interval size in milliseconds (by default)\n * or the time unit determined by the scheduler's clock.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a sequential number each time\n * interval.\n * @static true\n * @name interval\n * @owner Observable\n */\nexport function interval(period = 0,\n scheduler: SchedulerLike = async): Observable {\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n\n return new Observable(subscriber => {\n subscriber.add(\n scheduler.schedule(dispatch, period, { subscriber, counter: 0, period })\n );\n return subscriber;\n });\n}\n\nfunction dispatch(this: SchedulerAction, state: IntervalState) {\n const { subscriber, counter, period } = state;\n subscriber.next(counter);\n this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n\ninterface IntervalState {\n subscriber: Subscriber;\n counter: number;\n period: number;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike} from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler: SchedulerLike): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable;\n\nexport function merge(v1: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number): Observable;\nexport function merge(...observables: (ObservableInput | number)[]): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable;\nexport function merge(...observables: (ObservableInput | number)[]): Observable;\n/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/\nexport function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * Flattens multiple Observables together by blending\n * their values into one Observable.\n *\n * ![](merge.png)\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * ### Merge together two Observables: 1s interval and clicks\n * ```ts\n * import { merge, fromEvent, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const clicksOrTimer = merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n * ```\n *\n * ### Merge together 3 Observables, but only 2 run concurrently\n * ```ts\n * import { merge, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n * const concurrent = 2; // the argument\n * const merged = merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits it's max iteration, timer2 will\n * // continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits it's max iteration it terminates, and\n * // timer3 will continue to emit a value every 500ms until it is complete\n * ```\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...ObservableInput} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nexport function merge(...observables: Array | SchedulerLike | number>): Observable {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler: SchedulerLike = null;\n let last: any = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n } else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return >observables[0];\n }\n\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\n\n/**\n * An Observable that emits no items to the Observer and never completes.\n *\n * ![](never.png)\n *\n * A simple Observable that emits neither values nor errors nor the completion\n * notification. It can be used for testing purposes or for composing with other\n * Observables. Please note that by never emitting a complete notification, this\n * Observable keeps the subscription from being disposed automatically.\n * Subscriptions need to be manually disposed.\n *\n * ## Example\n * ### Emit the number 7, then never emit anything else (not even complete)\n * ```ts\n * import { NEVER } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * function info() {\n * console.log('Will not be called');\n * }\n * const result = NEVER.pipe(startWith(7));\n * result.subscribe(x => console.log(x), info, info);\n *\n * ```\n *\n * @see {@link Observable}\n * @see {@link index/EMPTY}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const NEVER = new Observable(noop);\n\n/**\n * @deprecated Deprecated in favor of using {@link NEVER} constant.\n */\nexport function never () {\n return NEVER;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext(v: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\n\nexport function onErrorResumeNext(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function onErrorResumeNext(array: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * Execute series of Observables no matter what, even if it means swallowing errors.\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` Will subscribe to each observable source it is provided, in order.\n * If the source it's subscribed to emits an error or completes, it will move to the next source\n * without error.\n *\n * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link index/EMPTY}.\n *\n * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its\n * sources emits an error.\n *\n * Note that there is no way to handle any errors thrown by sources via the resuult of\n * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can\n * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`.\n *\n * ## Example\n * Subscribe to the next Observable after map fails\n * ```ts\n * import { onErrorResumeNext, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * onErrorResumeNext(\n * of(1, 2, 3, 0).pipe(\n * map(x => {\n * if (x === 0) throw Error();\n * return 10 / x;\n * })\n * ),\n * of(1, 2, 3),\n * )\n * .subscribe(\n * val => console.log(val),\n * err => console.log(err), // Will never be called.\n * () => console.log('done'),\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"done\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array.\n * @return {Observable} An Observable that concatenates all sources, one after the other,\n * ignoring all errors, such that any error causes it to move on to the next source.\n */\nexport function onErrorResumeNext(...sources: Array |\n Array> |\n ((...values: Array) => R)>): Observable {\n\n if (sources.length === 0) {\n return EMPTY;\n }\n\n const [ first, ...remainder ] = sources;\n\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext(...first);\n }\n\n return new Observable(subscriber => {\n const subNext = () => subscriber.add(\n onErrorResumeNext(...remainder).subscribe(subscriber)\n );\n\n return from(first).subscribe({\n next(value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\n/**\n * Convert an object into an Observable of `[key, value]` pairs.\n *\n * Turn entries of an object into a stream.\n *\n * \n *\n * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each\n * emitted array has exactly two elements - the first is a key from the object\n * and the second is a value corresponding to that key. Keys are extracted from\n * an object via `Object.keys` function, which means that they will be only\n * enumerable keys that are present on an object directly - not ones inherited\n * via prototype chain.\n *\n * By default these arrays are emitted synchronously. To change that you can\n * pass a {@link SchedulerLike} as a second argument to `pairs`.\n *\n * @example Converts a javascript object to an Observable\n * ```ts\n * import { pairs } from 'rxjs';\n *\n * const obj = {\n * foo: 42,\n * bar: 56,\n * baz: 78\n * };\n *\n * pairs(obj)\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('the end!')\n * );\n *\n * // Logs:\n * // [\"foo\", 42],\n * // [\"bar\", 56],\n * // [\"baz\", 78],\n * // \"the end!\"\n * ```\n *\n * @param {Object} obj The object to inspect and turn into an\n * Observable sequence.\n * @param {Scheduler} [scheduler] An optional IScheduler to schedule\n * when resulting Observable will emit values.\n * @returns {(Observable>)} An observable sequence of\n * [key, value] pairs from the object.\n */\nexport function pairs(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]> {\n if (!scheduler) {\n return new Observable<[string, T]>(subscriber => {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length && !subscriber.closed; i++) {\n const key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n } else {\n return new Observable<[string, T]>(subscriber => {\n const keys = Object.keys(obj);\n const subscription = new Subscription();\n subscription.add(\n scheduler.schedule<{ keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }>\n (dispatch, 0, { keys, index: 0, subscriber, subscription, obj }));\n return subscription;\n });\n }\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction,\n state: { keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }) {\n const { keys, index, subscriber, subscription, obj } = state;\n if (!subscriber.closed) {\n if (index < keys.length) {\n const key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj }));\n } else {\n subscriber.complete();\n }\n }\n}\n","export function not(pred: Function, thisArg: any): Function {\n function notPred(): any {\n return !(( notPred).pred.apply(( notPred).thisArg, arguments));\n }\n ( notPred).pred = pred;\n ( notPred).thisArg = thisArg;\n return notPred;\n}","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function filter(predicate: (value: T, index: number) => value is S,\n thisArg?: any): OperatorFunction;\nexport function filter(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.\n *\n * ![](filter.png)\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n * Emit only click events whose target was a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { filter } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => ev.target.tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nexport function filter(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction {\n return function filterOperatorFunction(source: Observable): Observable {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\n\nclass FilterOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean,\n private thisArg?: any) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FilterSubscriber extends Subscriber {\n\n count: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean,\n private thisArg: any) {\n super(destination);\n }\n\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n protected _next(value: T) {\n let result: any;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { ObservableInput } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition a set of numbers into odds and evens observables\n * ```ts\n * import { of, partition } from 'rxjs';\n *\n * const observableValues = of(1, 2, 3, 4, 5, 6);\n * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);\n *\n * odds$.subscribe(x => console.log('odds', x));\n * evens$.subscribe(x => console.log('evens', x));\n *\n * // Logs:\n * // odds 1\n * // odds 3\n * // odds 5\n * // evens 2\n * // evens 4\n * // evens 6\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable, Observable]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n */\nexport function partition(\n source: ObservableInput,\n predicate: (value: T, index: number) => boolean,\n thisArg?: any\n): [Observable, Observable] {\n return [\n filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n filter(not(predicate, thisArg) as any)(new Observable(subscribeTo(source)))\n ] as [Observable, Observable];\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic, ObservableInput } from '../types';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n// tslint:disable:max-line-length\nexport function race(arg: [ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput, ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable;\nexport function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable;\nexport function race(arg: ObservableInput[]): Observable;\nexport function race(arg: ObservableInput[]): Observable<{}>;\n\nexport function race(a: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput, c: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput): Observable;\nexport function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput, e: ObservableInput): Observable;\n// tslint:enable:max-line-length\n\nexport function race(observables: ObservableInput[]): Observable;\nexport function race(observables: ObservableInput[]): Observable<{}>;\nexport function race(...observables: ObservableInput[]): Observable;\nexport function race(...observables: ObservableInput[]): Observable<{}>;\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit an item.\n *\n * ## Example\n * ### Subscribes to the observable that was the first to start emitting.\n *\n * ```ts\n * import { race, interval } from 'rxjs';\n * import { mapTo } from 'rxjs/operators';\n *\n * const obs1 = interval(1000).pipe(mapTo('fast one'));\n * const obs2 = interval(3000).pipe(mapTo('medium one'));\n * const obs3 = interval(5000).pipe(mapTo('slow one'));\n *\n * race(obs3, obs1, obs2)\n * .subscribe(\n * winner => console.log(winner)\n * );\n *\n * // result:\n * // a series of 'fast one'\n * ```\n *\n * @param {...Observables} ...observables sources used to race for which Observable emits first.\n * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item.\n * @static true\n * @name race\n * @owner Observable\n */\nexport function race(...observables: ObservableInput[]): Observable {\n // if the only argument is an array, it was most likely called with\n // `race([obs1, obs2, ...])`\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0] as Observable[];\n } else {\n return observables[0] as Observable;\n }\n }\n\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\n\nexport class RaceOperator implements Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RaceSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class RaceSubscriber extends OuterSubscriber {\n private hasFirst: boolean = false;\n private observables: Observable[] = [];\n private subscriptions: Subscription[] = [];\n\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(observable: any): void {\n this.observables.push(observable);\n }\n\n protected _complete() {\n const observables = this.observables;\n const len = observables.length;\n\n if (len === 0) {\n this.destination.complete();\n } else {\n for (let i = 0; i < len && !this.hasFirst; i++) {\n let observable = observables[i];\n let subscription = subscribeToResult(this, observable, observable as any, i);\n\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n }\n\n notifyNext(outerValue: T, innerValue: T,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n if (!this.hasFirst) {\n this.hasFirst = true;\n\n for (let i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n let subscription = this.subscriptions[i];\n\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n\n this.subscriptions = null;\n }\n\n this.destination.next(innerValue);\n }\n}\n","import { SchedulerAction, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Creates an Observable that emits a sequence of numbers within a specified\n * range.\n *\n * Emits a sequence of numbers in a range.\n *\n * ![](range.png)\n *\n * `range` operator emits a range of sequential integers, in order, where you\n * select the `start` of the range and its `length`. By default, uses no\n * {@link SchedulerLike} and just delivers the notifications synchronously, but may use\n * an optional {@link SchedulerLike} to regulate those deliveries.\n *\n * ## Example\n * Emits the numbers 1 to 10\n * ```ts\n * import { range } from 'rxjs';\n *\n * const numbers = range(1, 10);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link timer}\n * @see {@link index/interval}\n *\n * @param {number} [start=0] The value of the first integer in the sequence.\n * @param {number} count The number of sequential integers to generate.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emissions of the notifications.\n * @return {Observable} An Observable of numbers that emits a finite range of\n * sequential integers.\n * @static true\n * @name range\n * @owner Observable\n */\nexport function range(start: number = 0,\n count?: number,\n scheduler?: SchedulerLike): Observable {\n return new Observable(subscriber => {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n\n let index = 0;\n let current = start;\n\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index, count, start, subscriber\n });\n } else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n\n return undefined;\n });\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction, state: any) {\n const { start, index, count, subscriber } = state;\n\n if (index >= count) {\n subscriber.complete();\n return;\n }\n\n subscriber.next(start);\n\n if (subscriber.closed) {\n return;\n }\n\n state.index = index + 1;\n state.start = start + 1;\n\n this.schedule(state);\n}\n","import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that starts emitting after an `dueTime` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * Its like {@link index/interval}, but you can specify when\n * should the emissions start.\n *\n * ![](timer.png)\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `dueTime`. The initial delay may be a `Date`. By default, this\n * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you\n * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * ## Examples\n * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n * ```\n *\n * ### Emits one number after five seconds\n * ```ts\n * import { timer } from 'rxjs';\n *\n * const numbers = timer(5000);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link index/interval}\n * @see {@link delay}\n *\n * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting\n * milliseconds to wait before emitting the first value of 0`.\n * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the\n * subsequent numbers.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `dueTime` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\nexport function timer(dueTime: number | Date = 0,\n periodOrScheduler?: number | SchedulerLike,\n scheduler?: SchedulerLike): Observable {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n } else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler as any;\n }\n\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? (dueTime as number)\n : (+dueTime - scheduler.now());\n\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\n\ninterface TimerState {\n index: number;\n period: number;\n subscriber: Subscriber;\n}\n\nfunction dispatch(this: SchedulerAction, state: TimerState) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n\n if (subscriber.closed) {\n return;\n } else if (period === -1) {\n return subscriber.complete();\n }\n\n state.index = index + 1;\n this.schedule(state, period);\n}\n","import { Observable } from '../Observable';\nimport { Unsubscribable, ObservableInput } from '../types';\nimport { from } from './from'; // from from from! LAWL\nimport { EMPTY } from './empty';\n\n/**\n * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.\n *\n * Use it when you catch yourself cleaning up after an Observable.\n *\n * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.\n * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with\n * that object and should return an Observable. That Observable can use resource object during its execution.\n * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor\n * resource object will be shared in any way between subscriptions.\n *\n * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed\n * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output\n * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,\n * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which\n * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone\n * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make\n * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.\n *\n * @see {@link defer}\n *\n * @param {function(): ISubscription} resourceFactory A function which creates any resource object\n * that implements `unsubscribe` method.\n * @param {function(resource: ISubscription): Observable} observableFactory A function which\n * creates an Observable, that can use injected resource object.\n * @return {Observable} An Observable that behaves the same as Observable returned by `observableFactory`, but\n * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.\n */\nexport function using(resourceFactory: () => Unsubscribable | void,\n observableFactory: (resource: Unsubscribable | void) => ObservableInput | void): Observable {\n return new Observable(subscriber => {\n let resource: Unsubscribable | void;\n\n try {\n resource = resourceFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n let result: ObservableInput | void;\n try {\n result = observableFactory(resource);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n const source = result ? from(result) : EMPTY;\n const subscription = source.subscribe(subscriber);\n return () => {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n","import { Observable } from '../Observable';\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Operator } from '../Operator';\nimport { ObservableInput, PartialObserver, ObservedValueOf } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): Observable;\n\nexport function zip, O2 extends ObservableInput>(v1: O1, v2: O2): Observable<[ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\n\nexport function zip>(array: O[]): Observable[]>;\nexport function zip(array: ObservableInput[]): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(array: ObservableInput[], resultSelector: (...values: any[]) => R): Observable;\n\nexport function zip>(...observables: O[]): Observable[]>;\nexport function zip, R>(...observables: Array[]) => R)>): Observable;\nexport function zip(...observables: Array | ((...values: Array) => R)>): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each\n * of its input Observables.\n *\n * If the last parameter is a function, this function is used to compute the created value from the input values.\n * Otherwise, an array of the input values is returned.\n *\n * ## Example\n * Combine age and name from different sources\n * ```ts\n * import { zip, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * let age$ = of(27, 25, 29);\n * let name$ = of('Foo', 'Bar', 'Beer');\n * let isDev$ = of(true, true, false);\n *\n * zip(age$, name$, isDev$).pipe(\n * map(([age, name, isDev]) => ({ age, name, isDev })),\n * )\n * .subscribe(x => console.log(x));\n *\n * // outputs\n * // { age: 27, name: 'Foo', isDev: true }\n * // { age: 25, name: 'Bar', isDev: true }\n * // { age: 29, name: 'Beer', isDev: false }\n * ```\n * @param observables\n * @return {Observable}\n * @static true\n * @name zip\n * @owner Observable\n */\nexport function zip, R>(\n ...observables: Array[]) => R)>\n): Observable[]|R> {\n const resultSelector = <((...ys: Array) => R)> observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\n\nexport class ZipOperator implements Operator {\n\n resultSelector: (...values: Array) => R;\n\n constructor(resultSelector?: (...values: Array) => R) {\n this.resultSelector = resultSelector;\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ZipSubscriber extends Subscriber {\n private values: any;\n private resultSelector: (...values: Array) => R;\n private iterators: LookAheadIterator[] = [];\n private active = 0;\n\n constructor(destination: Subscriber,\n resultSelector?: (...values: Array) => R,\n values: any = Object.create(null)) {\n super(destination);\n this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n this.values = values;\n }\n\n protected _next(value: any) {\n const iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n } else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n } else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n }\n\n protected _complete() {\n const iterators = this.iterators;\n const len = iterators.length;\n\n this.unsubscribe();\n\n if (len === 0) {\n this.destination.complete();\n return;\n }\n\n this.active = len;\n for (let i = 0; i < len; i++) {\n let iterator: ZipBufferIterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n const destination = this.destination as Subscription;\n destination.add(iterator.subscribe(iterator, i));\n } else {\n this.active--; // not an observable\n }\n }\n }\n\n notifyInactive() {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n }\n\n checkIterators() {\n const iterators = this.iterators;\n const len = iterators.length;\n const destination = this.destination;\n\n // abort if not all of them have values\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n\n let shouldComplete = false;\n const args: any[] = [];\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n let result = iterator.next();\n\n // check to see if it's completed now that you've gotten\n // the next value.\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n\n if (result.done) {\n destination.complete();\n return;\n }\n\n args.push(result.value);\n }\n\n if (this.resultSelector) {\n this._tryresultSelector(args);\n } else {\n destination.next(args);\n }\n\n if (shouldComplete) {\n destination.complete();\n }\n }\n\n protected _tryresultSelector(args: any[]) {\n let result: any;\n try {\n result = this.resultSelector.apply(this, args);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n\ninterface LookAheadIterator extends Iterator {\n hasValue(): boolean;\n hasCompleted(): boolean;\n}\n\nclass StaticIterator implements LookAheadIterator {\n private nextResult: IteratorResult;\n\n constructor(private iterator: Iterator) {\n this.nextResult = iterator.next();\n }\n\n hasValue() {\n return true;\n }\n\n next(): IteratorResult {\n const result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n }\n\n hasCompleted() {\n const nextResult = this.nextResult;\n return nextResult && nextResult.done;\n }\n}\n\nclass StaticArrayIterator implements LookAheadIterator {\n private index = 0;\n private length = 0;\n\n constructor(private array: T[]) {\n this.length = array.length;\n }\n\n [Symbol_iterator]() {\n return this;\n }\n\n next(value?: any): IteratorResult {\n const i = this.index++;\n const array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n }\n\n hasValue() {\n return this.array.length > this.index;\n }\n\n hasCompleted() {\n return this.array.length === this.index;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ZipBufferIterator extends OuterSubscriber implements LookAheadIterator {\n stillUnsubscribed = true;\n buffer: T[] = [];\n isComplete = false;\n\n constructor(destination: PartialObserver,\n private parent: ZipSubscriber,\n private observable: Observable) {\n super(destination);\n }\n\n [Symbol_iterator]() {\n return this;\n }\n\n // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n // this is legit because `next()` will never be called by a subscription in this case.\n next(): IteratorResult {\n const buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n } else {\n return { value: buffer.shift(), done: false };\n }\n }\n\n hasValue() {\n return this.buffer.length > 0;\n }\n\n hasCompleted() {\n return this.buffer.length === 0 && this.isComplete;\n }\n\n notifyComplete() {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n } else {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n }\n\n subscribe(value: any, index: number) {\n return subscribeToResult(this, this.observable, this, index);\n }\n}\n","export * from './container/index';\nexport * from './decorators/index';\nexport * from './helpers/index';\nexport * from './services/index';\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n/**\n * Ignores source values for a duration determined by another Observable, then\n * emits the most recent value from the source Observable, then repeats this\n * process.\n *\n * It's like {@link auditTime}, but the silencing\n * duration is determined by a second Observable.\n *\n * ![](audit.png)\n *\n * `audit` is similar to `throttle`, but emits the last value from the silenced\n * time window, instead of the first value. `audit` emits the most recent value\n * from the source Observable on the output Observable as soon as its internal\n * timer becomes disabled, and ignores source values while the timer is enabled.\n * Initially, the timer is disabled. As soon as the first source value arrives,\n * the timer is enabled by calling the `durationSelector` function with the\n * source value, which returns the \"duration\" Observable. When the duration\n * Observable emits a value or completes, the timer is disabled, then the most\n * recent source value is emitted on the output Observable, and this process\n * repeats for the next source value.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { audit } from 'rxjs/operators'\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(audit(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration, returned as an Observable or a Promise.\n * @return {Observable} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method audit\n * @owner Observable\n */\nexport function audit(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction {\n return function auditOperatorFunction(source: Observable) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\n\nclass AuditOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass AuditSubscriber extends OuterSubscriber {\n\n private value: T;\n private hasValue: boolean = false;\n private throttled: Subscription;\n\n constructor(destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n let duration;\n try {\n const { durationSelector } = this;\n duration = durationSelector(value);\n } catch (err) {\n return this.destination.error(err);\n }\n const innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n } else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n\n clearThrottle() {\n const { value, hasValue, throttled } = this;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n }\n\n notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number): void {\n this.clearThrottle();\n }\n\n notifyComplete(): void {\n this.clearThrottle();\n }\n}\n","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/**\n * Ignores source values for `duration` milliseconds, then emits the most recent\n * value from the source Observable, then repeats this process.\n *\n * When it sees a source value, it ignores that plus\n * the next ones for `duration` milliseconds, and then it emits the most recent\n * value from the source.\n *\n * ![](auditTime.png)\n *\n * `auditTime` is similar to `throttleTime`, but emits the last value from the\n * silenced time window, instead of the first value. `auditTime` emits the most\n * recent value from the source Observable on the output Observable as soon as\n * its internal timer becomes disabled, and ignores source values while the\n * timer is enabled. Initially, the timer is disabled. As soon as the first\n * source value arrives, the timer is enabled. After `duration` milliseconds (or\n * the time unit determined internally by the optional `scheduler`) has passed,\n * the timer is disabled, then the most recent source value is emitted on the\n * output Observable, and this process repeats for the next source value.\n * Optionally takes a {@link SchedulerLike} for managing timers.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { auditTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(auditTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} duration Time to wait before emitting the most recent source\n * value, measured in milliseconds or the time unit determined internally\n * by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the rate-limiting behavior.\n * @return {Observable} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method auditTime\n * @owner Observable\n */\nexport function auditTime(duration: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return audit(() => timer(duration, scheduler));\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Buffers the source Observable values until `closingNotifier` emits.\n *\n * Collects values from the past as an array, and emits\n * that array only when another Observable emits.\n *\n * ![](content/img/buffer.png)\n *\n * Buffers the incoming Observable values until the given `closingNotifier`\n * Observable emits a value, at which point it emits the buffer on the output\n * Observable and starts a new buffer internally, awaiting the next time\n * `closingNotifier` emits.\n *\n * ## Example\n *\n * On every click, emit array of most recent interval events\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { buffer } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const intervalEvents = interval(1000);\n * const buffered = intervalEvents.pipe(buffer(clicks));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link window}\n *\n * @param {Observable} closingNotifier An Observable that signals the\n * buffer to be emitted on the output Observable.\n * @return {Observable} An Observable of buffers, which are arrays of\n * values.\n * @method buffer\n * @owner Observable\n */\nexport function buffer(closingNotifier: Observable): OperatorFunction {\n return function bufferOperatorFunction(source: Observable) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\n\nclass BufferOperator implements Operator {\n\n constructor(private closingNotifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferSubscriber extends OuterSubscriber {\n private buffer: T[] = [];\n\n constructor(destination: Subscriber, closingNotifier: Observable) {\n super(destination);\n this.add(subscribeToResult(this, closingNotifier));\n }\n\n protected _next(value: T) {\n this.buffer.push(value);\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Buffers the source Observable values until the size hits the maximum\n * `bufferSize` given.\n *\n * Collects values from the past as an array, and emits\n * that array only when its size reaches `bufferSize`.\n *\n * ![](bufferCount.png)\n *\n * Buffers a number of values from the source Observable by `bufferSize` then\n * emits the buffer and clears it, and starts a new buffer each\n * `startBufferEvery` values. If `startBufferEvery` is not provided or is\n * `null`, then new buffers are started immediately at the start of the source\n * and when each buffer closes and is emitted.\n *\n * ## Examples\n *\n * Emit the last two click events as an array\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferCount } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * On every click, emit the last two click events as an array\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferCount } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2, 1));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link pairwise}\n * @see {@link windowCount}\n *\n * @param {number} bufferSize The maximum size of the buffer emitted.\n * @param {number} [startBufferEvery] Interval at which to start a new buffer.\n * For example if `startBufferEvery` is `2`, then a new buffer will be started\n * on every other value from the source. A new buffer is started at the\n * beginning of the source by default.\n * @return {Observable} An Observable of arrays of buffered values.\n * @method bufferCount\n * @owner Observable\n */\nexport function bufferCount(bufferSize: number, startBufferEvery: number = null): OperatorFunction {\n return function bufferCountOperatorFunction(source: Observable) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\n\nclass BufferCountOperator implements Operator {\n private subscriberClass: any;\n\n constructor(private bufferSize: number, private startBufferEvery: number) {\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n } else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferCountSubscriber extends Subscriber {\n private buffer: T[] = [];\n\n constructor(destination: Subscriber, private bufferSize: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const buffer = this.buffer;\n\n buffer.push(value);\n\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n }\n\n protected _complete(): void {\n const buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n super._complete();\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferSkipCountSubscriber extends Subscriber {\n private buffers: Array = [];\n private count: number = 0;\n\n constructor(destination: Subscriber, private bufferSize: number, private startBufferEvery: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const { bufferSize, startBufferEvery, buffers, count } = this;\n\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n\n for (let i = buffers.length; i--; ) {\n const buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n }\n\n protected _complete(): void {\n const { buffers, destination } = this;\n\n while (buffers.length > 0) {\n let buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n super._complete();\n }\n\n}\n","import { Operator } from '../Operator';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { isScheduler } from '../util/isScheduler';\nimport { OperatorFunction, SchedulerAction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction;\nexport function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction;\nexport function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Buffers the source Observable values for a specific time period.\n *\n * Collects values from the past as an array, and emits\n * those arrays periodically in time.\n *\n * ![](bufferTime.png)\n *\n * Buffers values from the source for a specific time duration `bufferTimeSpan`.\n * Unless the optional argument `bufferCreationInterval` is given, it emits and\n * resets the buffer every `bufferTimeSpan` milliseconds. If\n * `bufferCreationInterval` is given, this operator opens the buffer every\n * `bufferCreationInterval` milliseconds and closes (emits and resets) the\n * buffer every `bufferTimeSpan` milliseconds. When the optional argument\n * `maxBufferSize` is specified, the buffer will be closed either after\n * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements.\n *\n * ## Examples\n *\n * Every second, emit an array of the recent click events\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferTime(1000));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds, emit the click events from the next 2 seconds\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { bufferTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferTime(2000, 5000));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link windowTime}\n *\n * @param {number} bufferTimeSpan The amount of time to fill each buffer array.\n * @param {number} [bufferCreationInterval] The interval at which to start new\n * buffers.\n * @param {number} [maxBufferSize] The maximum buffer size.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine buffer boundaries.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferTime\n * @owner Observable\n */\nexport function bufferTime(bufferTimeSpan: number): OperatorFunction {\n let length: number = arguments.length;\n\n let scheduler: SchedulerLike = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n\n let bufferCreationInterval: number = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n\n let maxBufferSize: number = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n\n return function bufferTimeOperatorFunction(source: Observable) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\n\nclass BufferTimeOperator implements Operator {\n constructor(private bufferTimeSpan: number,\n private bufferCreationInterval: number,\n private maxBufferSize: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferTimeSubscriber(\n subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler\n ));\n }\n}\n\nclass Context {\n buffer: T[] = [];\n closeAction: Subscription;\n}\n\ninterface DispatchCreateArg {\n bufferTimeSpan: number;\n bufferCreationInterval: number;\n subscriber: BufferTimeSubscriber;\n scheduler: SchedulerLike;\n}\n\ninterface DispatchCloseArg {\n subscriber: BufferTimeSubscriber;\n context: Context;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferTimeSubscriber extends Subscriber {\n private contexts: Array> = [];\n private timespanOnly: boolean;\n\n constructor(destination: Subscriber,\n private bufferTimeSpan: number,\n private bufferCreationInterval: number,\n private maxBufferSize: number,\n private scheduler: SchedulerLike) {\n super(destination);\n const context = this.openContext();\n this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (this.timespanOnly) {\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n } else {\n const closeState = { subscriber: this, context };\n const creationState: DispatchCreateArg = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler };\n this.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, closeState));\n this.add(scheduler.schedule>(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n }\n\n protected _next(value: T) {\n const contexts = this.contexts;\n const len = contexts.length;\n let filledBufferContext: Context;\n for (let i = 0; i < len; i++) {\n const context = contexts[i];\n const buffer = context.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context;\n }\n }\n\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n }\n\n protected _error(err: any) {\n this.contexts.length = 0;\n super._error(err);\n }\n\n protected _complete() {\n const { contexts, destination } = this;\n while (contexts.length > 0) {\n const context = contexts.shift();\n destination.next(context.buffer);\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.contexts = null;\n }\n\n protected onBufferFull(context: Context) {\n this.closeContext(context);\n const closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n const bufferTimeSpan = this.bufferTimeSpan;\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n }\n\n openContext(): Context {\n const context: Context = new Context();\n this.contexts.push(context);\n return context;\n }\n\n closeContext(context: Context) {\n this.destination.next(context.buffer);\n const contexts = this.contexts;\n\n const spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n }\n}\n\nfunction dispatchBufferTimeSpanOnly(this: SchedulerAction, state: any) {\n const subscriber: BufferTimeSubscriber = state.subscriber;\n\n const prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\n\nfunction dispatchBufferCreation(this: SchedulerAction>, state: DispatchCreateArg) {\n const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state;\n const context = subscriber.openContext();\n const action = >>this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, { subscriber, context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\n\nfunction dispatchBufferClose(arg: DispatchCloseArg) {\n const { subscriber, context } = arg;\n subscriber.closeContext(context);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OperatorFunction, SubscribableOrPromise } from '../types';\n\n/**\n * Buffers the source Observable values starting from an emission from\n * `openings` and ending when the output of `closingSelector` emits.\n *\n * Collects values from the past as an array. Starts\n * collecting only when `opening` emits, and calls the `closingSelector`\n * function to get an Observable that tells when to close the buffer.\n *\n * ![](bufferToggle.png)\n *\n * Buffers values from the source by opening the buffer via signals from an\n * Observable provided to `openings`, and closing and sending the buffers when\n * a Subscribable or Promise returned by the `closingSelector` function emits.\n *\n * ## Example\n *\n * Every other second, emit the click events from the next 500ms\n *\n * ```ts\n * import { fromEvent, interval, EMPTY } from 'rxjs';\n * import { bufferToggle } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const buffered = clicks.pipe(bufferToggle(openings, i =>\n * i % 2 ? interval(500) : EMPTY\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferWhen}\n * @see {@link windowToggle}\n *\n * @param {SubscribableOrPromise} openings A Subscribable or Promise of notifications to start new\n * buffers.\n * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns a Subscribable or Promise,\n * which, when it emits, signals that the associated buffer should be emitted\n * and cleared.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferToggle\n * @owner Observable\n */\nexport function bufferToggle(\n openings: SubscribableOrPromise,\n closingSelector: (value: O) => SubscribableOrPromise\n): OperatorFunction {\n return function bufferToggleOperatorFunction(source: Observable) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\n\nclass BufferToggleOperator implements Operator {\n\n constructor(private openings: SubscribableOrPromise,\n private closingSelector: (value: O) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n }\n}\n\ninterface BufferContext {\n buffer: T[];\n subscription: Subscription;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferToggleSubscriber extends OuterSubscriber {\n private contexts: Array> = [];\n\n constructor(destination: Subscriber,\n private openings: SubscribableOrPromise,\n private closingSelector: (value: O) => SubscribableOrPromise | void) {\n super(destination);\n this.add(subscribeToResult(this, openings));\n }\n\n protected _next(value: T): void {\n const contexts = this.contexts;\n const len = contexts.length;\n for (let i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n }\n\n protected _error(err: any): void {\n const contexts = this.contexts;\n while (contexts.length > 0) {\n const context = contexts.shift();\n context.subscription.unsubscribe();\n context.buffer = null;\n context.subscription = null;\n }\n this.contexts = null;\n super._error(err);\n }\n\n protected _complete(): void {\n const contexts = this.contexts;\n while (contexts.length > 0) {\n const context = contexts.shift();\n this.destination.next(context.buffer);\n context.subscription.unsubscribe();\n context.buffer = null;\n context.subscription = null;\n }\n this.contexts = null;\n super._complete();\n }\n\n notifyNext(outerValue: any, innerValue: O,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.closeBuffer(( innerSub).context);\n }\n\n private openBuffer(value: O): void {\n try {\n const closingSelector = this.closingSelector;\n const closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n } catch (err) {\n this._error(err);\n }\n }\n\n private closeBuffer(context: BufferContext): void {\n const contexts = this.contexts;\n\n if (contexts && context) {\n const { buffer, subscription } = context;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n }\n\n private trySubscribe(closingNotifier: any): void {\n const contexts = this.contexts;\n\n const buffer: Array = [];\n const subscription = new Subscription();\n const context = { buffer, subscription };\n contexts.push(context);\n\n const innerSubscription = subscribeToResult(this, closingNotifier, context);\n\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n } else {\n ( innerSubscription).context = context;\n\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.\n *\n * ![](bufferWhen.png)\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * ## Example\n *\n * Emit an array of the last clicks every [1-5] random seconds\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { bufferWhen } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferWhen(() =>\n * interval(1000 + Math.random() * 4000)\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n */\nexport function bufferWhen(closingSelector: () => Observable): OperatorFunction {\n return function (source: Observable) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\n\nclass BufferWhenOperator implements Operator {\n\n constructor(private closingSelector: () => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferWhenSubscriber extends OuterSubscriber {\n private buffer: T[];\n private subscribing: boolean = false;\n private closingSubscription: Subscription;\n\n constructor(destination: Subscriber, private closingSelector: () => Observable) {\n super(destination);\n this.openBuffer();\n }\n\n protected _next(value: T) {\n this.buffer.push(value);\n }\n\n protected _complete() {\n const buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.buffer = null;\n this.subscribing = false;\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openBuffer();\n }\n\n notifyComplete(): void {\n if (this.subscribing) {\n this.complete();\n } else {\n this.openBuffer();\n }\n }\n\n openBuffer() {\n let { closingSubscription } = this;\n\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n\n const buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n\n this.buffer = [];\n\n let closingNotifier;\n try {\n const { closingSelector } = this;\n closingNotifier = closingSelector();\n } catch (err) {\n return this.error(err);\n }\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(subscribeToResult(this, closingNotifier));\n this.subscribing = false;\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function catchError>(selector: (err: any, caught: Observable) => O): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Catches errors on the observable to be handled by returning a new observable or throwing an error.\n *\n * ![](catch.png)\n *\n * ## Examples\n * Continues with a different Observable when there's an error\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { map, catchError } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * \t if (n === 4) {\n * \t throw 'four!';\n * }\n *\t return n;\n * }),\n * catchError(err => of('I', 'II', 'III', 'IV', 'V')),\n * )\n * .subscribe(x => console.log(x));\n * // 1, 2, 3, I, II, III, IV, V\n * ```\n *\n * Retries the caught source Observable again in case of error, similar to retry() operator\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { map, catchError, take } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * \t if (n === 4) {\n * \t throw 'four!';\n * }\n * \t return n;\n * }),\n * catchError((err, caught) => caught),\n * take(30),\n * )\n * .subscribe(x => console.log(x));\n * // 1, 2, 3, 1, 2, 3, ...\n * ```\n *\n * Throws a new error when the source Observable throws an error\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { map, catchError } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * if (n === 4) {\n * throw 'four!';\n * }\n * return n;\n * }),\n * catchError(err => {\n * throw 'error in source. Details: ' + err;\n * }),\n * )\n * .subscribe(\n * x => console.log(x),\n * err => console.log(err)\n * );\n * // 1, 2, 3, error in source. Details: four!\n * ```\n *\n * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which\n * is the source observable, in case you'd like to \"retry\" that observable by returning it again. Whatever observable\n * is returned by the `selector` will be used to continue the observable chain.\n * @return {Observable} An observable that originates from either the source or the observable returned by the\n * catch `selector` function.\n * @name catchError\n */\nexport function catchError>(\n selector: (err: any, caught: Observable) => O\n): OperatorFunction> {\n return function catchErrorOperatorFunction(source: Observable): Observable> {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught as Observable);\n };\n}\n\nclass CatchOperator implements Operator {\n caught: Observable;\n\n constructor(private selector: (err: any, caught: Observable) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass CatchSubscriber extends OuterSubscriber {\n constructor(destination: Subscriber,\n private selector: (err: any, caught: Observable) => ObservableInput,\n private caught: Observable) {\n super(destination);\n }\n\n // NOTE: overriding `error` instead of `_error` because we don't want\n // to have this flag this subscriber as `isStopped`. We can mimic the\n // behavior of the RetrySubscriber (from the `retry` operator), where\n // we unsubscribe from our source chain, reset our Subscriber flags,\n // then subscribe to the selector result.\n error(err: any) {\n if (!this.isStopped) {\n let result: any;\n try {\n result = this.selector(err, this.caught);\n } catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n }\n }\n}\n","import { CombineLatestOperator } from '../observable/combineLatest';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function combineAll(): OperatorFunction, T[]>;\nexport function combineAll(): OperatorFunction;\nexport function combineAll(project: (...values: T[]) => R): OperatorFunction, R>;\nexport function combineAll(project: (...values: Array) => R): OperatorFunction;\n/**\n * Flattens an Observable-of-Observables by applying {@link combineLatest} when the Observable-of-Observables completes.\n *\n * ![](combineAll.png)\n *\n * `combineAll` takes an Observable of Observables, and collects all Observables from it. Once the outer Observable completes,\n * it subscribes to all collected Observables and combines their values using the {@link combineLatest} strategy, such that:\n *\n * * Every time an inner Observable emits, the output Observable emits\n * * When the returned observable emits, it emits all of the latest values by:\n * * If a `project` function is provided, it is called with each recent value from each inner Observable in whatever order they\n * arrived, and the result of the `project` function is what is emitted by the output Observable.\n * * If there is no `project` function, an array of all the most recent values is emitted by the output Observable.\n *\n * ---\n *\n * ## Examples\n *\n * ### Map two click events to a finite interval Observable, then apply `combineAll`\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { map, combineAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(ev =>\n * interval(Math.random() * 2000).pipe(take(3))\n * ),\n * take(2)\n * );\n * const result = higherOrder.pipe(\n * combineAll()\n * );\n *\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link mergeAll}\n *\n * @param {function(...values: Array)} An optional function to map the most recent values from each inner Observable into a new result.\n * Takes each of the most recent values from each collected inner Observable as arguments, in order.\n * @return {Observable}\n * @name combineAll\n */\nexport function combineAll(project?: (...values: Array) => R): OperatorFunction {\n return (source: Observable) => source.lift(new CombineLatestOperator(project));\n}\n","\nimport { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\n\nconst none = {};\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(project: (v1: T) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(array: ObservableInput[]): OperatorFunction>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(array: ObservableInput[], project: (v1: T, ...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link combineLatest}.\n */\nexport function combineLatest(...observables: Array |\n Array> |\n ((...values: Array) => R)>): OperatorFunction {\n let project: (...values: Array) => R = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = <(...values: Array) => R>observables.pop();\n }\n\n // if the first and only other argument besides the resultSelector is an array\n // assume it's been called with `combineLatest([obs1, obs2, obs3], project)`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = (observables[0]).slice();\n }\n\n return (source: Observable) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project));\n}\n","import { concat as concatStatic } from '../observable/concat';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(...observables: Array | SchedulerLike>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(...observables: Array | SchedulerLike>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link concat}.\n */\nexport function concat(...observables: Array | SchedulerLike>): OperatorFunction {\n return (source: Observable) => source.lift.call(concatStatic(source, ...observables));\n}\n","import { mergeMap } from './mergeMap';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function concatMap>(project: (value: T, index: number) => O): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function concatMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function concatMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, in a serialized fashion waiting for each one to complete before\n * merging the next.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link concatAll}.\n *\n * ![](concatMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each new inner Observable is\n * concatenated with the previous inner Observable.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { concatMap, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * concatMap(ev => interval(1000).pipe(take(4)))\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link concat}\n * @see {@link concatAll}\n * @see {@link concatMapTo}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item emitted\n * by the source Observable and taking values from each projected inner\n * Observable sequentially.\n * @method concatMap\n * @owner Observable\n */\nexport function concatMap>(\n project: (value: T, index: number) => O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R\n): OperatorFunction|R> {\n return mergeMap(project, resultSelector, 1);\n}\n","import { concatMap } from './concatMap';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function concatMapTo>(observable: O): OperatorFunction>;\n/** @deprecated */\nexport function concatMapTo>(observable: O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated */\nexport function concatMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in a serialized fashion on the output Observable.\n *\n * It's like {@link concatMap}, but maps each value\n * always to the same inner Observable.\n *\n * ![](concatMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. Each new `innerObservable`\n * instance emitted on the output Observable is concatenated with the previous\n * `innerObservable` instance.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter\n * set to `1`.\n *\n * ## Example\n * For each click event, tick every second from 0 to 3, with no concurrency\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { concatMapTo, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * concatMapTo(interval(1000).pipe(take(4))),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link concat}\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link mergeMapTo}\n * @see {@link switchMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @return {Observable} An observable of values merged together by joining the\n * passed observable with itself, one after the other, for each value emitted\n * from the source.\n * @method concatMapTo\n * @owner Observable\n */\nexport function concatMapTo>(\n innerObservable: O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R\n): OperatorFunction|R> {\n return concatMap(() => innerObservable, resultSelector);\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Observer, OperatorFunction } from '../types';\nimport { Subscriber } from '../Subscriber';\n/**\n * Counts the number of emissions on the source and emits that number when the\n * source completes.\n *\n * Tells how many values were emitted, when the source\n * completes.\n *\n * ![](count.png)\n *\n * `count` transforms an Observable that emits values into an Observable that\n * emits a single value that represents the number of values emitted by the\n * source Observable. If the source Observable terminates with an error, `count`\n * will pass this error notification along without emitting a value first. If\n * the source Observable does not terminate at all, `count` will neither emit\n * a value nor terminate. This operator takes an optional `predicate` function\n * as argument, in which case the output emission will represent the number of\n * source values that matched `true` with the `predicate`.\n *\n * ## Examples\n *\n * Counts how many seconds have passed before the first click happened\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { count, takeUntil } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const secondsBeforeClick = seconds.pipe(takeUntil(clicks));\n * const result = secondsBeforeClick.pipe(count());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Counts how many odd numbers are there between 1 and 7\n * ```ts\n * import { range } from 'rxjs';\n * import { count } from 'rxjs/operators';\n *\n * const numbers = range(1, 7);\n * const result = numbers.pipe(count(i => i % 2 === 1));\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // 4\n * ```\n *\n * @see {@link max}\n * @see {@link min}\n * @see {@link reduce}\n *\n * @param {function(value: T, i: number, source: Observable): boolean} [predicate] A\n * boolean function to select what values are to be counted. It is provided with\n * arguments of:\n * - `value`: the value from the source Observable.\n * - `index`: the (zero-based) \"index\" of the value from the source Observable.\n * - `source`: the source Observable instance itself.\n * @return {Observable} An Observable of one number that represents the count as\n * described above.\n * @method count\n * @owner Observable\n */\n\nexport function count(predicate?: (value: T, index: number, source: Observable) => boolean): OperatorFunction {\n return (source: Observable) => source.lift(new CountOperator(predicate, source));\n}\n\nclass CountOperator implements Operator {\n constructor(private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass CountSubscriber extends Subscriber {\n private count: number = 0;\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (this.predicate) {\n this._tryPredicate(value);\n } else {\n this.count++;\n }\n }\n\n private _tryPredicate(value: T) {\n let result: any;\n\n try {\n result = this.predicate(value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (result) {\n this.count++;\n }\n }\n\n protected _complete(): void {\n this.destination.next(this.count);\n this.destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n/**\n * Emits a value from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.\n *\n * ![](debounce.png)\n *\n * `debounce` delays values emitted by the source Observable, but drops previous\n * pending delayed emissions if a new value arrives on the source Observable.\n * This operator keeps track of the most recent value from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The value is emitted only when the duration\n * Observable emits a value or completes, and if no other value was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * value appears before the duration Observable emits, the previous value will\n * be dropped and will not be emitted on the output Observable.\n *\n * Like {@link debounceTime}, this is a rate-limiting operator, and also a\n * delay-like operator since output emissions do not necessarily occur at the\n * same time as they did on the source Observable.\n *\n * ## Example\n * Emit the most recent click after a burst of clicks\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { debounce } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounce(() => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the timeout\n * duration for each source value, returned as an Observable or a Promise.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n * @method debounce\n * @owner Observable\n */\nexport function debounce(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DebounceOperator(durationSelector));\n}\n\nclass DebounceOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DebounceSubscriber extends OuterSubscriber {\n private value: T;\n private hasValue: boolean = false;\n private durationSubscription: Subscription = null;\n\n constructor(destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise) {\n super(destination);\n }\n\n protected _next(value: T): void {\n try {\n const result = this.durationSelector.call(this, value);\n\n if (result) {\n this._tryNext(value, result);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.emitValue();\n this.destination.complete();\n }\n\n private _tryNext(value: T, duration: SubscribableOrPromise): void {\n let subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n\n subscription = subscribeToResult(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.emitValue();\n }\n\n notifyComplete(): void {\n this.emitValue();\n }\n\n emitValue(): void {\n if (this.hasValue) {\n const value = this.value;\n const subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n // This must be done *before* passing the value\n // along to the destination because it's possible for\n // the value to synchronously re-enter this operator\n // recursively if the duration selector Observable\n // emits synchronously\n this.value = null;\n this.hasValue = false;\n super._next(value);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { async } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits a value from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * It's like {@link delay}, but passes only the most\n * recent value from each burst of emissions.\n *\n * ![](debounceTime.png)\n *\n * `debounceTime` delays values emitted by the source Observable, but drops\n * previous pending delayed emissions if a new value arrives on the source\n * Observable. This operator keeps track of the most recent value from the\n * source Observable, and emits that only when `dueTime` enough time has passed\n * without any other value appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous value will be dropped\n * and will not be emitted on the output Observable.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * value to be emitted in any time window of duration `dueTime`, but it is also\n * a delay-like operator since output emissions do not occur at the same time as\n * they did on the source Observable. Optionally takes a {@link SchedulerLike} for\n * managing timers.\n *\n * ## Example\n * Emit the most recent click after a burst of clicks\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { debounceTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounceTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} dueTime The timeout duration in milliseconds (or the time\n * unit determined internally by the optional `scheduler`) for the window of\n * time required to wait for emission silence before emitting the most recent\n * source value.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the timeout for each value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified `dueTime`, and may drop some values if they occur\n * too frequently.\n * @method debounceTime\n * @owner Observable\n */\nexport function debounceTime(dueTime: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\n\nclass DebounceTimeOperator implements Operator {\n constructor(private dueTime: number, private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DebounceTimeSubscriber extends Subscriber {\n private debouncedSubscription: Subscription = null;\n private lastValue: T = null;\n private hasValue: boolean = false;\n\n constructor(destination: Subscriber,\n private dueTime: number,\n private scheduler: SchedulerLike) {\n super(destination);\n }\n\n protected _next(value: T) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n }\n\n protected _complete() {\n this.debouncedNext();\n this.destination.complete();\n }\n\n debouncedNext(): void {\n this.clearDebounce();\n\n if (this.hasValue) {\n const { lastValue } = this;\n // This must be done *before* passing the value\n // along to the destination because it's possible for\n // the value to synchronously re-enter this operator\n // recursively when scheduled with things like\n // VirtualScheduler/TestScheduler.\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n }\n\n private clearDebounce(): void {\n const debouncedSubscription = this.debouncedSubscription;\n\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n }\n}\n\nfunction dispatchNext(subscriber: DebounceTimeSubscriber) {\n subscriber.debouncedNext();\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function defaultIfEmpty(defaultValue?: T): MonoTypeOperatorFunction;\nexport function defaultIfEmpty(defaultValue?: R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Emits a given value if the source Observable completes without emitting any\n * `next` value, otherwise mirrors the source Observable.\n *\n * If the source Observable turns out to be empty, then\n * this operator will emit a default value.\n *\n * ![](defaultIfEmpty.png)\n *\n * `defaultIfEmpty` emits the values emitted by the source Observable or a\n * specified default value if the source Observable is empty (completes without\n * having emitted any `next` value).\n *\n * ## Example\n * If no clicks happen in 5 seconds, then emit \"no clicks\"\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { defaultIfEmpty, takeUntil } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000)));\n * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link empty}\n * @see {@link last}\n *\n * @param {any} [defaultValue=null] The default value used if the source\n * Observable is empty.\n * @return {Observable} An Observable that emits either the specified\n * `defaultValue` if the source Observable emits no items, or the values emitted\n * by the source Observable.\n * @method defaultIfEmpty\n * @owner Observable\n */\nexport function defaultIfEmpty(defaultValue: R = null): OperatorFunction {\n return (source: Observable) => source.lift(new DefaultIfEmptyOperator(defaultValue)) as Observable;\n}\n\nclass DefaultIfEmptyOperator implements Operator {\n\n constructor(private defaultValue: R) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DefaultIfEmptySubscriber extends Subscriber {\n private isEmpty: boolean = true;\n\n constructor(destination: Subscriber, private defaultValue: R) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.isEmpty = false;\n this.destination.next(value);\n }\n\n protected _complete(): void {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","export function isDate(value: any): value is Date {\n return value instanceof Date && !isNaN(+value);\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Notification } from '../Notification';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Delays the emission of items from the source Observable by a given timeout or\n * until a given Date.\n *\n * Time shifts each item by some specified amount of\n * milliseconds.\n *\n * ![](delay.png)\n *\n * If the delay argument is a Number, this operator time shifts the source\n * Observable by that amount of time expressed in milliseconds. The relative\n * time intervals between the values are preserved.\n *\n * If the delay argument is a Date, this operator time shifts the start of the\n * Observable execution until the given date occurs.\n *\n * ## Examples\n * Delay each click by one second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { delay } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * Delay all clicks until a future date happens\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { delay } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const date = new Date('March 15, 2050 12:00:00'); // in the future\n * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n *\n * @param {number|Date} delay The delay duration in milliseconds (a `number`) or\n * a `Date` until which the emission of the source items is delayed.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the time-shift for each item.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified timeout or Date.\n * @method delay\n * @owner Observable\n */\nexport function delay(delay: number|Date,\n scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source: Observable) => source.lift(new DelayOperator(delayFor, scheduler));\n}\n\nclass DelayOperator implements Operator {\n constructor(private delay: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\n\ninterface DelayState {\n source: DelaySubscriber;\n destination: PartialObserver;\n scheduler: SchedulerLike;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DelaySubscriber extends Subscriber {\n private queue: Array> = [];\n private active: boolean = false;\n private errored: boolean = false;\n\n private static dispatch(this: SchedulerAction>, state: DelayState): void {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n } else {\n this.unsubscribe();\n source.active = false;\n }\n }\n\n constructor(destination: Subscriber,\n private delay: number,\n private scheduler: SchedulerLike) {\n super(destination);\n }\n\n private _schedule(scheduler: SchedulerLike): void {\n this.active = true;\n const destination = this.destination as Subscription;\n destination.add(scheduler.schedule>(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n\n private scheduleNotification(notification: Notification): void {\n if (this.errored === true) {\n return;\n }\n\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n\n protected _next(value: T) {\n this.scheduleNotification(Notification.createNext(value));\n }\n\n protected _error(err: any) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\n\nclass DelayMessage {\n constructor(public readonly time: number,\n public readonly notification: Notification) {\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */\nexport function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction;\nexport function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction;\n/* tslint:disable:max-line-length */\n\n/**\n * Delays the emission of items from the source Observable by a given time span\n * determined by the emissions of another Observable.\n *\n * It's like {@link delay}, but the time span of the\n * delay duration is determined by a second Observable.\n *\n * ![](delayWhen.png)\n *\n * `delayWhen` time shifts each emitted value from the source Observable by a\n * time span determined by another Observable. When the source emits a value,\n * the `delayDurationSelector` function is called with the source value as\n * argument, and should return an Observable, called the \"duration\" Observable.\n * The source value is emitted on the output Observable only when the duration\n * Observable emits a value or completes.\n * The completion of the notifier triggering the emission of the source value\n * is deprecated behavior and will be removed in future versions.\n *\n * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which\n * is an Observable. When `subscriptionDelay` emits its first value or\n * completes, the source Observable is subscribed to and starts behaving like\n * described in the previous paragraph. If `subscriptionDelay` is not provided,\n * `delayWhen` will subscribe to the source Observable as soon as the output\n * Observable is subscribed.\n *\n * ## Example\n * Delay each click by a random amount of time, between 0 and 5 seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { delayWhen } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(\n * delayWhen(event => interval(Math.random() * 5000)),\n * );\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link debounce}\n * @see {@link delay}\n *\n * @param {function(value: T, index: number): Observable} delayDurationSelector A function that\n * returns an Observable for each value emitted by the source Observable, which\n * is then used to delay the emission of that item on the output Observable\n * until the Observable returned from this function emits a value.\n * @param {Observable} subscriptionDelay An Observable that triggers the\n * subscription to the source Observable once it emits any value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by an amount of time specified by the Observable returned by\n * `delayDurationSelector`.\n * @method delayWhen\n * @owner Observable\n */\nexport function delayWhen(delayDurationSelector: (value: T, index: number) => Observable,\n subscriptionDelay?: Observable): MonoTypeOperatorFunction {\n if (subscriptionDelay) {\n return (source: Observable) =>\n new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n }\n return (source: Observable) => source.lift(new DelayWhenOperator(delayDurationSelector));\n}\n\nclass DelayWhenOperator implements Operator {\n constructor(private delayDurationSelector: (value: T, index: number) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DelayWhenSubscriber extends OuterSubscriber {\n private completed: boolean = false;\n private delayNotifierSubscriptions: Array = [];\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private delayDurationSelector: (value: T, index: number) => Observable) {\n super(destination);\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n const value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n }\n\n protected _next(value: T): void {\n const index = this.index++;\n try {\n const delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n }\n\n private removeSubscription(subscription: InnerSubscriber): T {\n subscription.unsubscribe();\n\n const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n\n return subscription.outerValue;\n }\n\n private tryDelay(delayNotifier: Observable, value: T): void {\n const notifierSubscription = subscribeToResult(this, delayNotifier, value);\n\n if (notifierSubscription && !notifierSubscription.closed) {\n const destination = this.destination as Subscription;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n }\n\n private tryComplete(): void {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SubscriptionDelayObservable extends Observable {\n constructor(public source: Observable, private subscriptionDelay: Observable) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SubscriptionDelaySubscriber extends Subscriber {\n private sourceSubscribed: boolean = false;\n\n constructor(private parent: Subscriber, private source: Observable) {\n super();\n }\n\n protected _next(unused: any) {\n this.subscribeToSource();\n }\n\n protected _error(err: any) {\n this.unsubscribe();\n this.parent.error(err);\n }\n\n protected _complete() {\n this.unsubscribe();\n this.subscribeToSource();\n }\n\n private subscribeToSource(): void {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n\n/**\n * Converts an Observable of {@link Notification} objects into the emissions\n * that they represent.\n *\n * Unwraps {@link Notification} objects as actual `next`,\n * `error` and `complete` emissions. The opposite of {@link materialize}.\n *\n * ![](dematerialize.png)\n *\n * `dematerialize` is assumed to operate an Observable that only emits\n * {@link Notification} objects as `next` emissions, and does not emit any\n * `error`. Such Observable is the output of a `materialize` operation. Those\n * notifications are then unwrapped using the metadata they contain, and emitted\n * as `next`, `error`, and `complete` on the output Observable.\n *\n * Use this operator in conjunction with {@link materialize}.\n *\n * ## Example\n * Convert an Observable of Notifications to an actual Observable\n * ```ts\n * import { of, Notification } from 'rxjs';\n * import { dematerialize } from 'rxjs/operators';\n *\n * const notifA = new Notification('N', 'A');\n * const notifB = new Notification('N', 'B');\n * const notifE = new Notification('E', undefined,\n * new TypeError('x.toUpperCase is not a function')\n * );\n * const materialized = of(notifA, notifB, notifE);\n * const upperCase = materialized.pipe(dematerialize());\n * upperCase.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Results in:\n * // A\n * // B\n * // TypeError: x.toUpperCase is not a function\n * ```\n *\n * @see {@link Notification}\n * @see {@link materialize}\n *\n * @return {Observable} An Observable that emits items and notifications\n * embedded in Notification objects emitted by the source Observable.\n * @method dematerialize\n * @owner Observable\n */\nexport function dematerialize(): OperatorFunction, T> {\n return function dematerializeOperatorFunction(source: Observable>) {\n return source.lift(new DeMaterializeOperator());\n };\n}\n\nclass DeMaterializeOperator, R> implements Operator {\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DeMaterializeSubscriber> extends Subscriber {\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(value: T) {\n value.observe(this.destination);\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.\n *\n * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will\n * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the\n * source observable directly with an equality check against previous values.\n *\n * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.\n *\n * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the\n * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`\n * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so\n * that the internal `Set` can be \"flushed\", basically clearing it of values.\n *\n * ## Examples\n * A simple example with numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { distinct } from 'rxjs/operators';\n *\n * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(\n * distinct(),\n * )\n * .subscribe(x => console.log(x)); // 1, 2, 3, 4\n * ```\n *\n * An example using a keySelector function\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinct } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * ).pipe(\n * distinct((p: Person) => p.name),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * ```\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [keySelector] Optional function to select which value you want to check as distinct.\n * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinct\n * @owner Observable\n */\nexport function distinct(keySelector?: (value: T) => K,\n flushes?: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DistinctOperator(keySelector, flushes));\n}\n\nclass DistinctOperator implements Operator {\n constructor(private keySelector: (value: T) => K, private flushes: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class DistinctSubscriber extends OuterSubscriber {\n private values = new Set();\n\n constructor(destination: Subscriber, private keySelector: (value: T) => K, flushes: Observable) {\n super(destination);\n\n if (flushes) {\n this.add(subscribeToResult(this, flushes));\n }\n }\n\n notifyNext(outerValue: T, innerValue: T,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.values.clear();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n protected _next(value: T): void {\n if (this.keySelector) {\n this._useKeySelector(value);\n } else {\n this._finalizeNext(value, value);\n }\n }\n\n private _useKeySelector(value: T): void {\n let key: K;\n const { destination } = this;\n try {\n key = this.keySelector(value);\n } catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n }\n\n private _finalizeNext(key: K|T, value: T) {\n const { values } = this;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n }\n\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function distinctUntilChanged(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction;\nexport function distinctUntilChanged(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.\n *\n * It's like {@link filter}, but just emits the values that are distinct from the previous.\n *\n * ![](distinctUntilChanged.png)\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n * If a comparator function is not provided, an equality check is used by default.\n *\n * ## Example\n * A simple example with numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { distinctUntilChanged } from 'rxjs/operators';\n *\n * of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4).pipe(\n * distinctUntilChanged(),\n * )\n * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4\n * ```\n *\n * An example using a compare function\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinctUntilChanged } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * { age: 6, name: 'Foo'},\n * ).pipe(\n * distinctUntilChanged((p: Person, q: Person) => p.name === q.name),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinctUntilChanged\n * @owner Observable\n */\nexport function distinctUntilChanged(compare?: (x: K, y: K) => boolean, keySelector?: (x: T) => K): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));\n}\n\nclass DistinctUntilChangedOperator implements Operator {\n constructor(private compare: (x: K, y: K) => boolean,\n private keySelector: (x: T) => K) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DistinctUntilChangedSubscriber extends Subscriber {\n private key: K;\n private hasKey: boolean = false;\n\n constructor(destination: Subscriber,\n compare: (x: K, y: K) => boolean,\n private keySelector: (x: T) => K) {\n super(destination);\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n\n private compare(x: any, y: any): boolean {\n return x === y;\n }\n\n protected _next(value: T): void {\n let key: any;\n try {\n const { keySelector } = this;\n key = keySelector ? keySelector(value) : value;\n } catch (err) {\n return this.destination.error(err);\n }\n let result = false;\n if (this.hasKey) {\n try {\n const { compare } = this;\n result = compare(this.key, key);\n } catch (err) {\n return this.destination.error(err);\n }\n } else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n }\n}\n","import { distinctUntilChanged } from './distinctUntilChanged';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction;\nexport function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item,\n * using a property accessed by using the key provided to check if the two items are distinct.\n *\n * It's like {@link distinctUntilChanged}, but the distinct comparison uses a key to access a property.\n *\n * ![](distinctUntilKeyChanged.png)\n *\n * `distinctUntilKeyChanged` emits all items of the source Observable, wich are distinct by comparison.\n * The comparison checks if the previous item is distinct from the current item, using a `key` to access a property.\n * If a comparator function is provided, then it will be called for each item with the property key\n * to test for whether or not that value should be emitted.\n *\n * ## Examples\n * An example comparing the name of persons\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinctUntilKeyChanged } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * { age: 6, name: 'Foo'},\n * ).pipe(\n * distinctUntilKeyChanged('name'),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n * ```\n *\n * An example comparing the first letters of the name\n * ```typescript\n * import { of } from 'rxjs';\n * import { distinctUntilKeyChanged } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo1'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo2'},\n * { age: 6, name: 'Foo3'},\n * ).pipe(\n * distinctUntilKeyChanged('name', (x: string, y: string) => x.substring(0, 3) === y.substring(0, 3)),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo1' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo2' }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n *\n * @param {string} key String key for object property lookup on each item.\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values based on the key specified.\n * @method distinctUntilKeyChanged\n * @owner Observable\n */\nexport function distinctUntilKeyChanged(key: K, compare?: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction {\n return distinctUntilChanged((x: T, y: T) => compare ? compare(x[key], y[key]) : x[key] === y[key]);\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { TeardownLogic, MonoTypeOperatorFunction } from '../types';\n\n/**\n * If the source observable completes without emitting a value, it will emit\n * an error. The error will be created at that time by the optional\n * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.\n *\n * ![](throwIfEmpty.png)\n *\n * ## Example\n * ```ts\n * import { fromEvent, timer } from 'rxjs';\n * import { throwIfEmpty, takeUntil } from 'rxjs/operators';\n *\n * const click$ = fromEvent(document, 'click');\n *\n * click$.pipe(\n * takeUntil(timer(1000)),\n * throwIfEmpty(\n * () => new Error('the document was not clicked within 1 second')\n * ),\n * )\n * .subscribe({\n * next() { console.log('The button was clicked'); },\n * error(err) { console.error(err); }\n * });\n * ```\n *\n * @param errorFactory A factory function called to produce the\n * error to be thrown when the source observable completes without emitting a\n * value.\n */\nexport function throwIfEmpty (errorFactory: (() => any) = defaultErrorFactory): MonoTypeOperatorFunction {\n return (source: Observable) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\n\nclass ThrowIfEmptyOperator implements Operator {\n constructor(private errorFactory: () => any) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\n\nclass ThrowIfEmptySubscriber extends Subscriber {\n private hasValue: boolean = false;\n\n constructor(destination: Subscriber, private errorFactory: () => any) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.hasValue = true;\n this.destination.next(value);\n }\n\n protected _complete() {\n if (!this.hasValue) {\n let err: any;\n try {\n err = this.errorFactory();\n } catch (e) {\n err = e;\n }\n this.destination.error(err);\n } else {\n return this.destination.complete();\n }\n }\n}\n\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * Takes the first `count` values from the source, then\n * completes.\n *\n * ![](take.png)\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * ## Example\n * Take the first 5 seconds of an infinite 1-second interval Observable\n * ```ts\n * import { interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const intervalCount = interval(1000);\n * const takeFive = intervalCount.pipe(take(5));\n * takeFive.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // 3\n * // 4\n * ```\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nexport function take(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\n\nclass TakeOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeSubscriber extends Subscriber {\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\n\n/**\n * Emits the single value at the specified `index` in a sequence of emissions\n * from the source Observable.\n *\n * Emits only the i-th value, then completes.\n *\n * ![](elementAt.png)\n *\n * `elementAt` returns an Observable that emits the item at the specified\n * `index` in the source Observable, or a default value if that `index` is out\n * of range and the `default` argument is provided. If the `default` argument is\n * not given and the `index` is out of range, the output Observable will emit an\n * `ArgumentOutOfRangeError` error.\n *\n * ## Example\n * Emit only the third click event\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { elementAt } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(elementAt(2));\n * result.subscribe(x => console.log(x));\n *\n * // Results in:\n * // click 1 = nothing\n * // click 2 = nothing\n * // click 3 = MouseEvent object logged to console\n * ```\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link skip}\n * @see {@link single}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the\n * Observable has completed before emitting the i-th `next` notification.\n *\n * @param {number} index Is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {T} [defaultValue] The default value returned for missing indices.\n * @return {Observable} An Observable that emits a single item, if it is found.\n * Otherwise, will emit the default value if given. If not, then emits an error.\n * @method elementAt\n * @owner Observable\n */\nexport function elementAt(index: number, defaultValue?: T): MonoTypeOperatorFunction {\n if (index < 0) { throw new ArgumentOutOfRangeError(); }\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n filter((v, i) => i === index),\n take(1),\n hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(() => new ArgumentOutOfRangeError()),\n );\n}\n","import { Observable } from '../Observable';\nimport { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nimport { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction;\n\nexport function endWith(v1: A): OperatorFunction;\nexport function endWith(v1: A, v2: B): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C, v4: D): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction;\nexport function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction;\nexport function endWith(...array: Z[]): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */\nexport function endWith(...array: Array): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the items you specify as arguments after it finishes emitting\n * items emitted by the source Observable.\n *\n * ![](endWith.png)\n *\n * ## Example\n * ### After the source observable completes, appends an emission and then completes too.\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { endWith } from 'rxjs/operators';\n *\n * of('hi', 'how are you?', 'sorry, I have to go now').pipe(\n * endWith('goodbye!'),\n * )\n * .subscribe(word => console.log(word));\n * // result:\n * // 'hi'\n * // 'how are you?'\n * // 'sorry, I have to go now'\n * // 'goodbye!'\n * ```\n *\n * @param {...T} values - Items you want the modified Observable to emit last.\n * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items emitted by the source Observable\n * and then emits the items in the specified Iterable.\n * @method endWith\n * @owner Observable\n */\nexport function endWith(...array: Array): MonoTypeOperatorFunction {\n return (source: Observable) => concat(source, of(...array)) as Observable;\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Observer, OperatorFunction } from '../types';\n\n/**\n * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.\n *\n * ## Example\n * A simple example emitting true if all elements are less than 5, false otherwise\n * ```ts\n * import { of } from 'rxjs';\n * import { every } from 'rxjs/operators';\n *\n * of(1, 2, 3, 4, 5, 6).pipe(\n * every(x => x < 5),\n * )\n * .subscribe(x => console.log(x)); // -> false\n * ```\n *\n * @param {function} predicate A function for determining if an item meets a specified condition.\n * @param {any} [thisArg] Optional object to use for `this` in the callback.\n * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified.\n * @method every\n * @owner Observable\n */\nexport function every(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n return (source: Observable) => source.lift(new EveryOperator(predicate, thisArg, source));\n}\n\nclass EveryOperator implements Operator {\n constructor(private predicate: (value: T, index: number, source: Observable) => boolean,\n private thisArg?: any,\n private source?: Observable) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass EverySubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate: (value: T, index: number, source: Observable) => boolean,\n private thisArg: any,\n private source?: Observable) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n private notifyComplete(everyValueMatch: boolean): void {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n }\n\n protected _next(value: T): void {\n let result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (!result) {\n this.notifyComplete(false);\n }\n }\n\n protected _complete(): void {\n this.notifyComplete(true);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, TeardownLogic } from '../types';\n\nexport function exhaust(): OperatorFunction, T>;\nexport function exhaust(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by dropping\n * inner Observables while the previous inner Observable has not yet completed.\n *\n * Flattens an Observable-of-Observables by dropping the\n * next inner Observables while the current inner is still executing.\n *\n * ![](exhaust.png)\n *\n * `exhaust` subscribes to an Observable that emits Observables, also known as a\n * higher-order Observable. Each time it observes one of these emitted inner\n * Observables, the output Observable begins emitting the items emitted by that\n * inner Observable. So far, it behaves like {@link mergeAll}. However,\n * `exhaust` ignores every new inner Observable if the previous Observable has\n * not yet completed. Once that one completes, it will accept and flatten the\n * next inner Observable and repeat this process.\n *\n * ## Example\n * Run a finite timer for each click, only if there is no currently active timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { exhaust, map, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map((ev) => interval(1000).pipe(take(5))),\n * );\n * const result = higherOrder.pipe(exhaust());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link mergeAll}\n * @see {@link exhaustMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable that takes a source of Observables and propagates the first observable\n * exclusively until it completes before subscribing to the next.\n * @method exhaust\n * @owner Observable\n */\nexport function exhaust(): OperatorFunction {\n return (source: Observable) => source.lift(new SwitchFirstOperator());\n}\n\nclass SwitchFirstOperator implements Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SwitchFirstSubscriber extends OuterSubscriber {\n private hasCompleted: boolean = false;\n private hasSubscription: boolean = false;\n\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(subscribeToResult(this, value));\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n }\n\n notifyComplete(innerSub: Subscription): void {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\n\n/* tslint:disable:max-line-length */\nexport function exhaustMap>(project: (value: T, index: number) => O): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport function exhaustMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable only if the previous projected Observable has completed.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link exhaust}.\n *\n * ![](exhaustMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. When it projects a source value to\n * an Observable, the output Observable begins emitting the items emitted by\n * that projected Observable. However, `exhaustMap` ignores every new projected\n * Observable if the previous projected Observable has not yet completed. Once\n * that one completes, it will accept and flatten the next projected Observable\n * and repeat this process.\n *\n * ## Example\n * Run a finite timer for each click, only if there is no currently active timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { exhaustMap, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * exhaustMap(ev => interval(1000).pipe(take(5)))\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaust}\n * @see {@link mergeMap}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return {Observable} An Observable containing projected Observables\n * of each item of the source, ignoring projected Observables that start before\n * their preceding Observable has completed.\n * @method exhaustMap\n * @owner Observable\n */\nexport function exhaustMap>(\n project: (value: T, index: number) => O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R,\n): OperatorFunction|R> {\n if (resultSelector) {\n // DEPRECATED PATH\n return (source: Observable) => source.pipe(\n exhaustMap((a, i) => from(project(a, i)).pipe(\n map((b: any, ii: any) => resultSelector(a, b, i, ii)),\n )),\n );\n }\n return (source: Observable) =>\n source.lift(new ExhaustMapOperator(project));\n}\n\nclass ExhaustMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ExhaustMapSubscriber extends OuterSubscriber {\n private hasSubscription = false;\n private hasCompleted = false;\n private index = 0;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n }\n\n private tryNext(value: T): void {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n }\n\n private _innerSub(result: ObservableInput, value: T, index: number): void {\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n subscribeToResult(this, result, value, index, innerSubscriber);\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(err: any): void {\n this.destination.error(err);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const destination = this.destination as Subscription;\n destination.remove(innerSub);\n\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\nexport function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Recursively projects each source value to an Observable which is merged in\n * the output Observable.\n *\n * It's similar to {@link mergeMap}, but applies the\n * projection function to every source value as well as every output value.\n * It's recursive.\n *\n * ![](expand.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger. *Expand* will re-emit on the output\n * Observable every source value. Then, each output value is given to the\n * `project` function which returns an inner Observable to be merged on the\n * output Observable. Those output values resulting from the projection are also\n * given to the `project` function to produce new output values. This is how\n * *expand* behaves recursively.\n *\n * ## Example\n * Start emitting the powers of two on every click, at most 10 of them\n * ```ts\n * import { fromEvent, of } from 'rxjs';\n * import { expand, mapTo, delay, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const powersOfTwo = clicks.pipe(\n * mapTo(1),\n * expand(x => of(2 * x).pipe(delay(1000))),\n * take(10),\n * );\n * powersOfTwo.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n *\n * @param {function(value: T, index: number) => Observable} project A function\n * that, when applied to an item emitted by the source or the output Observable,\n * returns an Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each projected inner Observable.\n * @return {Observable} An Observable that emits the source values and also\n * result of applying the projection function to each value emitted on the\n * output Observable and and merging the results of the Observables obtained\n * from this transformation.\n * @method expand\n * @owner Observable\n */\nexport function expand(project: (value: T, index: number) => ObservableInput,\n concurrent: number = Number.POSITIVE_INFINITY,\n scheduler: SchedulerLike = undefined): OperatorFunction {\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n\n return (source: Observable) => source.lift(new ExpandOperator(project, concurrent, scheduler));\n}\n\nexport class ExpandOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput,\n private concurrent: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n }\n}\n\ninterface DispatchArg {\n subscriber: ExpandSubscriber;\n result: ObservableInput;\n value: any;\n index: number;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ExpandSubscriber extends OuterSubscriber {\n private index: number = 0;\n private active: number = 0;\n private hasCompleted: boolean = false;\n private buffer: any[];\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput,\n private concurrent: number,\n private scheduler: SchedulerLike) {\n super(destination);\n if (concurrent < Number.POSITIVE_INFINITY) {\n this.buffer = [];\n }\n }\n\n private static dispatch(arg: DispatchArg): void {\n const {subscriber, result, value, index} = arg;\n subscriber.subscribeToProjection(result, value, index);\n }\n\n protected _next(value: any): void {\n const destination = this.destination;\n\n if (destination.closed) {\n this._complete();\n return;\n }\n\n const index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n const { project } = this;\n const result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n } else {\n const state: DispatchArg = { subscriber: this, result, value, index };\n const destination = this.destination as Subscription;\n destination.add(this.scheduler.schedule>(ExpandSubscriber.dispatch, 0, state));\n }\n } catch (e) {\n destination.error(e);\n }\n } else {\n this.buffer.push(value);\n }\n }\n\n private subscribeToProjection(result: any, value: T, index: number): void {\n this.active++;\n const destination = this.destination as Subscription;\n destination.add(subscribeToResult(this, result, value, index));\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this._next(innerValue);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const buffer = this.buffer;\n const destination = this.destination as Subscription;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable, but will call a specified function when\n * the source terminates on complete or error.\n * @param {function} callback Function to be called when source terminates.\n * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination.\n * @method finally\n * @owner Observable\n */\nexport function finalize(callback: () => void): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new FinallyOperator(callback));\n}\n\nclass FinallyOperator implements Operator {\n constructor(private callback: () => void) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FinallySubscriber extends Subscriber {\n constructor(destination: Subscriber, callback: () => void) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import {Observable} from '../Observable';\nimport {Operator} from '../Operator';\nimport {Subscriber} from '../Subscriber';\nimport {OperatorFunction} from '../types';\n\nexport function find(predicate: (value: T, index: number, source: Observable) => value is S,\n thisArg?: any): OperatorFunction;\nexport function find(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction;\n/**\n * Emits only the first value emitted by the source Observable that meets some\n * condition.\n *\n * Finds the first value that passes some test and emits\n * that.\n *\n * ![](find.png)\n *\n * `find` searches for the first item in the source Observable that matches the\n * specified condition embodied by the `predicate`, and returns the first\n * occurrence in the source. Unlike {@link first}, the `predicate` is required\n * in `find`, and does not emit an error if a valid value is not found.\n *\n * ## Example\n * Find and emit the first click that happens on a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { find } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(find(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link first}\n * @see {@link findIndex}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the first item that matches the\n * condition.\n * @method find\n * @owner Observable\n */\nexport function find(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return (source: Observable) => source.lift(new FindValueOperator(predicate, source, false, thisArg)) as Observable;\n}\n\nexport class FindValueOperator implements Operator {\n constructor(private predicate: (value: T, index: number, source: Observable) => boolean,\n private source: Observable,\n private yieldIndex: boolean,\n private thisArg?: any) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class FindValueSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number, source: Observable) => boolean,\n private source: Observable,\n private yieldIndex: boolean,\n private thisArg?: any) {\n super(destination);\n }\n\n private notifyComplete(value: any): void {\n const destination = this.destination;\n\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n }\n\n protected _next(value: T): void {\n const {predicate, thisArg} = this;\n const index = this.index++;\n try {\n const result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n }\n}\n","import { Observable } from '../Observable';\nimport { FindValueOperator } from '../operators/find';\nimport { OperatorFunction } from '../types';\n/**\n * Emits only the index of the first value emitted by the source Observable that\n * meets some condition.\n *\n * It's like {@link find}, but emits the index of the\n * found value, not the value itself.\n *\n * ![](findIndex.png)\n *\n * `findIndex` searches for the first item in the source Observable that matches\n * the specified condition embodied by the `predicate`, and returns the\n * (zero-based) index of the first occurrence in the source. Unlike\n * {@link first}, the `predicate` is required in `findIndex`, and does not emit\n * an error if a valid value is not found.\n *\n * ## Example\n * Emit the index of first click that happens on a DIV element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { findIndex } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link first}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the index of the first item that\n * matches the condition.\n * @method find\n * @owner Observable\n */\nexport function findIndex(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n return (source: Observable) => source.lift(new FindValueOperator(predicate, source, true, thisArg)) as Observable;\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nimport { OperatorFunction } from '../../internal/types';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\n\n/* tslint:disable:max-line-length */\nexport function first(\n predicate?: null,\n defaultValue?: D\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: S\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: D\n): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * Emits only the first value. Or emits only the first\n * value that passes some test.\n *\n * ![](first.png)\n *\n * If called with no arguments, `first` emits the first value of the source\n * Observable, then completes. If called with a `predicate` function, `first`\n * emits the first value of the source that matches the specified condition. It\n * may also take a deprecated `resultSelector` function to produce the output\n * value from the input value, and a `defaultValue` to emit in case the source\n * completes before it is able to emit a valid value. Throws an error if\n * `defaultValue` was not provided and a matching element is not found.\n *\n * ## Examples\n * Emit only the first click that happens on the DOM\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { first } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Emits the first click that happens on a DIV\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { first } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link take}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n *\n * @param {function(value: T, index: number, source: Observable): boolean} [predicate]\n * An optional function called with each item to test for condition matching.\n * @param {R} [defaultValue] The default value emitted in case no valid value\n * was found on the source.\n * @return {Observable} An Observable of the first item that matches the\n * condition.\n * @method first\n * @owner Observable\n */\nexport function first(\n predicate?: ((value: T, index: number, source: Observable) => boolean) | null,\n defaultValue?: D\n): OperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n take(1),\n hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()),\n );\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * ![](ignoreElements.png)\n *\n * ## Examples\n * ### Ignores emitted values, reacts to observable's completion.\n * ```ts\n * import { of } from 'rxjs';\n * import { ignoreElements } from 'rxjs/operators';\n *\n * of('you', 'talking', 'to', 'me').pipe(\n * ignoreElements(),\n * )\n * .subscribe(\n * word => console.log(word),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'the end'\n * ```\n * @return {Observable} An empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nexport function ignoreElements(): OperatorFunction {\n return function ignoreElementsOperatorFunction(source: Observable) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\n\nclass IgnoreElementsOperator implements Operator {\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass IgnoreElementsSubscriber extends Subscriber {\n protected _next(unused: T): void {\n // Do nothing\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Emits false if the input observable emits any values, or emits true if the\n * input observable completes without emitting any values.\n *\n * Tells whether any values are emitted by an observable\n *\n * ![](isEmpty.png)\n *\n * `isEmpty` transforms an Observable that emits values into an Observable that\n * emits a single boolean value representing whether or not any values were\n * emitted by the source Observable. As soon as the source Observable emits a\n * value, `isEmpty` will emit a `false` and complete. If the source Observable\n * completes having not emitted anything, `isEmpty` will emit a `true` and\n * complete.\n *\n * A similar effect could be achieved with {@link count}, but `isEmpty` can emit\n * a `false` value sooner.\n *\n * ## Examples\n *\n * Emit `false` for a non-empty Observable\n * ```javascript\n * import { Subject } from 'rxjs';\n * import { isEmpty } from 'rxjs/operators';\n *\n * const source = new Subject();\n * const result = source.pipe(isEmpty());\n * source.subscribe(x => console.log(x));\n * result.subscribe(x => console.log(x));\n * source.next('a');\n * source.next('b');\n * source.next('c');\n * source.complete();\n *\n * // Results in:\n * // a\n * // false\n * // b\n * // c\n * ```\n *\n * Emit `true` for an empty Observable\n * ```javascript\n * import { EMPTY } from 'rxjs';\n * import { isEmpty } from 'rxjs/operators';\n *\n * const result = EMPTY.pipe(isEmpty());\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // true\n * ```\n *\n * @see {@link count}\n * @see {@link EMPTY}\n *\n * @return {OperatorFunction} An Observable of a boolean value indicating whether observable was empty or not\n * @method isEmpty\n * @owner Observable\n */\n\nexport function isEmpty(): OperatorFunction {\n return (source: Observable) => source.lift(new IsEmptyOperator());\n}\n\nclass IsEmptyOperator implements Operator {\n call (observer: Subscriber, source: any): any {\n return source.subscribe(new IsEmptySubscriber(observer));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass IsEmptySubscriber extends Subscriber {\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n private notifyComplete(isEmpty: boolean): void {\n const destination = this.destination;\n\n destination.next(isEmpty);\n destination.complete();\n }\n\n protected _next(value: boolean) {\n this.notifyComplete(false);\n }\n\n protected _complete() {\n this.notifyComplete(true);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the last `count` values emitted by the source Observable.\n *\n * Remembers the latest `count` values, then emits those\n * only when the source completes.\n *\n * ![](takeLast.png)\n *\n * `takeLast` returns an Observable that emits at most the last `count` values\n * emitted by the source Observable. If the source emits fewer than `count`\n * values then all of its values are emitted. This operator must wait until the\n * `complete` notification emission from the source in order to emit the `next`\n * values on the output Observable, because otherwise it is impossible to know\n * whether or not more values will be emitted on the source. For this reason,\n * all values are emitted synchronously, followed by the complete notification.\n *\n * ## Example\n * Take the last 3 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { takeLast } from 'rxjs/operators';\n *\n * const many = range(1, 100);\n * const lastThree = many.pipe(takeLast(3));\n * lastThree.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of values to emit from the end of\n * the sequence of values emitted by the source Observable.\n * @return {Observable} An Observable that emits at most the last count\n * values emitted by the source Observable.\n * @method takeLast\n * @owner Observable\n */\nexport function takeLast(count: number): MonoTypeOperatorFunction {\n return function takeLastOperatorFunction(source: Observable): Observable {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\n\nclass TakeLastOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeLastSubscriber extends Subscriber {\n private ring: Array = new Array();\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n\n if (ring.length < total) {\n ring.push(value);\n } else {\n const index = count % total;\n ring[index] = value;\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n let count = this.count;\n\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n\n destination.complete();\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nimport { OperatorFunction } from '../../internal/types';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\n\n/* tslint:disable:max-line-length */\nexport function last(\n predicate?: null,\n defaultValue?: D\n): OperatorFunction;\nexport function last(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: S\n): OperatorFunction;\nexport function last(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: D\n): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits only the last item emitted by the source Observable.\n * It optionally takes a predicate function as a parameter, in which case, rather than emitting\n * the last item from the source Observable, the resulting Observable will emit the last item\n * from the source Observable that satisfies the predicate.\n *\n * ![](last.png)\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {function} [predicate] - The condition any source emitted item has to satisfy.\n * @param {any} [defaultValue] - An optional default value to provide if last\n * predicate isn't met or no values were emitted.\n * @return {Observable} An Observable that emits only the last item satisfying the given condition\n * from the source, or an NoSuchElementException if no such items are emitted.\n * @throws - Throws if no items that match the predicate are emitted by the source Observable.\n */\nexport function last(\n predicate?: ((value: T, index: number, source: Observable) => boolean) | null,\n defaultValue?: D\n): OperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n takeLast(1),\n hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()),\n );\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * Like {@link map}, but it maps every source value to\n * the same output value every time.\n *\n * ![](mapTo.png)\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * ## Example\n * Map every click to the string 'Hi'\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { mapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const greetings = clicks.pipe(mapTo('Hi'));\n * greetings.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nexport function mapTo(value: R): OperatorFunction {\n return (source: Observable) => source.lift(new MapToOperator(value));\n}\n\nclass MapToOperator implements Operator {\n\n value: R;\n\n constructor(value: R) {\n this.value = value;\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapToSubscriber extends Subscriber {\n\n value: R;\n\n constructor(destination: Subscriber, value: R) {\n super(destination);\n this.value = value;\n }\n\n protected _next(x: T) {\n this.destination.next(this.value);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n\n/**\n * Represents all of the notifications from the source Observable as `next`\n * emissions marked with their original types within {@link Notification}\n * objects.\n *\n * Wraps `next`, `error` and `complete` emissions in\n * {@link Notification} objects, emitted as `next` on the output Observable.\n * \n *\n * ![](materialize.png)\n *\n * `materialize` returns an Observable that emits a `next` notification for each\n * `next`, `error`, or `complete` emission of the source Observable. When the\n * source Observable emits `complete`, the output Observable will emit `next` as\n * a Notification of type \"complete\", and then it will emit `complete` as well.\n * When the source Observable emits `error`, the output will emit `next` as a\n * Notification of type \"error\", and then `complete`.\n *\n * This operator is useful for producing metadata of the source Observable, to\n * be consumed as `next` emissions. Use it in conjunction with\n * {@link dematerialize}.\n *\n * ## Example\n * Convert a faulty Observable to an Observable of Notifications\n * ```ts\n * import { of } from 'rxjs';\n * import { materialize, map } from 'rxjs/operators';\n *\n * const letters = of('a', 'b', 13, 'd');\n * const upperCase = letters.pipe(map(x => x.toUpperCase()));\n * const materialized = upperCase.pipe(materialize());\n * materialized.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - Notification {kind: \"N\", value: \"A\", error: undefined, hasValue: true}\n * // - Notification {kind: \"N\", value: \"B\", error: undefined, hasValue: true}\n * // - Notification {kind: \"E\", value: undefined, error: TypeError:\n * // x.toUpperCase is not a function at MapSubscriber.letters.map.x\n * // [as project] (http://1…, hasValue: false}\n * ```\n *\n * @see {@link Notification}\n * @see {@link dematerialize}\n *\n * @return {Observable>} An Observable that emits\n * {@link Notification} objects that wrap the original emissions from the source\n * Observable with metadata.\n * @method materialize\n * @owner Observable\n */\nexport function materialize(): OperatorFunction> {\n return function materializeOperatorFunction(source: Observable) {\n return source.lift(new MaterializeOperator());\n };\n}\n\nclass MaterializeOperator implements Operator> {\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MaterializeSubscriber extends Subscriber {\n constructor(destination: Subscriber>) {\n super(destination);\n }\n\n protected _next(value: T) {\n this.destination.next(Notification.createNext(value));\n }\n\n protected _error(err: any) {\n const destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n }\n\n protected _complete() {\n const destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function scan(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction;\nexport function scan(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function scan(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns each\n * intermediate result, with an optional seed value.\n *\n * It's like {@link reduce}, but emits the current\n * accumulation whenever the source emits a value.\n *\n * ![](scan.png)\n *\n * Combines together all values emitted on the source, using an accumulator\n * function that knows how to join a new source value into the accumulation from\n * the past. Is similar to {@link reduce}, but emits the intermediate\n * accumulations.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { scan, mapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const ones = clicks.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.pipe(scan((acc, one) => acc + one, seed));\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link reduce}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator\n * The accumulator function called on each source value.\n * @param {T|R} [seed] The initial accumulation value.\n * @return {Observable} An observable of the accumulated values.\n * @method scan\n * @owner Observable\n */\nexport function scan(accumulator: (acc: R, value: T, index: number) => R, seed?: T | R): OperatorFunction {\n let hasSeed = false;\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n\n return function scanOperatorFunction(source: Observable): Observable {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\n\nclass ScanOperator implements Operator {\n constructor(private accumulator: (acc: R, value: T, index: number) => R, private seed?: T | R, private hasSeed: boolean = false) {}\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ScanSubscriber extends Subscriber {\n private index: number = 0;\n\n get seed(): T | R {\n return this._seed;\n }\n\n set seed(value: T | R) {\n this.hasSeed = true;\n this._seed = value;\n }\n\n constructor(destination: Subscriber, private accumulator: (acc: R, value: T, index: number) => R, private _seed: T | R,\n private hasSeed: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n } else {\n return this._tryNext(value);\n }\n }\n\n private _tryNext(value: T): void {\n const index = this.index++;\n let result: any;\n try {\n result = this.accumulator(this.seed, value, index);\n } catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nimport { pipe } from '../util/pipe';\n\n/* tslint:disable:max-line-length */\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction;\nexport function reduce(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns the\n * accumulated result when the source completes, given an optional seed value.\n *\n * Combines together all values emitted on the source,\n * using an accumulator function that knows how to join a new source value into\n * the accumulation from the past.\n *\n * ![](reduce.png)\n *\n * Like\n * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),\n * `reduce` applies an `accumulator` function against an accumulation and each\n * value of the source Observable (from the past) to reduce it to a single\n * value, emitted on the output Observable. Note that `reduce` will only emit\n * one value, only when the source Observable completes. It is equivalent to\n * applying operator {@link scan} followed by operator {@link last}.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events that happened in 5 seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { reduce, takeUntil, mapTo } from 'rxjs/operators';\n *\n * const clicksInFiveSeconds = fromEvent(document, 'click').pipe(\n * takeUntil(interval(5000)),\n * );\n * const ones = clicksInFiveSeconds.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.pipe(reduce((acc, one) => acc + one, seed));\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link count}\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link scan}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function\n * called on each source value.\n * @param {R} [seed] The initial accumulation value.\n * @return {Observable} An Observable that emits a single value that is the\n * result of accumulating the values emitted by the source Observable.\n * @method reduce\n * @owner Observable\n */\nexport function reduce(accumulator: (acc: T | R, value: T, index?: number) => T | R, seed?: T | R): OperatorFunction {\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source: Observable): Observable {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source: Observable): Observable {\n return pipe(\n scan((acc, value, index) => accumulator(acc, value, index + 1)),\n takeLast(1),\n )(source);\n };\n}\n","import { reduce } from './reduce';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the largest value.\n *\n * ![](max.png)\n *\n * ## Examples\n * Get the maximal value of a series of numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { max } from 'rxjs/operators';\n *\n * of(5, 4, 7, 2, 8).pipe(\n * max(),\n * )\n * .subscribe(x => console.log(x)); // -> 8\n * ```\n *\n * Use a comparer function to get the maximal item\n * ```typescript\n * import { of } from 'rxjs';\n * import { max } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n * of(\n * {age: 7, name: 'Foo'},\n * {age: 5, name: 'Bar'},\n * {age: 9, name: 'Beer'},\n * ).pipe(\n * max((a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer'\n * ```\n *\n * @see {@link min}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the largest value.\n * @method max\n * @owner Observable\n */\nexport function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction {\n const max: (x: T, y: T) => T = (typeof comparer === 'function')\n ? (x, y) => comparer(x, y) > 0 ? x : y\n : (x, y) => x > y ? x : y;\n\n return reduce(max);\n}\n","import { merge as mergeStatic } from '../observable/merge';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(...observables: Array | SchedulerLike | number>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(...observables: Array | SchedulerLike | number>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link merge}.\n */\nexport function merge(...observables: Array | SchedulerLike | number>): OperatorFunction {\n return (source: Observable) => source.lift.call(mergeStatic(source, ...observables));\n}\n","import { Observable } from '../Observable';\nimport { OperatorFunction, ObservedValueOf } from '../../internal/types';\nimport { mergeMap } from './mergeMap';\nimport { ObservableInput } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function mergeMapTo>(innerObservable: O, concurrent?: number): OperatorFunction>;\n/** @deprecated */\nexport function mergeMapTo>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in the output Observable.\n *\n * It's like {@link mergeMap}, but maps each value always\n * to the same inner Observable.\n *\n * ![](mergeMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then merges those resulting Observables into one\n * single Observable, which is the output Observable.\n *\n * ## Example\n * For each click event, start an interval Observable ticking every 1 second\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { mergeMapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(mergeMapTo(interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMapTo}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n * @see {@link switchMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable`\n * @method mergeMapTo\n * @owner Observable\n */\nexport function mergeMapTo>(\n innerObservable: O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction|R> {\n if (typeof resultSelector === 'function') {\n return mergeMap(() => innerObservable, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(() => innerObservable, concurrent);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/**\n * Applies an accumulator function over the source Observable where the\n * accumulator function itself returns an Observable, then each intermediate\n * Observable returned is merged into the output Observable.\n *\n * It's like {@link scan}, but the Observables returned\n * by the accumulator are merged into the outer Observable.\n *\n * ## Example\n * Count the number of click events\n * ```ts\n * import { fromEvent, of } from 'rxjs';\n * import { mapTo, mergeScan } from 'rxjs/operators';\n *\n * const click$ = fromEvent(document, 'click');\n * const one$ = click$.pipe(mapTo(1));\n * const seed = 0;\n * const count$ = one$.pipe(\n * mergeScan((acc, one) => of(acc + one), seed),\n * );\n * count$.subscribe(x => console.log(x));\n *\n * // Results:\n * // 1\n * // 2\n * // 3\n * // 4\n * // ...and so on for each click\n * ```\n *\n * @param {function(acc: R, value: T): Observable} accumulator\n * The accumulator function called on each source value.\n * @param seed The initial accumulation value.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of\n * input Observables being subscribed to concurrently.\n * @return {Observable} An observable of the accumulated values.\n * @method mergeScan\n * @owner Observable\n */\nexport function mergeScan(accumulator: (acc: R, value: T, index: number) => ObservableInput,\n seed: R,\n concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction {\n return (source: Observable) => source.lift(new MergeScanOperator(accumulator, seed, concurrent));\n}\n\nexport class MergeScanOperator implements Operator {\n constructor(private accumulator: (acc: R, value: T, index: number) => ObservableInput,\n private seed: R,\n private concurrent: number) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MergeScanSubscriber(\n subscriber, this.accumulator, this.seed, this.concurrent\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeScanSubscriber extends OuterSubscriber {\n private hasValue: boolean = false;\n private hasCompleted: boolean = false;\n private buffer: Observable[] = [];\n private active: number = 0;\n protected index: number = 0;\n\n constructor(destination: Subscriber,\n private accumulator: (acc: R, value: T, index: number) => ObservableInput,\n private acc: R,\n private concurrent: number) {\n super(destination);\n }\n\n protected _next(value: any): void {\n if (this.active < this.concurrent) {\n const index = this.index++;\n const destination = this.destination;\n let ish;\n try {\n const { accumulator } = this;\n ish = accumulator(this.acc, value, index);\n } catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish, value, index);\n } else {\n this.buffer.push(value);\n }\n }\n\n private _innerSub(ish: any, value: T, index: number): void {\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const { destination } = this;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const buffer = this.buffer;\n const destination = this.destination as Subscription;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n }\n}\n","import { reduce } from './reduce';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the smallest value.\n *\n * ![](min.png)\n *\n * ## Examples\n * Get the minimal value of a series of numbers\n * ```ts\n * import { of } from 'rxjs';\n * import { min } from 'rxjs/operators';\n *\n * of(5, 4, 7, 2, 8).pipe(\n * min(),\n * )\n * .subscribe(x => console.log(x)); // -> 2\n * ```\n *\n * Use a comparer function to get the minimal item\n * ```typescript\n * import { of } from 'rxjs';\n * import { min } from 'rxjs/operators';\n *\n * interface Person {\n * age: number,\n * name: string\n * }\n * of(\n * {age: 7, name: 'Foo'},\n * {age: 5, name: 'Bar'},\n * {age: 9, name: 'Beer'},\n * ).pipe(\n * min( (a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar'\n * ```\n * @see {@link max}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the smallest value.\n * @method min\n * @owner Observable\n */\nexport function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction {\n const min: (x: T, y: T) => T = (typeof comparer === 'function')\n ? (x, y) => comparer(x, y) < 0 ? x : y\n : (x, y) => x < y ? x : y;\n return reduce(min);\n}\n","import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { ConnectableObservable, connectableObservableDescriptor } from '../observable/ConnectableObservable';\nimport { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function multicast(subject: Subject): UnaryFunction, ConnectableObservable>;\nexport function multicast>(subject: Subject, selector: (shared: Observable) => O): UnaryFunction, ConnectableObservable>>;\nexport function multicast(subjectFactory: (this: Observable) => Subject): UnaryFunction, ConnectableObservable>;\nexport function multicast>(SubjectFactory: (this: Observable) => Subject, selector: (shared: Observable) => O): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the results of invoking a specified selector on items\n * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.\n *\n * ![](multicast.png)\n *\n * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through\n * which the source sequence's elements will be multicast to the selector function\n * or Subject to push source elements into.\n * @param {Function} [selector] - Optional selector function that can use the multicasted source stream\n * as many times as needed, without causing multiple subscriptions to the source stream.\n * Subscribers to the given source will receive all notifications of the source from the\n * time of the subscription forward.\n * @return {Observable} An Observable that emits the results of invoking the selector\n * on the items emitted by a `ConnectableObservable` that shares a single subscription to\n * the underlying stream.\n * @method multicast\n * @owner Observable\n */\nexport function multicast(subjectOrSubjectFactory: Subject | (() => Subject),\n selector?: (source: Observable) => Observable): OperatorFunction {\n return function multicastOperatorFunction(source: Observable): Observable {\n let subjectFactory: () => Subject;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = <() => Subject>subjectOrSubjectFactory;\n } else {\n subjectFactory = function subjectFactory() {\n return >subjectOrSubjectFactory;\n };\n }\n\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n\n const connectable: any = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n\n return > connectable;\n };\n}\n\nexport class MulticastOperator implements Operator {\n constructor(private subjectFactory: () => Subject,\n private selector: (source: Observable) => Observable) {\n }\n call(subscriber: Subscriber, source: any): any {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { Observable } from '../Observable';\nimport { from } from '../observable/from';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext(): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(...observables: Array>): OperatorFunction;\nexport function onErrorResumeNext(array: ObservableInput[]): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * Execute series of Observables no matter what, even if it means swallowing errors.\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` is an operator that accepts a series of Observables, provided either directly as\n * arguments or as an array. If no single Observable is provided, returned Observable will simply behave the same\n * as the source.\n *\n * `onErrorResumeNext` returns an Observable that starts by subscribing and re-emitting values from the source Observable.\n * When its stream of values ends - no matter if Observable completed or emitted an error - `onErrorResumeNext`\n * will subscribe to the first Observable that was passed as an argument to the method. It will start re-emitting\n * its values as well and - again - when that stream ends, `onErrorResumeNext` will proceed to subscribing yet another\n * Observable in provided series, no matter if previous Observable completed or ended with an error. This will\n * be happening until there is no more Observables left in the series, at which point returned Observable will\n * complete - even if the last subscribed stream ended with an error.\n *\n * `onErrorResumeNext` can be therefore thought of as version of {@link concat} operator, which is more permissive\n * when it comes to the errors emitted by its input Observables. While `concat` subscribes to the next Observable\n * in series only if previous one successfully completed, `onErrorResumeNext` subscribes even if it ended with\n * an error.\n *\n * Note that you do not get any access to errors emitted by the Observables. In particular do not\n * expect these errors to appear in error callback passed to {@link Observable#subscribe}. If you want to take\n * specific actions based on what error was emitted by an Observable, you should try out {@link catchError} instead.\n *\n *\n * ## Example\n * Subscribe to the next Observable after map fails\n * ```ts\n * import { of } from 'rxjs';\n * import { onErrorResumeNext, map } from 'rxjs/operators';\n *\n * of(1, 2, 3, 0).pipe(\n * map(x => {\n * if (x === 0) { throw Error(); }\n * return 10 / x;\n * }),\n * onErrorResumeNext(of(1, 2, 3)),\n * )\n * .subscribe(\n * val => console.log(val),\n * err => console.log(err), // Will never be called.\n * () => console.log('that\\'s it!')\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"that's it!\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} observables Observables passed either directly or as an array.\n * @return {Observable} An Observable that emits values from source Observable, but - if it errors - subscribes\n * to the next passed Observable and so on, until it completes or runs out of Observables.\n * @method onErrorResumeNext\n * @owner Observable\n */\n\nexport function onErrorResumeNext(...nextSources: Array |\n Array>>): OperatorFunction {\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = >>nextSources[0];\n }\n\n return (source: Observable) => source.lift(new OnErrorResumeNextOperator(nextSources));\n}\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNextStatic(v: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\n\nexport function onErrorResumeNextStatic(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function onErrorResumeNextStatic(array: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\nexport function onErrorResumeNextStatic(...nextSources: Array |\n Array> |\n ((...values: Array) => R)>): Observable {\n let source: ObservableInput = null;\n\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = >>nextSources[0];\n }\n source = nextSources.shift();\n\n return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\n\nclass OnErrorResumeNextOperator implements Operator {\n constructor(private nextSources: Array>) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n }\n}\n\nclass OnErrorResumeNextSubscriber extends OuterSubscriber {\n constructor(protected destination: Subscriber,\n private nextSources: Array>) {\n super(destination);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this.subscribeToNextSource();\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.subscribeToNextSource();\n }\n\n protected _error(err: any): void {\n this.subscribeToNextSource();\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.subscribeToNextSource();\n this.unsubscribe();\n }\n\n private subscribeToNextSource(): void {\n const next = this.nextSources.shift();\n if (!!next) {\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n } else {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n\n/**\n * Groups pairs of consecutive emissions together and emits them as an array of\n * two values.\n *\n * Puts the current value and previous value together as\n * an array, and emits that.\n *\n * ![](pairwise.png)\n *\n * The Nth emission from the source Observable will cause the output Observable\n * to emit an array [(N-1)th, Nth] of the previous and the current value, as a\n * pair. For this reason, `pairwise` emits on the second and subsequent\n * emissions from the source Observable, but not on the first emission, because\n * there is no previous value in that case.\n *\n * ## Example\n * On every click (starting from the second), emit the relative distance to the previous click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { pairwise, map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const pairs = clicks.pipe(pairwise());\n * const distance = pairs.pipe(\n * map(pair => {\n * const x0 = pair[0].clientX;\n * const y0 = pair[0].clientY;\n * const x1 = pair[1].clientX;\n * const y1 = pair[1].clientY;\n * return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));\n * }),\n * );\n * distance.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n *\n * @return {Observable>} An Observable of pairs (as arrays) of\n * consecutive values from the source Observable.\n * @method pairwise\n * @owner Observable\n */\nexport function pairwise(): OperatorFunction {\n return (source: Observable) => source.lift(new PairwiseOperator());\n}\n\nclass PairwiseOperator implements Operator {\n call(subscriber: Subscriber<[T, T]>, source: any): any {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass PairwiseSubscriber extends Subscriber {\n private prev: T;\n private hasPrev: boolean = false;\n\n constructor(destination: Subscriber<[T, T]>) {\n super(destination);\n }\n\n _next(value: T): void {\n let pair: [T, T] | undefined;\n\n if (this.hasPrev) {\n pair = [this.prev, value];\n } else {\n this.hasPrev = true;\n }\n\n this.prev = value;\n\n if (pair) {\n this.destination.next(pair);\n }\n }\n}\n","import { not } from '../util/not';\nimport { filter } from './filter';\nimport { Observable } from '../Observable';\nimport { UnaryFunction } from '../types';\n\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition click events into those on DIV elements and those elsewhere\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { partition } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));\n * const clicksOnDivs = parts[0];\n * const clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable, Observable]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n */\n/**\n * @deprecated use `partition` static creation function instead\n */\nexport function partition(predicate: (value: T, index: number) => boolean,\n thisArg?: any): UnaryFunction, [Observable, Observable]> {\n return (source: Observable) => [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg) as any)(source)\n ] as [Observable, Observable];\n}\n","import { Observable } from '../Observable';\nimport { map } from './map';\nimport { OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pluck(k1: K1): OperatorFunction;\nexport function pluck(k1: K1, k2: K2): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction;\nexport function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction;\nexport function pluck(...properties: string[]): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Maps each source value (an object) to its specified nested property.\n *\n * Like {@link map}, but meant only for picking one of\n * the nested properties of every emitted object.\n *\n * ![](pluck.png)\n *\n * Given a list of strings describing a path to an object property, retrieves\n * the value of a specified nested property from all values in the source\n * Observable. If a property can't be resolved, it will return `undefined` for\n * that value.\n *\n * ## Example\n * Map every click to the tagName of the clicked target element\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { pluck } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const tagNames = clicks.pipe(pluck('target', 'tagName'));\n * tagNames.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {...string} properties The nested properties to pluck from each source\n * value (an object).\n * @return {Observable} A new Observable of property values from the source values.\n * @method pluck\n * @owner Observable\n */\nexport function pluck(...properties: string[]): OperatorFunction {\n const length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return (source: Observable) => map(plucker(properties, length))(source as any);\n}\n\nfunction plucker(props: string[], length: number): (x: string) => any {\n const mapper = (x: string) => {\n let currentProp = x;\n for (let i = 0; i < length; i++) {\n const p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n } else {\n return undefined;\n }\n }\n return currentProp;\n };\n\n return mapper;\n}\n","import { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function publish(): UnaryFunction, ConnectableObservable>;\nexport function publish>(selector: (shared: Observable) => O): OperatorFunction>;\nexport function publish(selector: MonoTypeOperatorFunction): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called\n * before it begins emitting items to those Observers that have subscribed to it.\n *\n * Makes a cold Observable hot\n *\n * ![](publish.png)\n *\n * ## Examples\n * Make source$ hot by applying publish operator, then merge each inner observable into a single one\n * and subscribe.\n * ```ts\n * import { of, zip, interval, merge } from \"rxjs\";\n * import { map, publish, tap } from \"rxjs/operators\";\n *\n * const source$ = zip(interval(2000), of(1, 2, 3, 4, 5, 6, 7, 8, 9)).pipe(\n * map(values => values[1])\n * );\n *\n * source$\n * .pipe(\n * publish(multicasted$ =>\n * merge(\n * multicasted$.pipe(tap(x => console.log('Stream 1:', x))),\n * multicasted$.pipe(tap(x => console.log('Stream 2:', x))),\n * multicasted$.pipe(tap(x => console.log('Stream 3:', x))),\n * )\n * )\n * )\n * .subscribe();\n *\n * // Results every two seconds\n * // Stream 1: 1\n * // Stream 2: 1\n * // Stream 3: 1\n * // ...\n * // Stream 1: 9\n * // Stream 2: 9\n * // Stream 3: 9\n * ```\n *\n * @param {Function} [selector] - Optional selector function which can use the multicasted source sequence as many times\n * as needed, without causing multiple subscriptions to the source sequence.\n * Subscribers to the given source will receive all notifications of the source from the time of the subscription on.\n * @return A ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.\n * @method publish\n * @owner Observable\n *\n *\n */\nexport function publish(selector?: OperatorFunction): MonoTypeOperatorFunction | OperatorFunction {\n return selector ?\n multicast(() => new Subject(), selector) :\n multicast(new Subject());\n}\n","import { Observable } from '../Observable';\nimport { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n\n/**\n * @param value\n * @return {ConnectableObservable}\n * @method publishBehavior\n * @owner Observable\n */\nexport function publishBehavior(value: T): UnaryFunction, ConnectableObservable> {\n return (source: Observable) => multicast(new BehaviorSubject(value))(source) as ConnectableObservable;\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n\n/**\n * Returns a connectable observable sequence that shares a single subscription to the\n * underlying sequence containing only the last notification.\n *\n * ![](publishLast.png)\n *\n * Similar to {@link publish}, but it waits until the source observable completes and stores\n * the last emitted value.\n * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last\n * value even if it has no more subscribers. If subsequent subscriptions happen, they will\n * immediately get that last stored value and complete.\n *\n * ## Example\n *\n * ```ts\n * import { interval } from 'rxjs';\n * import { publishLast, tap, take } from 'rxjs/operators';\n *\n * const connectable =\n * interval(1000)\n * .pipe(\n * tap(x => console.log(\"side effect\", x)),\n * take(3),\n * publishLast());\n *\n * connectable.subscribe(\n * x => console.log( \"Sub. A\", x),\n * err => console.log(\"Sub. A Error\", err),\n * () => console.log( \"Sub. A Complete\"));\n *\n * connectable.subscribe(\n * x => console.log( \"Sub. B\", x),\n * err => console.log(\"Sub. B Error\", err),\n * () => console.log( \"Sub. B Complete\"));\n *\n * connectable.connect();\n *\n * // Results:\n * // \"side effect 0\"\n * // \"side effect 1\"\n * // \"side effect 2\"\n * // \"Sub. A 2\"\n * // \"Sub. B 2\"\n * // \"Sub. A Complete\"\n * // \"Sub. B Complete\"\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link publish}\n * @see {@link publishReplay}\n * @see {@link publishBehavior}\n *\n * @return {ConnectableObservable} An observable sequence that contains the elements of a\n * sequence produced by multicasting the source sequence.\n * @method publishLast\n * @owner Observable\n */\n\nexport function publishLast(): UnaryFunction, ConnectableObservable> {\n return (source: Observable) => multicast(new AsyncSubject())(source);\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function publishReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function publishReplay>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable) => O, scheduler?: SchedulerLike): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\nexport function publishReplay(bufferSize?: number,\n windowTime?: number,\n selectorOrScheduler?: SchedulerLike | OperatorFunction,\n scheduler?: SchedulerLike): UnaryFunction, ConnectableObservable> {\n\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n\n const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n const subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n\n return (source: Observable) => multicast(() => subject, selector)(source) as ConnectableObservable;\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { MonoTypeOperatorFunction, OperatorFunction } from '../types';\nimport { race as raceStatic } from '../observable/race';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static race. */\nexport function race(observables: Array>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(observables: Array>): OperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(...observables: Array | Array>>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(...observables: Array | Array>>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit a next,\n * error or complete notification from the combination of this Observable and supplied Observables.\n * @param {...Observables} ...observables Sources used to race for which Observable emits first.\n * @return {Observable} An Observable that mirrors the output of the first Observable to emit an item.\n * @method race\n * @owner Observable\n * @deprecated Deprecated in favor of static {@link race}.\n */\nexport function race(...observables: (Observable | Observable[])[]): MonoTypeOperatorFunction {\n return function raceOperatorFunction(source: Observable) {\n // if the only argument is an array, it was most likely called with\n // `pair([obs1, obs2, ...])`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0] as Observable[];\n }\n\n return source.lift.call(raceStatic(source, ...(observables as Observable[])));\n };\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { empty } from '../observable/empty';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times.\n *\n * Repeats all values emitted on the source. It's like {@link retry}, but for non error cases.\n *\n * ![](repeat.png)\n *\n * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases.\n * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm.\n *\n * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever\n *\n * ## Example\n * Repeat a message stream\n * ```ts\n * import { of } from 'rxjs';\n * import { repeat, delay } from 'rxjs/operators';\n *\n * const source = of('Repeat message');\n * const example = source.pipe(repeat(3));\n * example.subscribe(x => console.log(x));\n *\n * // Results\n * // Repeat message\n * // Repeat message\n * // Repeat message\n * ```\n *\n * Repeat 3 values, 2 times\n * ```ts\n * import { interval } from 'rxjs';\n * import { repeat, take } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(take(3), repeat(2));\n * example.subscribe(x => console.log(x));\n *\n * // Results every second\n * // 0\n * // 1\n * // 2\n * // 0\n * // 1\n * // 2\n * ```\n *\n * @see {@link repeatWhen}\n * @see {@link retry}\n *\n * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield\n * an empty Observable.\n * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes\n * , at most count times.\n * @method repeat\n * @owner Observable\n */\nexport function repeat(count: number = -1): MonoTypeOperatorFunction {\n return (source: Observable) => {\n if (count === 0) {\n return empty();\n } else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n } else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\n\nclass RepeatOperator implements Operator {\n constructor(private count: number,\n private source: Observable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RepeatSubscriber extends Subscriber {\n constructor(destination: Subscriber,\n private count: number,\n private source: Observable) {\n super(destination);\n }\n complete() {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.complete();\n } else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source\n * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable\n * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise\n * this method will resubscribe to the source Observable.\n *\n * ![](repeatWhen.png)\n *\n * ## Example\n * Repeat a message stream on click\n * ```ts\n * import { of, fromEvent } from 'rxjs';\n * import { repeatWhen } from 'rxjs/operators';\n *\n * const source = of('Repeat message');\n * const documentClick$ = fromEvent(document, 'click');\n *\n * source.pipe(repeatWhen(() => documentClick$)\n * ).subscribe(data => console.log(data))\n * ```\n * @see {@link repeat}\n * @see {@link retry}\n * @see {@link retryWhen}\n *\n * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with\n * which a user can `complete` or `error`, aborting the repetition.\n * @return {Observable} The source Observable modified with repeat logic.\n * @method repeatWhen\n * @owner Observable\n */\nexport function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RepeatWhenOperator(notifier));\n}\n\nclass RepeatWhenOperator implements Operator {\n constructor(protected notifier: (notifications: Observable) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RepeatWhenSubscriber extends OuterSubscriber {\n\n private notifications: Subject;\n private retries: Observable;\n private retriesSubscription: Subscription;\n private sourceIsBeingSubscribedTo: boolean = true;\n\n constructor(destination: Subscriber,\n private notifier: (notifications: Observable) => Observable,\n private source: Observable) {\n super(destination);\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n if (this.sourceIsBeingSubscribedTo === false) {\n return super.complete();\n }\n }\n\n complete() {\n this.sourceIsBeingSubscribedTo = false;\n\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return super.complete();\n }\n\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { notifications, retriesSubscription } = this;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _unsubscribe } = this;\n\n this._unsubscribe = null;\n super._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n\n return this;\n }\n\n private subscribeToRetries() {\n this.notifications = new Subject();\n let retries;\n try {\n const { notifier } = this;\n retries = notifier(this.notifications);\n } catch (e) {\n return super.complete();\n }\n this.retries = retries;\n this.retriesSubscription = subscribeToResult(this, retries);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given\n * as a number parameter) rather than propagating the `error` call.\n *\n * ![](retry.png)\n *\n * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted\n * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second\n * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications\n * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].\n *\n * ## Example\n * ```ts\n * import { interval, of, throwError } from 'rxjs';\n * import { mergeMap, retry } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const example = source.pipe(\n * mergeMap(val => {\n * if(val > 5){\n * return throwError('Error!');\n * }\n * return of(val);\n * }),\n * //retry 2 times on error\n * retry(2)\n * );\n *\n * const subscribe = example.subscribe({\n * next: val => console.log(val),\n * error: val => console.log(`${val}: Retried 2 times then quit!`)\n * });\n *\n * // Output:\n * // 0..1..2..3..4..5..\n * // 0..1..2..3..4..5..\n * // 0..1..2..3..4..5..\n * // \"Error!: Retried 2 times then quit!\"\n * ```\n *\n * @param {number} count - Number of retry attempts before failing.\n * @return {Observable} The source Observable modified with the retry logic.\n * @method retry\n * @owner Observable\n */\nexport function retry(count: number = -1): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RetryOperator(count, source));\n}\n\nclass RetryOperator implements Operator {\n constructor(private count: number,\n private source: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RetrySubscriber extends Subscriber {\n constructor(destination: Subscriber,\n private count: number,\n private source: Observable) {\n super(destination);\n }\n error(err: any) {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.error(err);\n } else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`.\n * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child\n * subscription. Otherwise this method will resubscribe to the source Observable.\n *\n * ![](retryWhen.png)\n *\n * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a\n * user can `complete` or `error`, aborting the retry.\n * @return {Observable} The source Observable modified with retry logic.\n * @method retryWhen\n * @owner Observable\n */\nexport function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RetryWhenOperator(notifier, source));\n}\n\nclass RetryWhenOperator implements Operator {\n constructor(protected notifier: (errors: Observable) => Observable,\n protected source: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RetryWhenSubscriber extends OuterSubscriber {\n\n private errors: Subject;\n private retries: Observable;\n private retriesSubscription: Subscription;\n\n constructor(destination: Subscriber,\n private notifier: (errors: Observable) => Observable,\n private source: Observable) {\n super(destination);\n }\n\n error(err: any) {\n if (!this.isStopped) {\n\n let errors = this.errors;\n let retries: any = this.retries;\n let retriesSubscription = this.retriesSubscription;\n\n if (!retries) {\n errors = new Subject();\n try {\n const { notifier } = this;\n retries = notifier(errors);\n } catch (e) {\n return super.error(e);\n }\n retriesSubscription = subscribeToResult(this, retries);\n } else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n\n this._unsubscribeAndRecycle();\n\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n\n errors.next(err);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { errors, retriesSubscription } = this;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const { _unsubscribe } = this;\n\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n\n this.source.subscribe(this);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits the most recently emitted value from the source Observable whenever\n * another Observable, the `notifier`, emits.\n *\n * It's like {@link sampleTime}, but samples whenever\n * the `notifier` Observable emits something.\n *\n * ![](sample.png)\n *\n * Whenever the `notifier` Observable emits a value or completes, `sample`\n * looks at the source Observable and emits whichever value it has most recently\n * emitted since the previous sampling, unless the source has not emitted\n * anything since the previous sampling. The `notifier` is subscribed to as soon\n * as the output Observable is subscribed.\n *\n * ## Example\n * On every click, sample the most recent \"seconds\" timer\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { sample } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = seconds.pipe(sample(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {Observable} notifier The Observable to use for sampling the\n * source Observable.\n * @return {Observable} An Observable that emits the results of sampling the\n * values emitted by the source Observable whenever the notifier Observable\n * emits value or completes.\n * @method sample\n * @owner Observable\n */\nexport function sample(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SampleOperator(notifier));\n}\n\nclass SampleOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n const sampleSubscriber = new SampleSubscriber(subscriber);\n const subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SampleSubscriber extends OuterSubscriber {\n private value: T;\n private hasValue: boolean = false;\n\n protected _next(value: T) {\n this.value = value;\n this.hasValue = true;\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.emitValue();\n }\n\n notifyComplete(): void {\n this.emitValue();\n }\n\n emitValue() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits the most recently emitted value from the source Observable within\n * periodic time intervals.\n *\n * Samples the source Observable at periodic time\n * intervals, emitting what it samples.\n *\n * ![](sampleTime.png)\n *\n * `sampleTime` periodically looks at the source Observable and emits whichever\n * value it has most recently emitted since the previous sampling, unless the\n * source has not emitted anything since the previous sampling. The sampling\n * happens periodically in time every `period` milliseconds (or the time unit\n * defined by the optional `scheduler` argument). The sampling starts as soon as\n * the output Observable is subscribed.\n *\n * ## Example\n * Every second, emit the most recent click at most once\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { sampleTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(sampleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {number} period The sampling period expressed in milliseconds or the\n * time unit determined internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the sampling.\n * @return {Observable} An Observable that emits the results of sampling the\n * values emitted by the source Observable at the specified time interval.\n * @method sampleTime\n * @owner Observable\n */\nexport function sampleTime(period: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SampleTimeOperator(period, scheduler));\n}\n\nclass SampleTimeOperator implements Operator {\n constructor(private period: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SampleTimeSubscriber extends Subscriber {\n lastValue: T;\n hasValue: boolean = false;\n\n constructor(destination: Subscriber,\n private period: number,\n private scheduler: SchedulerLike) {\n super(destination);\n this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period }));\n }\n\n protected _next(value: T) {\n this.lastValue = value;\n this.hasValue = true;\n }\n\n notifyNext() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n }\n}\n\nfunction dispatchNotification(this: SchedulerAction, state: any) {\n let { subscriber, period } = state;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\nimport { Observer, OperatorFunction } from '../types';\n\n/**\n * Compares all values of two observables in sequence using an optional comparator function\n * and returns an observable of a single boolean value representing whether or not the two sequences\n * are equal.\n *\n * Checks to see of all values emitted by both observables are equal, in order.\n *\n * ![](sequenceEqual.png)\n *\n * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either\n * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom\n * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the\n * observables completes, the operator will wait for the other observable to complete; If the other\n * observable emits before completing, the returned observable will emit `false` and complete. If one observable never\n * completes or emits after the other complets, the returned observable will never complete.\n *\n * ## Example\n * figure out if the Konami code matches\n * ```ts\n * import { from, fromEvent } from 'rxjs';\n * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators';\n *\n * const codes = from([\n * 'ArrowUp',\n * 'ArrowUp',\n * 'ArrowDown',\n * 'ArrowDown',\n * 'ArrowLeft',\n * 'ArrowRight',\n * 'ArrowLeft',\n * 'ArrowRight',\n * 'KeyB',\n * 'KeyA',\n * 'Enter', // no start key, clearly.\n * ]);\n *\n * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));\n * const matches = keys.pipe(\n * bufferCount(11, 1),\n * mergeMap(\n * last11 => from(last11).pipe(sequenceEqual(codes)),\n * ),\n * );\n * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} compareTo The observable sequence to compare the source sequence to.\n * @param {function} [comparator] An optional function to compare each value pair\n * @return {Observable} An Observable of a single boolean value representing whether or not\n * the values emitted by both observables were equal in sequence.\n * @method sequenceEqual\n * @owner Observable\n */\nexport function sequenceEqual(compareTo: Observable,\n comparator?: (a: T, b: T) => boolean): OperatorFunction {\n return (source: Observable) => source.lift(new SequenceEqualOperator(compareTo, comparator));\n}\n\nexport class SequenceEqualOperator implements Operator {\n constructor(private compareTo: Observable,\n private comparator: (a: T, b: T) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SequenceEqualSubscriber extends Subscriber {\n private _a: T[] = [];\n private _b: T[] = [];\n private _oneComplete = false;\n\n constructor(destination: Observer,\n private compareTo: Observable,\n private comparator: (a: T, b: T) => boolean) {\n super(destination);\n (this.destination as Subscription).add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this)));\n }\n\n protected _next(value: T): void {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n } else {\n this._a.push(value);\n this.checkValues();\n }\n }\n\n public _complete(): void {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n }\n\n checkValues() {\n const { _a, _b, comparator } = this;\n while (_a.length > 0 && _b.length > 0) {\n let a = _a.shift();\n let b = _b.shift();\n let areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n } catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n }\n\n emit(value: boolean) {\n const { destination } = this;\n destination.next(value);\n destination.complete();\n }\n\n nextB(value: T) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n } else {\n this._b.push(value);\n this.checkValues();\n }\n }\n\n completeB() {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n }\n}\n\nclass SequenceEqualCompareToSubscriber extends Subscriber {\n constructor(destination: Observer, private parent: SequenceEqualSubscriber) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.parent.nextB(value);\n }\n\n protected _error(err: any): void {\n this.parent.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.completeB();\n this.unsubscribe();\n }\n}\n","import { Observable } from '../Observable';\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\n\nimport { MonoTypeOperatorFunction } from '../types';\n\nfunction shareSubjectFactory() {\n return new Subject();\n}\n\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for `multicast(() => new Subject()), refCount()`.\n *\n * ![](share.png)\n *\n * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers.\n * @method share\n * @owner Observable\n */\nexport function share(): MonoTypeOperatorFunction {\n return (source: Observable) => refCount()(multicast(shareSubjectFactory)(source)) as Observable;\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\nexport interface ShareReplayConfig {\n bufferSize?: number;\n windowTime?: number;\n refCount: boolean;\n scheduler?: SchedulerLike;\n}\n\n/**\n * Share source and replay specified number of emissions on subscription.\n *\n * This operator is a specialization of `replay` that connects to a source observable\n * and multicasts through a `ReplaySubject` constructed with the specified arguments.\n * A successfully completed source will stay cached in the `shareReplayed observable` forever,\n * but an errored source can be retried.\n *\n * ## Why use shareReplay?\n * You generally want to use `shareReplay` when you have side-effects or taxing computations\n * that you do not wish to be executed amongst multiple subscribers.\n * It may also be valuable in situations where you know you will have late subscribers to\n * a stream that need access to previously emitted values.\n * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.\n *\n * ![](shareReplay.png)\n *\n * ## Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { shareReplay, take } from 'rxjs/operators';\n *\n * const obs$ = interval(1000);\n * const shared$ = obs$.pipe(\n * take(4),\n * shareReplay(3)\n * );\n * shared$.subscribe(x => console.log('source A: ', x));\n * shared$.subscribe(y => console.log('source B: ', y));\n *\n * ```\n *\n * @see {@link publish}\n * @see {@link share}\n * @see {@link publishReplay}\n *\n * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.\n * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.\n * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function\n * will be invoked on.\n * @return {Observable} An observable sequence that contains the elements of a sequence produced\n * by multicasting the source sequence within a selector function.\n * @method shareReplay\n * @owner Observable\n */\nexport function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction;\nexport function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function shareReplay(\n configOrBufferSize?: ShareReplayConfig | number,\n windowTime?: number,\n scheduler?: SchedulerLike\n): MonoTypeOperatorFunction {\n let config: ShareReplayConfig;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize as ShareReplayConfig;\n } else {\n config = {\n bufferSize: configOrBufferSize as number | undefined,\n windowTime,\n refCount: false,\n scheduler\n };\n }\n return (source: Observable) => source.lift(shareReplayOperator(config));\n}\n\nfunction shareReplayOperator({\n bufferSize = Number.POSITIVE_INFINITY,\n windowTime = Number.POSITIVE_INFINITY,\n refCount: useRefCount,\n scheduler\n}: ShareReplayConfig) {\n let subject: ReplaySubject | undefined;\n let refCount = 0;\n let subscription: Subscription | undefined;\n let hasError = false;\n let isComplete = false;\n\n return function shareReplayOperation(this: Subscriber, source: Observable) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next(value) { subject.next(value); },\n error(err) {\n hasError = true;\n subject.error(err);\n },\n complete() {\n isComplete = true;\n subject.complete();\n },\n });\n }\n\n const innerSub = subject.subscribe(this);\n this.add(() => {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\n\nimport { Observer, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that emits the single item emitted by the source Observable that matches a specified\n * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no\n * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable\n * emits items but none match the specified predicate then `undefined` is emitted.\n *\n * Like {@link first}, but emit with error notification if there is more than one value.\n * ![](single.png)\n *\n * ## Example\n * emits 'error'\n * ```ts\n * import { range } from 'rxjs';\n * import { single } from 'rxjs/operators';\n *\n * const numbers = range(1,5).pipe(single());\n * numbers.subscribe(x => console.log('never get called'), e => console.log('error'));\n * // result\n * // 'error'\n * ```\n *\n * emits 'undefined'\n * ```ts\n * import { range } from 'rxjs';\n * import { single } from 'rxjs/operators';\n *\n * const numbers = range(1,5).pipe(single(x => x === 10));\n * numbers.subscribe(x => console.log(x));\n * // result\n * // 'undefined'\n * ```\n *\n * @see {@link first}\n * @see {@link find}\n * @see {@link findIndex}\n * @see {@link elementAt}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable.\n * @return {Observable} An Observable that emits the single item emitted by the source Observable that matches\n * the predicate or `undefined` when no items match.\n *\n * @method single\n * @owner Observable\n */\nexport function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SingleOperator(predicate, source));\n}\n\nclass SingleOperator implements Operator {\n constructor(private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SingleSubscriber extends Subscriber {\n private seenValue: boolean = false;\n private singleValue: T;\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n super(destination);\n }\n\n private applySingleValue(value: T): void {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n } else {\n this.seenValue = true;\n this.singleValue = value;\n }\n }\n\n protected _next(value: T): void {\n const index = this.index++;\n\n if (this.predicate) {\n this.tryNext(value, index);\n } else {\n this.applySingleValue(value);\n }\n }\n\n private tryNext(value: T, index: number): void {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n } else {\n destination.error(new EmptyError);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that skips the first `count` items emitted by the source Observable.\n *\n * ![](skip.png)\n *\n * @param {Number} count - The number of times, items emitted by source Observable should be skipped.\n * @return {Observable} An Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nexport function skip(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipOperator(count));\n}\n\nclass SkipOperator implements Operator {\n constructor(private total: number) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipSubscriber extends Subscriber {\n count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(x: T) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Skip the last `count` values emitted by the source Observable.\n *\n * ![](skipLast.png)\n *\n * `skipLast` returns an Observable that accumulates a queue with a length\n * enough to store the first `count` values. As more values are received,\n * values are taken from the front of the queue and produced on the result\n * sequence. This causes values to be delayed.\n *\n * ## Example\n * Skip the last 2 values of an Observable with many values\n * ```ts\n * import { range } from 'rxjs';\n * import { skipLast } from 'rxjs/operators';\n *\n * const many = range(1, 5);\n * const skipLastTwo = many.pipe(skipLast(2));\n * skipLastTwo.subscribe(x => console.log(x));\n *\n * // Results in:\n * // 1 2 3\n * ```\n *\n * @see {@link skip}\n * @see {@link skipUntil}\n * @see {@link skipWhile}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws\n * ArgumentOutOrRangeError if `i < 0`.\n *\n * @param {number} count Number of elements to skip from the end of the source Observable.\n * @returns {Observable} An Observable that skips the last count values\n * emitted by the source Observable.\n * @method skipLast\n * @owner Observable\n */\nexport function skipLast(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipLastOperator(count));\n}\n\nclass SkipLastOperator implements Operator {\n constructor(private _skipCount: number) {\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n if (this._skipCount === 0) {\n // If we don't want to skip any values then just subscribe\n // to Subscriber without any further logic.\n return source.subscribe(new Subscriber(subscriber));\n } else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipLastSubscriber extends Subscriber {\n private _ring: T[];\n private _count: number = 0;\n\n constructor(destination: Subscriber, private _skipCount: number) {\n super(destination);\n this._ring = new Array(_skipCount);\n }\n\n protected _next(value: T): void {\n const skipCount = this._skipCount;\n const count = this._count++;\n\n if (count < skipCount) {\n this._ring[count] = value;\n } else {\n const currentIndex = count % skipCount;\n const ring = this._ring;\n const oldValue = ring[currentIndex];\n\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic, ObservableInput } from '../types';\nimport { Subscription } from '../Subscription';\n\n/**\n * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.\n *\n * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value.\n * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by.\n *\n * ![](skipUntil.png)\n *\n * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission\n * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source*\n * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting\n * a value before.\n *\n * ## Example\n *\n * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page.\n *\n * ```ts\n * import { interval, fromEvent } from 'rxjs';\n * import { skipUntil } from 'rxjs/operators';\n *\n * const intervalObservable = interval(1000);\n * const click = fromEvent(document, 'click');\n *\n * const emitAfterClick = intervalObservable.pipe(\n * skipUntil(click)\n * );\n * // clicked at 4.6s. output: 5...6...7...8........ or\n * // clicked at 7.3s. output: 8...9...10..11.......\n * const subscribe = emitAfterClick.subscribe(value => console.log(value));\n * ```\n *\n * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to\n * be mirrored by the resulting Observable.\n * @return {Observable} An Observable that skips items from the source Observable until the second Observable emits\n * an item, then emits the remaining items.\n * @method skipUntil\n * @owner Observable\n */\nexport function skipUntil(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipUntilOperator(notifier));\n}\n\nclass SkipUntilOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(destination: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipUntilSubscriber extends OuterSubscriber {\n\n private hasValue: boolean = false;\n private innerSubscription: Subscription;\n\n constructor(destination: Subscriber, notifier: ObservableInput) {\n super(destination);\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n this.innerSubscription = innerSubscriber;\n subscribeToResult(this, notifier, undefined, undefined, innerSubscriber);\n }\n\n protected _next(value: T) {\n if (this.hasValue) {\n super._next(value);\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n }\n\n notifyComplete() {\n /* do nothing */\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds\n * true, but emits all further source items as soon as the condition becomes false.\n *\n * ![](skipWhile.png)\n *\n * @param {Function} predicate - A function to test each item emitted from the source Observable.\n * @return {Observable} An Observable that begins emitting items emitted by the source Observable when the\n * specified predicate becomes false.\n * @method skipWhile\n * @owner Observable\n */\nexport function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipWhileOperator(predicate));\n}\n\nclass SkipWhileOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipWhileSubscriber extends Subscriber {\n private skipping: boolean = true;\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n\n if (!this.skipping) {\n destination.next(value);\n }\n }\n\n private tryCallPredicate(value: T): void {\n try {\n const result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n } catch (err) {\n this.destination.error(err);\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nimport { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(scheduler: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction;\n\nexport function startWith(v1: D): OperatorFunction;\nexport function startWith(v1: D, v2: E): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F, v4: G): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction;\nexport function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction;\nexport function startWith(...array: D[]): OperatorFunction;\n/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */\nexport function startWith(...array: Array): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the items you specify as arguments before it begins to emit\n * items emitted by the source Observable.\n *\n * First emits its arguments in order, and then any\n * emissions from the source.\n *\n * ![](startWith.png)\n *\n * ## Examples\n *\n * Start the chain of emissions with `\"first\"`, `\"second\"`\n *\n * ```ts\n * import { of } from 'rxjs';\n * import { startWith } from 'rxjs/operators';\n *\n * of(\"from source\")\n * .pipe(startWith(\"first\", \"second\"))\n * .subscribe(x => console.log(x));\n *\n * // results:\n * // \"first\"\n * // \"second\"\n * // \"from source\"\n * ```\n *\n * @param {...T} values - Items you want the modified Observable to emit first.\n * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items\n * emitted by the source Observable.\n * @method startWith\n * @owner Observable\n */\nexport function startWith(...array: Array): OperatorFunction {\n const scheduler = array[array.length - 1] as SchedulerLike;\n if (isScheduler(scheduler)) {\n // deprecated path\n array.pop();\n return (source: Observable) => concat(array as T[], source, scheduler);\n } else {\n return (source: Observable) => concat(array as T[], source);\n }\n}\n","import { SchedulerLike, SchedulerAction } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\n\nexport interface DispatchArg {\n source: Observable;\n subscriber: Subscriber;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nexport class SubscribeOnObservable extends Observable {\n /** @nocollapse */\n static create(source: Observable, delay: number = 0, scheduler: SchedulerLike = asap): Observable {\n return new SubscribeOnObservable(source, delay, scheduler);\n }\n\n /** @nocollapse */\n static dispatch(this: SchedulerAction, arg: DispatchArg): Subscription {\n const { source, subscriber } = arg;\n return this.add(source.subscribe(subscriber));\n }\n\n constructor(public source: Observable,\n private delayTime: number = 0,\n private scheduler: SchedulerLike = asap) {\n super();\n if (!isNumeric(delayTime) || delayTime < 0) {\n this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n this.scheduler = asap;\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n const delay = this.delayTime;\n const source = this.source;\n const scheduler = this.scheduler;\n\n return scheduler.schedule>(SubscribeOnObservable.dispatch, delay, {\n source, subscriber\n });\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * ![](subscribeOn.png)\n *\n * ## Example\n * Given the following code:\n * ```javascript\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3, 4);\n * const b = of(5, 6, 7, 8, 9);\n * merge(a, b).subscribe(console.log);\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n * This will result in the output of `1 2 3 4 5 6 7 8 9`.\n *\n * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`:\n * ```javascript\n * import { of, merge, asyncScheduler } from 'rxjs';\n * import { subscribeOn } from 'rxjs/operators';\n *\n * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler));\n * const b = of(5, 6, 7, 8, 9);\n * merge(a, b).subscribe(console.log);\n * ```\n *\n * The output will instead be `5 6 7 8 9 1 2 3 4`.\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on.\n * @return {Observable} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}.\n .\n * @method subscribeOn\n * @owner Observable\n */\nexport function subscribeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction {\n return function subscribeOnOperatorFunction(source: Observable): Observable {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\n\nclass SubscribeOnOperator implements Operator {\n constructor(private scheduler: SchedulerLike,\n private delay: number) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return new SubscribeOnObservable(\n source, this.delay, this.scheduler\n ).subscribe(subscriber);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\n\n/* tslint:disable:max-line-length */\nexport function switchMap>(project: (value: T, index: number) => O): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport function switchMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport function switchMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables.\n *\n * ![](switchMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * ## Example\n * Generate new Observable according to source Observable values\n * ```typescript\n * import { of } from 'rxjs';\n * import { switchMap } from 'rxjs/operators';\n *\n * const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3)));\n * switched.subscribe(x => console.log(x));\n * // outputs\n * // 1\n * // 1\n * // 1\n * // 2\n * // 4\n * // 8\n * // ... and so on\n * ```\n *\n * Rerun an interval Observable on every click event\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { switchMap } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMap((ev) => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchAll}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional deprecated `resultSelector`) to each item\n * emitted by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nexport function switchMap>(\n project: (value: T, index: number) => O,\n resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R,\n): OperatorFunction|R> {\n if (typeof resultSelector === 'function') {\n return (source: Observable) => source.pipe(\n switchMap((a, i) => from(project(a, i)).pipe(\n map((b, ii) => resultSelector(a, b, i, ii))\n ))\n );\n }\n return (source: Observable) => source.lift(new SwitchMapOperator(project));\n}\n\nclass SwitchMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SwitchMapSubscriber extends OuterSubscriber {\n private index: number = 0;\n private innerSubscription: Subscription;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput) {\n super(destination);\n }\n\n protected _next(value: T) {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n }\n\n private _innerSub(result: ObservableInput, value: T, index: number) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n const destination = this.destination as Subscription;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n }\n\n protected _complete(): void {\n const {innerSubscription} = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n\n protected _unsubscribe() {\n this.innerSubscription = null;\n }\n\n notifyComplete(innerSub: Subscription): void {\n const destination = this.destination as Subscription;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n super._complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n}\n","import {OperatorFunction, ObservableInput} from '../types';\nimport { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\n\nexport function switchAll(): OperatorFunction, T>;\nexport function switchAll(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable\n * producing values only from the most recent observable sequence\n *\n * Flattens an Observable-of-Observables.\n *\n * ![](switchAll.png)\n *\n * `switchAll` subscribes to a source that is an observable of observables, also known as a\n * \"higher-order observable\" (or `Observable>`). It subscribes to the most recently\n * provided \"inner observable\" emitted by the source, unsubscribing from any previously subscribed\n * to inner observable, such that only the most recent inner observable may be subscribed to at\n * any point in time. The resulting observable returned by `switchAll` will only complete if the\n * source observable completes, *and* any currently subscribed to inner observable also has completed,\n * if there are any.\n *\n * ## Examples\n * Spawn a new interval observable for each click event, but for every new\n * click, cancel the previous interval and subscribe to the new one.\n *\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { switchAll, map, tap } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click').pipe(tap(() => console.log('click')));\n * const source = clicks.pipe(map((ev) => interval(1000)));\n *\n * source.pipe(\n * switchAll()\n * ).subscribe(x => console.log(x));\n *\n /* Output\n * click\n * 1\n * 2\n * 3\n * 4\n * ...\n * click\n * 1\n * 2\n * 3\n * ...\n * click\n * ...\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link switchMap}\n * @see {@link switchMapTo}\n * @see {@link mergeAll}\n */\n\nexport function switchAll(): OperatorFunction, T> {\n return switchMap(identity);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { switchMap } from './switchMap';\n\n/* tslint:disable:max-line-length */\nexport function switchMapTo(observable: ObservableInput): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport function switchMapTo(observable: ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport function switchMapTo(observable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is flattened multiple\n * times with {@link switchMap} in the output Observable.\n *\n * It's like {@link switchMap}, but maps each value\n * always to the same inner Observable.\n *\n * ![](switchMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. The output Observables\n * emits values only from the most recently emitted instance of\n * `innerObservable`.\n *\n * ## Example\n * Rerun an interval Observable on every click event\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { switchMapTo } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMapTo(interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMapTo}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link mergeMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through the deprecated `resultSelector`)\n * every time a value is emitted on the source Observable, and taking only the values\n * from the most recently projected inner Observable.\n * @method switchMapTo\n * @owner Observable\n */\nexport function switchMapTo(\n innerObservable: ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R\n): OperatorFunction {\n return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * Lets values pass until a second Observable,\n * `notifier`, emits a value. Then, it completes.\n *\n * ![](takeUntil.png)\n *\n * `takeUntil` subscribes and begins mirroring the source Observable. It also\n * monitors a second Observable, `notifier` that you provide. If the `notifier`\n * emits a value, the output Observable stops mirroring the source Observable\n * and completes. If the `notifier` doesn't emit any value and completes\n * then `takeUntil` will pass all values.\n *\n * ## Example\n * Tick every second until the first click happens\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { takeUntil } from 'rxjs/operators';\n *\n * const source = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = source.pipe(takeUntil(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param {Observable} notifier The Observable whose first emitted value will\n * cause the output Observable of `takeUntil` to stop emitting values from the\n * source Observable.\n * @return {Observable} An Observable that emits the values from the source\n * Observable until such time as `notifier` emits its first value.\n * @method takeUntil\n * @owner Observable\n */\nexport function takeUntil(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new TakeUntilOperator(notifier));\n}\n\nclass TakeUntilOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeUntilSubscriber extends OuterSubscriber {\n seenValue = false;\n\n constructor(destination: Subscriber, ) {\n super(destination);\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.seenValue = true;\n this.complete();\n }\n\n notifyComplete(): void {\n // noop\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\nexport function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction;\nexport function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction;\nexport function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction;\n\n/**\n * Emits values emitted by the source Observable so long as each value satisfies\n * the given `predicate`, and then completes as soon as this `predicate` is not\n * satisfied.\n *\n * Takes values from the source only while they pass the\n * condition given. When the first value does not satisfy, it completes.\n *\n * ![](takeWhile.png)\n *\n * `takeWhile` subscribes and begins mirroring the source Observable. Each value\n * emitted on the source is given to the `predicate` function which returns a\n * boolean, representing a condition to be satisfied by the source values. The\n * output Observable emits the source values until such time as the `predicate`\n * returns false, at which point `takeWhile` stops mirroring the source\n * Observable and completes the output Observable.\n *\n * ## Example\n * Emit click events only while the clientX property is greater than 200\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { takeWhile } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates a value emitted by the source Observable and returns a boolean.\n * Also takes the (zero-based) index as the second argument.\n * @param {boolean} inclusive When set to `true` the value that caused\n * `predicate` to return `false` will also be emitted.\n * @return {Observable} An Observable that emits the values from the source\n * Observable so long as each value satisfies the condition defined by the\n * `predicate`, then completes.\n * @method takeWhile\n * @owner Observable\n */\nexport function takeWhile(\n predicate: (value: T, index: number) => boolean,\n inclusive = false): MonoTypeOperatorFunction {\n return (source: Observable) =>\n source.lift(new TakeWhileOperator(predicate, inclusive));\n}\n\nclass TakeWhileOperator implements Operator {\n constructor(\n private predicate: (value: T, index: number) => boolean,\n private inclusive: boolean) {}\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeWhileSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(\n destination: Subscriber,\n private predicate: (value: T, index: number) => boolean,\n private inclusive: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const destination = this.destination;\n let result: boolean;\n try {\n result = this.predicate(value, this.index++);\n } catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n\n private nextOrComplete(value: T, predicateResult: boolean): void {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n } else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, PartialObserver, TeardownLogic } from '../types';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Use an observer instead of a complete callback */\nexport function tap(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction;\n/** @deprecated Use an observer instead of an error callback */\nexport function tap(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction;\n/** @deprecated Use an observer instead of a complete callback */\nexport function tap(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction;\nexport function tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction;\nexport function tap(observer: PartialObserver): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Perform a side effect for every emission on the source Observable, but return\n * an Observable that is identical to the source.\n *\n * Intercepts each emission on the source and runs a\n * function, but returns an output which is identical to the source as long as errors don't occur.\n *\n * ![](do.png)\n *\n * Returns a mirrored Observable of the source Observable, but modified so that\n * the provided Observer is called to perform a side effect for every value,\n * error, and completion emitted by the source. Any errors that are thrown in\n * the aforementioned Observer or handlers are safely sent down the error path\n * of the output Observable.\n *\n * This operator is useful for debugging your Observables for the correct values\n * or performing other side effects.\n *\n * Note: this is different to a `subscribe` on the Observable. If the Observable\n * returned by `tap` is not subscribed, the side effects specified by the\n * Observer will never happen. `tap` therefore simply spies on existing\n * execution, it does not trigger an execution to happen like `subscribe` does.\n *\n * ## Example\n * Map every click to the clientX position of that click, while also logging the click event\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { tap, map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(\n * tap(ev => console.log(ev)),\n * map(ev => ev.clientX),\n * );\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n * @see {@link Observable#subscribe}\n *\n * @param {Observer|function} [nextOrObserver] A normal Observer object or a\n * callback for `next`.\n * @param {function} [error] Callback for errors in the source.\n * @param {function} [complete] Callback for the completion of the source.\n * @return {Observable} An Observable identical to the source, but runs the\n * specified Observer or callback(s) for each item.\n * @name tap\n */\nexport function tap(nextOrObserver?: PartialObserver | ((x: T) => void),\n error?: (e: any) => void,\n complete?: () => void): MonoTypeOperatorFunction {\n return function tapOperatorFunction(source: Observable): Observable {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\n\nclass DoOperator implements Operator {\n constructor(private nextOrObserver?: PartialObserver | ((x: T) => void),\n private error?: (e: any) => void,\n private complete?: () => void) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\n\nclass TapSubscriber extends Subscriber {\n private _context: any;\n\n private _tapNext: ((value: T) => void) = noop;\n\n private _tapError: ((err: any) => void) = noop;\n\n private _tapComplete: (() => void) = noop;\n\n constructor(destination: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super(destination);\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n } else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n\n _next(value: T) {\n try {\n this._tapNext.call(this._context, value);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n\n _error(err: any) {\n try {\n this._tapError.call(this._context, err);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n\n _complete() {\n try {\n this._tapComplete.call(this._context, );\n } catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\n\nexport interface ThrottleConfig {\n leading?: boolean;\n trailing?: boolean;\n}\n\nexport const defaultThrottleConfig: ThrottleConfig = {\n leading: true,\n trailing: false\n};\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for a duration determined by another Observable, then repeats this\n * process.\n *\n * It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.\n *\n * ![](throttle.png)\n *\n * `throttle` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled by calling the `durationSelector` function with the source value,\n * which returns the \"duration\" Observable. When the duration Observable emits a\n * value or completes, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * ## Example\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { throttle } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttle(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration for each source value, returned as an Observable or a Promise.\n * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults\n * to `{ leading: true, trailing: false }`.\n * @return {Observable} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttle\n * @owner Observable\n */\nexport function throttle(durationSelector: (value: T) => SubscribableOrPromise,\n config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing));\n}\n\nclass ThrottleOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise,\n private leading: boolean,\n private trailing: boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)\n );\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc\n * @ignore\n * @extends {Ignored}\n */\nclass ThrottleSubscriber extends OuterSubscriber {\n private _throttled: Subscription;\n private _sendValue: T;\n private _hasValue = false;\n\n constructor(protected destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise,\n private _leading: boolean,\n private _trailing: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this._hasValue = true;\n this._sendValue = value;\n\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n } else {\n this.throttle(value);\n }\n }\n }\n\n private send() {\n const { _hasValue, _sendValue } = this;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n }\n\n private throttle(value: T): void {\n const duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n }\n\n private tryDurationSelector(value: T): SubscribableOrPromise {\n try {\n return this.durationSelector(value);\n } catch (err) {\n this.destination.error(err);\n return null;\n }\n }\n\n private throttlingDone() {\n const { _throttled, _trailing } = this;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n\n if (_trailing) {\n this.send();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.throttlingDone();\n }\n\n notifyComplete(): void {\n this.throttlingDone();\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { ThrottleConfig, defaultThrottleConfig } from './throttle';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for `duration` milliseconds, then repeats this process.\n *\n * Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.\n *\n * ![](throttleTime.png)\n *\n * `throttleTime` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled. After `duration` milliseconds (or the time unit determined\n * internally by the optional `scheduler`) has passed, the timer is disabled,\n * and this process repeats for the next source value. Optionally takes a\n * {@link SchedulerLike} for managing timers.\n *\n * ## Examples\n *\n * #### Limit click rate\n *\n * Emit clicks at a rate of at most one click per second\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { throttleTime } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * #### Double Click\n *\n * The following example only emits clicks which happen within a subsequent\n * delay of 400ms of the previous click. This for example can emulate a double\n * click. It makes use of the `trailing` parameter of the throttle configuration.\n *\n * ```ts\n * import { fromEvent, asyncScheduler } from 'rxjs';\n * import { throttleTime, withLatestFrom } from 'rxjs/operators';\n *\n * // defaultThottleConfig = { leading: true, trailing: false }\n * const throttleConfig = {\n * leading: false,\n * trailing: true\n * }\n *\n * const click = fromEvent(document, 'click');\n * const doubleClick = click.pipe(\n * throttleTime(400, asyncScheduler, throttleConfig)\n * );\n *\n * doubleClick.subscribe((throttleValue: Event) => {\n * console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);\n * });\n * ```\n *\n * If you enable the `leading` parameter in this example, the output would be the primary click and\n * the double click, but restricts additional clicks within 400ms.\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {number} duration Time to wait before emitting another value after\n * emitting the last value, measured in milliseconds or the time unit determined\n * internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the throttling.\n * @param {Object} config a configuration object to define `leading` and\n * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return {Observable} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttleTime\n * @owner Observable\n */\nexport function throttleTime(duration: number,\n scheduler: SchedulerLike = async,\n config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));\n}\n\nclass ThrottleTimeOperator implements Operator {\n constructor(private duration: number,\n private scheduler: SchedulerLike,\n private leading: boolean,\n private trailing: boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)\n );\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ThrottleTimeSubscriber extends Subscriber {\n private throttled: Subscription;\n private _hasTrailingValue: boolean = false;\n private _trailingValue: T = null;\n\n constructor(destination: Subscriber,\n private duration: number,\n private scheduler: SchedulerLike,\n private leading: boolean,\n private trailing: boolean) {\n super(destination);\n }\n\n protected _next(value: T) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n } else {\n this.add(this.throttled = this.scheduler.schedule>(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n } else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n }\n\n protected _complete() {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n } else {\n this.destination.complete();\n }\n }\n\n clearThrottle() {\n const throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n }\n}\n\ninterface DispatchArg {\n subscriber: ThrottleTimeSubscriber;\n}\n\nfunction dispatchNext(arg: DispatchArg) {\n const { subscriber } = arg;\n subscriber.clearThrottle();\n}\n","\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerLike, OperatorFunction } from '../types';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\n\n/**\n *\n * Emits an object containing the current value, and the time that has\n * passed between emitting the current value and the previous value, which is\n * calculated by using the provided `scheduler`'s `now()` method to retrieve\n * the current time at each emission, then calculating the difference. The `scheduler`\n * defaults to {@link asyncScheduler}, so by default, the `interval` will be in\n * milliseconds.\n *\n * Convert an Observable that emits items into one that\n * emits indications of the amount of time elapsed between those emissions.\n *\n * ![](timeinterval.png)\n *\n * ## Examples\n * Emit inteval between current value with the last value\n *\n * ```ts\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeinterval())\n * .subscribe(\n * value => console.log(value),\n * err => console.log(err),\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n * value => console.log(value),\n * err => console.log(err),\n * );\n *\n * // NOTE: The values will never be this precise,\n * // intervals created with `interval` or `setInterval`\n * // are non-deterministic.\n *\n * // {value: 0, interval: 1000}\n * // {value: 1, interval: 1000}\n * // {value: 2, interval: 1000}\n * ```\n *\n * @param {SchedulerLike} [scheduler] Scheduler used to get the current time.\n * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval\n * @method timeInterval\n */\nexport function timeInterval(scheduler: SchedulerLike = async): OperatorFunction> {\n return (source: Observable) => defer(() => {\n return source.pipe(\n // TODO(benlesh): correct these typings.\n scan(\n ({ current }, value) => ({ value, current: scheduler.now(), last: current }),\n { current: scheduler.now(), value: undefined, last: undefined }\n ) as any,\n map>(({ current, last, value }) => new TimeInterval(value, current - last)),\n );\n });\n}\n\n// TODO(benlesh): make this an interface, export the interface, but not the implemented class,\n// there's no reason users should be manually creating this type.\n\n/**\n * @deprecated exposed API, use as interface only.\n */\nexport class TimeInterval {\n constructor(public value: T, public interval: number) {}\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function timeoutWith(due: number | Date, withObservable: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n *\n * Errors if Observable does not emit a value in given time span, in case of which\n * subscribes to the second Observable.\n *\n * It's a version of `timeout` operator that let's you specify fallback Observable.\n *\n * ![](timeoutWith.png)\n *\n * `timeoutWith` is a variation of `timeout` operator. It behaves exactly the same,\n * still accepting as a first argument either a number or a Date, which control - respectively -\n * when values of source Observable should be emitted or when it should complete.\n *\n * The only difference is that it accepts a second, required parameter. This parameter\n * should be an Observable which will be subscribed when source Observable fails any timeout check.\n * So whenever regular `timeout` would emit an error, `timeoutWith` will instead start re-emitting\n * values from second Observable. Note that this fallback Observable is not checked for timeouts\n * itself, so it can emit values and complete at arbitrary points in time. From the moment of a second\n * subscription, Observable returned from `timeoutWith` simply mirrors fallback stream. When that\n * stream completes, it completes as well.\n *\n * Scheduler, which in case of `timeout` is provided as as second argument, can be still provided\n * here - as a third, optional parameter. It still is used to schedule timeout checks and -\n * as a consequence - when second Observable will be subscribed, since subscription happens\n * immediately after failing check.\n *\n * ## Example\n * Add fallback observable\n * ```ts\n * import { intrerval } from 'rxjs';\n * import { timeoutWith } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n * const minutes = interval(60 * 1000);\n *\n * seconds.pipe(timeoutWith(900, minutes))\n * .subscribe(\n * value => console.log(value), // After 900ms, will start emitting `minutes`,\n * // since first value of `seconds` will not arrive fast enough.\n * err => console.log(err), // Would be called after 900ms in case of `timeout`,\n * // but here will never be called.\n * );\n * ```\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n * or Date specifying before when Observable should complete\n * @param {Observable} withObservable Observable which will be subscribed if source fails timeout check.\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable} Observable that mirrors behaviour of source or, when timeout check fails, of an Observable\n * passed as a second parameter.\n * @method timeoutWith\n * @owner Observable\n */\nexport function timeoutWith(due: number | Date,\n withObservable: ObservableInput,\n scheduler: SchedulerLike = async): OperatorFunction {\n return (source: Observable) => {\n let absoluteTimeout = isDate(due);\n let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\n\nclass TimeoutWithOperator implements Operator {\n constructor(private waitFor: number,\n private absoluteTimeout: boolean,\n private withObservable: ObservableInput,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TimeoutWithSubscriber(\n subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TimeoutWithSubscriber extends OuterSubscriber {\n\n private action: SchedulerAction> = null;\n\n constructor(destination: Subscriber,\n private absoluteTimeout: boolean,\n private waitFor: number,\n private withObservable: ObservableInput,\n private scheduler: SchedulerLike) {\n super(destination);\n this.scheduleTimeout();\n }\n\n private static dispatchTimeout(subscriber: TimeoutWithSubscriber): void {\n const { withObservable } = subscriber;\n ( subscriber)._unsubscribeAndRecycle();\n subscriber.add(subscribeToResult(subscriber, withObservable));\n }\n\n private scheduleTimeout(): void {\n const { action } = this;\n if (action) {\n // Recycle the action if we've already scheduled one. All the production\n // Scheduler Actions mutate their state/delay time and return themeselves.\n // VirtualActions are immutable, so they create and return a clone. In this\n // case, we need to set the action reference to the most recent VirtualAction,\n // to ensure that's the one we clone from next time.\n this.action = (>> action.schedule(this, this.waitFor));\n } else {\n this.add(this.action = (>> this.scheduler.schedule>(\n TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this\n )));\n }\n }\n\n protected _next(value: T): void {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n super._next(value);\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n }\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\n\n/**\n *\n * Errors if Observable does not emit a value in given time span.\n *\n * Timeouts on Observable that doesn't emit values fast enough.\n *\n * ![](timeout.png)\n *\n * `timeout` operator accepts as an argument either a number or a Date.\n *\n * If number was provided, it returns an Observable that behaves like a source\n * Observable, unless there is a period of time where there is no value emitted.\n * So if you provide `100` as argument and first value comes after 50ms from\n * the moment of subscription, this value will be simply re-emitted by the resulting\n * Observable. If however after that 100ms passes without a second value being emitted,\n * stream will end with an error and source Observable will be unsubscribed.\n * These checks are performed throughout whole lifecycle of Observable - from the moment\n * it was subscribed to, until it completes or errors itself. Thus every value must be\n * emitted within specified period since previous value.\n *\n * If provided argument was Date, returned Observable behaves differently. It throws\n * if Observable did not complete before provided Date. This means that periods between\n * emission of particular values do not matter in this case. If Observable did not complete\n * before provided Date, source Observable will be unsubscribed. Other than that, resulting\n * stream behaves just as source Observable.\n *\n * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments)\n * when returned Observable will check if source stream emitted value or completed.\n *\n * ## Examples\n * Check if ticks are emitted within certain timespan\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeout } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeout(1100)) // Let's use bigger timespan to be safe,\n * // since `interval` might fire a bit later then scheduled.\n * .subscribe(\n * value => console.log(value), // Will emit numbers just as regular `interval` would.\n * err => console.log(err), // Will never be called.\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n * value => console.log(value), // Will never be called.\n * err => console.log(err), // Will emit error before even first value is emitted,\n * // since it did not arrive within 900ms period.\n * );\n * ```\n *\n * Use Date to check if Observable completed\n * ```ts\n * import { interval } from 'rxjs';\n * import { timeout } from 'rxjs/operators';\n *\n * const seconds = interval(1000);\n *\n * seconds.pipe(\n * timeout(new Date(\"December 17, 2020 03:24:00\")),\n * )\n * .subscribe(\n * value => console.log(value), // Will emit values as regular `interval` would\n * // until December 17, 2020 at 03:24:00.\n * err => console.log(err) // On December 17, 2020 at 03:24:00 it will emit an error,\n * // since Observable did not complete by then.\n * );\n * ```\n * @see {@link timeoutWith}\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n * or Date specifying before when Observable should complete\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable} Observable that mirrors behaviour of source, unless timeout checks fail.\n * @method timeout\n * @owner Observable\n */\nexport function timeout(due: number | Date,\n scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n","\nimport { async } from '../scheduler/async';\nimport { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types';\nimport { map } from './map';\n\n/**\n * Attaches a timestamp to each item emitted by an observable indicating when it was emitted\n *\n * The `timestamp` operator maps the *source* observable stream to an object of type\n * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value\n * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By\n * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01\n * 00:00:00:000) and therefore is of type `number`.\n *\n * ![](timestamp.png)\n *\n * ## Example\n *\n * In this example there is a timestamp attached to the documents click event.\n *\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { timestamp } from 'rxjs/operators';\n *\n * const clickWithTimestamp = fromEvent(document, 'click').pipe(\n * timestamp()\n * );\n *\n * // Emits data of type {value: MouseEvent, timestamp: number}\n * clickWithTimestamp.subscribe(data => {\n * console.log(data);\n * });\n * ```\n *\n * @param scheduler\n * @return {Observable>|WebSocketSubject|Observable}\n * @method timestamp\n * @owner Observable\n */\nexport function timestamp(scheduler: SchedulerLike = async): OperatorFunction> {\n return map((value: T) => new Timestamp(value, scheduler.now()));\n // return (source: Observable) => source.lift(new TimestampOperator(scheduler));\n}\n\nexport class Timestamp implements TimestampInterface {\n constructor(public value: T, public timestamp: number) {\n }\n}\n","import { reduce } from './reduce';\nimport { OperatorFunction } from '../types';\n\nfunction toArrayReducer(arr: T[], item: T, index: number) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\n\nexport function toArray(): OperatorFunction {\n return reduce(toArrayReducer, [] as T[]);\n}\n","import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\nimport { Subject } from '../Subject';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { Operator } from '../Operator';\n\n/**\n * Branch out the source Observable values as a nested Observable whenever\n * `windowBoundaries` emits.\n *\n * It's like {@link buffer}, but emits a nested Observable\n * instead of an array.\n *\n * ![](window.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping\n * windows. It emits the current window and opens a new one whenever the\n * Observable `windowBoundaries` emits an item. Because each window is an\n * Observable, the output is a higher-order Observable.\n *\n * ## Example\n * In every window of 1 second each, emit at most 2 click events\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { window, mergeAll, map, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const sec = interval(1000);\n * const result = clicks.pipe(\n * window(sec),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link buffer}\n *\n * @param {Observable} windowBoundaries An Observable that completes the\n * previous window and starts a new window.\n * @return {Observable>} An Observable of windows, which are\n * Observables emitting values of the source Observable.\n * @method window\n * @owner Observable\n */\nexport function window(windowBoundaries: Observable): OperatorFunction> {\n return function windowOperatorFunction(source: Observable) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\n\nclass WindowOperator implements Operator> {\n\n constructor(private windowBoundaries: Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n const windowSubscriber = new WindowSubscriber(subscriber);\n const sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowSubscriber extends OuterSubscriber {\n\n private window: Subject = new Subject();\n\n constructor(destination: Subscriber>) {\n super(destination);\n destination.next(this.window);\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openWindow();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this._complete();\n }\n\n protected _next(value: T): void {\n this.window.next(value);\n }\n\n protected _error(err: any): void {\n this.window.error(err);\n this.destination.error(err);\n }\n\n protected _complete(): void {\n this.window.complete();\n this.destination.complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.window = null;\n }\n\n private openWindow(): void {\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n const destination = this.destination;\n const newWindow = this.window = new Subject();\n destination.next(newWindow);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable with each\n * nested Observable emitting at most `windowSize` values.\n *\n * It's like {@link bufferCount}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowCount.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows every `startWindowEvery`\n * items, each containing no more than `windowSize` items. When the source\n * Observable completes or encounters an error, the output Observable emits\n * the current window and propagates the notification from the source\n * Observable. If `startWindowEvery` is not provided, then new windows are\n * started immediately at the start of the source and when each window completes\n * with size `windowSize`.\n *\n * ## Examples\n * Ignore every 3rd click event, starting from the first one\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowCount, map, mergeAll, skip } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowCount(3),\n * map(win => win.pipe(skip(1))), // skip first of every 3 clicks\n * mergeAll() // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Ignore every 3rd click event, starting from the third one\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowCount, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowCount(2, 3),\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferCount}\n *\n * @param {number} windowSize The maximum number of values emitted by each\n * window.\n * @param {number} [startWindowEvery] Interval at which to start a new window.\n * For example if `startWindowEvery` is `2`, then a new window will be started\n * on every other value from the source. A new window is started at the\n * beginning of the source by default.\n * @return {Observable>} An Observable of windows, which in turn\n * are Observable of values.\n * @method windowCount\n * @owner Observable\n */\nexport function windowCount(windowSize: number,\n startWindowEvery: number = 0): OperatorFunction> {\n return function windowCountOperatorFunction(source: Observable) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\n\nclass WindowCountOperator implements Operator> {\n\n constructor(private windowSize: number,\n private startWindowEvery: number) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowCountSubscriber extends Subscriber {\n private windows: Subject[] = [ new Subject() ];\n private count: number = 0;\n\n constructor(protected destination: Subscriber>,\n private windowSize: number,\n private startWindowEvery: number) {\n super(destination);\n destination.next(this.windows[0]);\n }\n\n protected _next(value: T) {\n const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n const destination = this.destination;\n const windowSize = this.windowSize;\n const windows = this.windows;\n const len = windows.length;\n\n for (let i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n const c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n const window = new Subject();\n windows.push(window);\n destination.next(window);\n }\n }\n\n protected _error(err: any) {\n const windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n }\n\n protected _complete() {\n const windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n }\n\n protected _unsubscribe() {\n this.count = 0;\n this.windows = null;\n }\n}\n","import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { OperatorFunction, SchedulerLike, SchedulerAction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable periodically\n * in time.\n *\n * It's like {@link bufferTime}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowTime.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable starts a new window periodically, as\n * determined by the `windowCreationInterval` argument. It emits each window\n * after a fixed timespan, specified by the `windowTimeSpan` argument. When the\n * source Observable completes or encounters an error, the output Observable\n * emits the current window and propagates the notification from the source\n * Observable. If `windowCreationInterval` is not provided, the output\n * Observable starts a new window when the previous window of duration\n * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window\n * will emit at most fixed number of values. Window will complete immediately\n * after emitting last value and next one still will open as specified by\n * `windowTimeSpan` and `windowCreationInterval` arguments.\n *\n * ## Examples\n * In every window of 1 second each, emit at most 2 click events\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000, 5000),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Same as example above but with maxWindowCount instead of take\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { windowTime, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000, 5000, 2), // each window has still at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferTime}\n *\n * @param {number} windowTimeSpan The amount of time to fill each window.\n * @param {number} [windowCreationInterval] The interval at which to start new\n * windows.\n * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of\n * values each window can emit before completion.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine window boundaries.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowTime\n * @owner Observable\n */\nexport function windowTime(windowTimeSpan: number,\n scheduler?: SchedulerLike): OperatorFunction>;\nexport function windowTime(windowTimeSpan: number,\n windowCreationInterval: number,\n scheduler?: SchedulerLike): OperatorFunction>;\nexport function windowTime(windowTimeSpan: number,\n windowCreationInterval: number,\n maxWindowSize: number,\n scheduler?: SchedulerLike): OperatorFunction>;\n\nexport function windowTime(windowTimeSpan: number): OperatorFunction> {\n let scheduler: SchedulerLike = async;\n let windowCreationInterval: number = null;\n let maxWindowSize: number = Number.POSITIVE_INFINITY;\n\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n } else if (isNumeric(arguments[2])) {\n maxWindowSize = arguments[2];\n }\n\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n } else if (isNumeric(arguments[1])) {\n windowCreationInterval = arguments[1];\n }\n\n return function windowTimeOperatorFunction(source: Observable) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\n\nclass WindowTimeOperator implements Operator> {\n\n constructor(private windowTimeSpan: number,\n private windowCreationInterval: number | null,\n private maxWindowSize: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowTimeSubscriber(\n subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler\n ));\n }\n}\n\ninterface CreationState {\n windowTimeSpan: number;\n windowCreationInterval: number;\n subscriber: WindowTimeSubscriber;\n scheduler: SchedulerLike;\n}\n\ninterface TimeSpanOnlyState {\n window: CountedSubject;\n windowTimeSpan: number;\n subscriber: WindowTimeSubscriber;\n }\n\ninterface CloseWindowContext {\n action: SchedulerAction>;\n subscription: Subscription;\n}\n\ninterface CloseState {\n subscriber: WindowTimeSubscriber;\n window: CountedSubject;\n context: CloseWindowContext;\n}\n\nclass CountedSubject extends Subject {\n private _numberOfNextedValues: number = 0;\n\n next(value?: T): void {\n this._numberOfNextedValues++;\n super.next(value);\n }\n\n get numberOfNextedValues(): number {\n return this._numberOfNextedValues;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowTimeSubscriber extends Subscriber {\n private windows: CountedSubject[] = [];\n\n constructor(protected destination: Subscriber>,\n private windowTimeSpan: number,\n private windowCreationInterval: number | null,\n private maxWindowSize: number,\n private scheduler: SchedulerLike) {\n super(destination);\n\n const window = this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n const closeState: CloseState = { subscriber: this, window, context: null };\n const creationState: CreationState = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler };\n this.add(scheduler.schedule>(dispatchWindowClose, windowTimeSpan, closeState));\n this.add(scheduler.schedule>(dispatchWindowCreation, windowCreationInterval, creationState));\n } else {\n const timeSpanOnlyState: TimeSpanOnlyState = { subscriber: this, window, windowTimeSpan };\n this.add(scheduler.schedule>(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n }\n\n protected _next(value: T): void {\n const windows = this.windows;\n const len = windows.length;\n for (let i = 0; i < len; i++) {\n const window = windows[i];\n if (!window.closed) {\n window.next(value);\n if (window.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window);\n }\n }\n }\n }\n\n protected _error(err: any): void {\n const windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n }\n\n protected _complete(): void {\n const windows = this.windows;\n while (windows.length > 0) {\n const window = windows.shift();\n if (!window.closed) {\n window.complete();\n }\n }\n this.destination.complete();\n }\n\n public openWindow(): CountedSubject {\n const window = new CountedSubject();\n this.windows.push(window);\n const destination = this.destination;\n destination.next(window);\n return window;\n }\n\n public closeWindow(window: CountedSubject): void {\n window.complete();\n const windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n }\n}\n\nfunction dispatchWindowTimeSpanOnly(this: SchedulerAction>, state: TimeSpanOnlyState): void {\n const { subscriber, windowTimeSpan, window } = state;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\n\nfunction dispatchWindowCreation(this: SchedulerAction>, state: CreationState): void {\n const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state;\n const window = subscriber.openWindow();\n const action = this;\n let context: CloseWindowContext = { action, subscription: null };\n const timeSpanState: CloseState = { subscriber, window, context };\n context.subscription = scheduler.schedule>(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\n\nfunction dispatchWindowClose(state: CloseState): void {\n const { subscriber, window, context } = state;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable starting from\n * an emission from `openings` and ending when the output of `closingSelector`\n * emits.\n *\n * It's like {@link bufferToggle}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowToggle.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows that contain those items\n * emitted by the source Observable between the time when the `openings`\n * Observable emits an item and when the Observable returned by\n * `closingSelector` emits an item.\n *\n * ## Example\n * Every other second, emit the click events from the next 500ms\n * ```ts\n * import { fromEvent, interval, EMPTY } from 'rxjs';\n * import { windowToggle, mergeAll } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const result = clicks.pipe(\n * windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),\n * mergeAll()\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowWhen}\n * @see {@link bufferToggle}\n *\n * @param {Observable} openings An observable of notifications to start new\n * windows.\n * @param {function(value: O): Observable} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns an Observable,\n * which, when it emits (either `next` or `complete`), signals that the\n * associated window should complete.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowToggle\n * @owner Observable\n */\nexport function windowToggle(openings: Observable,\n closingSelector: (openValue: O) => Observable): OperatorFunction> {\n return (source: Observable) => source.lift(new WindowToggleOperator(openings, closingSelector));\n}\n\nclass WindowToggleOperator implements Operator> {\n\n constructor(private openings: Observable,\n private closingSelector: (openValue: O) => Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowToggleSubscriber(\n subscriber, this.openings, this.closingSelector\n ));\n }\n}\n\ninterface WindowContext {\n window: Subject;\n subscription: Subscription;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowToggleSubscriber extends OuterSubscriber {\n private contexts: WindowContext[] = [];\n private openSubscription: Subscription;\n\n constructor(destination: Subscriber>,\n private openings: Observable,\n private closingSelector: (openValue: O) => Observable) {\n super(destination);\n this.add(this.openSubscription = subscribeToResult(this, openings, openings as any));\n }\n\n protected _next(value: T) {\n const { contexts } = this;\n if (contexts) {\n const len = contexts.length;\n for (let i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n }\n\n protected _error(err: any) {\n\n const { contexts } = this;\n this.contexts = null;\n\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n\n while (++index < len) {\n const context = contexts[index];\n context.window.error(err);\n context.subscription.unsubscribe();\n }\n }\n\n super._error(err);\n }\n\n protected _complete() {\n const { contexts } = this;\n this.contexts = null;\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n while (++index < len) {\n const context = contexts[index];\n context.window.complete();\n context.subscription.unsubscribe();\n }\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { contexts } = this;\n this.contexts = null;\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n while (++index < len) {\n const context = contexts[index];\n context.window.unsubscribe();\n context.subscription.unsubscribe();\n }\n }\n }\n\n notifyNext(outerValue: any, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n\n if (outerValue === this.openings) {\n let closingNotifier;\n try {\n const { closingSelector } = this;\n closingNotifier = closingSelector(innerValue);\n } catch (e) {\n return this.error(e);\n }\n\n const window = new Subject();\n const subscription = new Subscription();\n const context = { window, subscription };\n this.contexts.push(context);\n const innerSubscription = subscribeToResult(this, closingNotifier, context as any);\n\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n } else {\n (innerSubscription).context = context;\n subscription.add(innerSubscription);\n }\n\n this.destination.next(window);\n } else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n }\n\n notifyError(err: any): void {\n this.error(err);\n }\n\n notifyComplete(inner: Subscription): void {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(( inner).context));\n }\n }\n\n private closeWindow(index: number): void {\n if (index === -1) {\n return;\n }\n\n const { contexts } = this;\n const context = contexts[index];\n const { window, subscription } = context;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowWhen.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * ## Example\n * Emit only the first two clicks events in every window of [1-5] random seconds\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { windowWhen, map, mergeAll, take } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowWhen(() => interval(1000 + Math.random() * 4000)),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll() // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n */\nexport function windowWhen(closingSelector: () => Observable): OperatorFunction> {\n return function windowWhenOperatorFunction(source: Observable) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\n\nclass WindowOperator implements Operator> {\n constructor(private closingSelector: () => Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowSubscriber extends OuterSubscriber {\n private window: Subject;\n private closingNotification: Subscription;\n\n constructor(protected destination: Subscriber>,\n private closingSelector: () => Observable) {\n super(destination);\n this.openWindow();\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openWindow(innerSub);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.openWindow(innerSub);\n }\n\n protected _next(value: T): void {\n this.window.next(value);\n }\n\n protected _error(err: any): void {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n }\n\n protected _complete(): void {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n }\n\n private unsubscribeClosingNotification(): void {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n }\n\n private openWindow(innerSub: InnerSubscriber = null): void {\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n\n const window = this.window = new Subject();\n this.destination.next(window);\n\n let closingNotifier;\n try {\n const { closingSelector } = this;\n closingNotifier = closingSelector();\n } catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function withLatestFrom(project: (v1: T) => R): OperatorFunction;\nexport function withLatestFrom, R>(source2: O2, project: (v1: T, v2: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): OperatorFunction;\nexport function withLatestFrom>(source2: O2): OperatorFunction]>;\nexport function withLatestFrom, O3 extends ObservableInput>(v2: O2, v3: O3): OperatorFunction, ObservedValueOf]>;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput>(v2: O2, v3: O3, v4: O4): OperatorFunction, ObservedValueOf, ObservedValueOf]>;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>;\nexport function withLatestFrom(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\nexport function withLatestFrom(array: ObservableInput[]): OperatorFunction;\nexport function withLatestFrom(array: ObservableInput[], project: (...values: Array) => R): OperatorFunction;\n\n/* tslint:enable:max-line-length */\n\n/**\n * Combines the source Observable with other Observables to create an Observable\n * whose values are calculated from the latest values of each, only when the\n * source emits.\n *\n * Whenever the source Observable emits a value, it\n * computes a formula using that value plus the latest values from other input\n * Observables, then emits the output of that formula.\n *\n * ![](withLatestFrom.png)\n *\n * `withLatestFrom` combines each value from the source Observable (the\n * instance) with the latest values from the other input Observables only when\n * the source emits a value, optionally using a `project` function to determine\n * the value to be emitted on the output Observable. All input Observables must\n * emit at least one value before the output Observable will emit a value.\n *\n * ## Example\n * On every click event, emit an array with the latest timer event plus the click event\n * ```ts\n * import { fromEvent, interval } from 'rxjs';\n * import { withLatestFrom } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const result = clicks.pipe(withLatestFrom(timer));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatest}\n *\n * @param {ObservableInput} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Function} [project] Projection function for combining values\n * together. Receives all values in order of the Observables passed, where the\n * first parameter is a value from the source Observable. (e.g.\n * `a.pipe(withLatestFrom(b, c), map(([a1, b1, c1]) => a1 + b1 + c1))`). If this is not\n * passed, arrays will be emitted on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method withLatestFrom\n * @owner Observable\n */\nexport function withLatestFrom(...args: Array | ((...values: Array) => R)>): OperatorFunction {\n return (source: Observable) => {\n let project: any;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n const observables = []>args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\n\nclass WithLatestFromOperator implements Operator {\n constructor(private observables: Observable[],\n private project?: (...values: any[]) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WithLatestFromSubscriber extends OuterSubscriber {\n private values: any[];\n private toRespond: number[] = [];\n\n constructor(destination: Subscriber,\n private observables: Observable[],\n private project?: (...values: any[]) => Observable) {\n super(destination);\n const len = observables.length;\n this.values = new Array(len);\n\n for (let i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n\n for (let i = 0; i < len; i++) {\n let observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.values[outerIndex] = innerValue;\n const toRespond = this.toRespond;\n if (toRespond.length > 0) {\n const found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n }\n\n notifyComplete() {\n // noop\n }\n\n protected _next(value: T) {\n if (this.toRespond.length === 0) {\n const args = [value, ...this.values];\n if (this.project) {\n this._tryProject(args);\n } else {\n this.destination.next(args);\n }\n }\n }\n\n private _tryProject(args: any[]) {\n let result: any;\n try {\n result = this.project.apply(this, args);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { zip as zipStatic } from '../observable/zip';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(project: (v1: T) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(array: Array>): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(array: Array>, project: (v1: T, ...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static {@link zip}.\n */\nexport function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction {\n return function zipOperatorFunction(source: Observable) {\n return source.lift.call(zipStatic(source, ...observables));\n };\n}","import { ZipOperator } from '../observable/zip';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function zipAll(): OperatorFunction, T[]>;\nexport function zipAll(): OperatorFunction;\nexport function zipAll(project: (...values: T[]) => R): OperatorFunction, R>;\nexport function zipAll(project: (...values: Array) => R): OperatorFunction;\n\nexport function zipAll(project?: (...values: Array) => R): OperatorFunction {\n return (source: Observable) => source.lift(new ZipOperator(project));\n}\n","\n/* Operator exports */\nexport { audit } from '../internal/operators/audit';\nexport { auditTime } from '../internal/operators/auditTime';\nexport { buffer } from '../internal/operators/buffer';\nexport { bufferCount } from '../internal/operators/bufferCount';\nexport { bufferTime } from '../internal/operators/bufferTime';\nexport { bufferToggle } from '../internal/operators/bufferToggle';\nexport { bufferWhen } from '../internal/operators/bufferWhen';\nexport { catchError } from '../internal/operators/catchError';\nexport { combineAll } from '../internal/operators/combineAll';\nexport { combineLatest } from '../internal/operators/combineLatest';\nexport { concat } from '../internal/operators/concat';\nexport { concatAll } from '../internal/operators/concatAll';\nexport { concatMap } from '../internal/operators/concatMap';\nexport { concatMapTo } from '../internal/operators/concatMapTo';\nexport { count } from '../internal/operators/count';\nexport { debounce } from '../internal/operators/debounce';\nexport { debounceTime } from '../internal/operators/debounceTime';\nexport { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';\nexport { delay } from '../internal/operators/delay';\nexport { delayWhen } from '../internal/operators/delayWhen';\nexport { dematerialize } from '../internal/operators/dematerialize';\nexport { distinct } from '../internal/operators/distinct';\nexport { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';\nexport { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';\nexport { elementAt } from '../internal/operators/elementAt';\nexport { endWith } from '../internal/operators/endWith';\nexport { every } from '../internal/operators/every';\nexport { exhaust } from '../internal/operators/exhaust';\nexport { exhaustMap } from '../internal/operators/exhaustMap';\nexport { expand } from '../internal/operators/expand';\nexport { filter } from '../internal/operators/filter';\nexport { finalize } from '../internal/operators/finalize';\nexport { find } from '../internal/operators/find';\nexport { findIndex } from '../internal/operators/findIndex';\nexport { first } from '../internal/operators/first';\nexport { groupBy } from '../internal/operators/groupBy';\nexport { ignoreElements } from '../internal/operators/ignoreElements';\nexport { isEmpty } from '../internal/operators/isEmpty';\nexport { last } from '../internal/operators/last';\nexport { map } from '../internal/operators/map';\nexport { mapTo } from '../internal/operators/mapTo';\nexport { materialize } from '../internal/operators/materialize';\nexport { max } from '../internal/operators/max';\nexport { merge } from '../internal/operators/merge';\nexport { mergeAll } from '../internal/operators/mergeAll';\nexport { mergeMap } from '../internal/operators/mergeMap';\nexport { mergeMap as flatMap } from '../internal/operators/mergeMap';\nexport { mergeMapTo } from '../internal/operators/mergeMapTo';\nexport { mergeScan } from '../internal/operators/mergeScan';\nexport { min } from '../internal/operators/min';\nexport { multicast } from '../internal/operators/multicast';\nexport { observeOn } from '../internal/operators/observeOn';\nexport { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';\nexport { pairwise } from '../internal/operators/pairwise';\nexport { partition } from '../internal/operators/partition';\nexport { pluck } from '../internal/operators/pluck';\nexport { publish } from '../internal/operators/publish';\nexport { publishBehavior } from '../internal/operators/publishBehavior';\nexport { publishLast } from '../internal/operators/publishLast';\nexport { publishReplay } from '../internal/operators/publishReplay';\nexport { race } from '../internal/operators/race';\nexport { reduce } from '../internal/operators/reduce';\nexport { repeat } from '../internal/operators/repeat';\nexport { repeatWhen } from '../internal/operators/repeatWhen';\nexport { retry } from '../internal/operators/retry';\nexport { retryWhen } from '../internal/operators/retryWhen';\nexport { refCount } from '../internal/operators/refCount';\nexport { sample } from '../internal/operators/sample';\nexport { sampleTime } from '../internal/operators/sampleTime';\nexport { scan } from '../internal/operators/scan';\nexport { sequenceEqual } from '../internal/operators/sequenceEqual';\nexport { share } from '../internal/operators/share';\nexport { shareReplay } from '../internal/operators/shareReplay';\nexport { single } from '../internal/operators/single';\nexport { skip } from '../internal/operators/skip';\nexport { skipLast } from '../internal/operators/skipLast';\nexport { skipUntil } from '../internal/operators/skipUntil';\nexport { skipWhile } from '../internal/operators/skipWhile';\nexport { startWith } from '../internal/operators/startWith';\nexport { subscribeOn } from '../internal/operators/subscribeOn';\nexport { switchAll } from '../internal/operators/switchAll';\nexport { switchMap } from '../internal/operators/switchMap';\nexport { switchMapTo } from '../internal/operators/switchMapTo';\nexport { take } from '../internal/operators/take';\nexport { takeLast } from '../internal/operators/takeLast';\nexport { takeUntil } from '../internal/operators/takeUntil';\nexport { takeWhile } from '../internal/operators/takeWhile';\nexport { tap } from '../internal/operators/tap';\nexport { throttle } from '../internal/operators/throttle';\nexport { throttleTime } from '../internal/operators/throttleTime';\nexport { throwIfEmpty } from '../internal/operators/throwIfEmpty';\nexport { timeInterval } from '../internal/operators/timeInterval';\nexport { timeout } from '../internal/operators/timeout';\nexport { timeoutWith } from '../internal/operators/timeoutWith';\nexport { timestamp } from '../internal/operators/timestamp';\nexport { toArray } from '../internal/operators/toArray';\nexport { window } from '../internal/operators/window';\nexport { windowCount } from '../internal/operators/windowCount';\nexport { windowTime } from '../internal/operators/windowTime';\nexport { windowToggle } from '../internal/operators/windowToggle';\nexport { windowWhen } from '../internal/operators/windowWhen';\nexport { withLatestFrom } from '../internal/operators/withLatestFrom';\nexport { zip } from '../internal/operators/zip';\nexport { zipAll } from '../internal/operators/zipAll';\n","import {\n CacheLayerInterface,\n CacheServiceConfigInterface\n} from './cache-layer.interfaces';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { filter, map, timeoutWith, skip, take } from 'rxjs/operators';\n\nexport class CacheLayer {\n public items: BehaviorSubject> = new BehaviorSubject([]);\n public name: string;\n public config: CacheServiceConfigInterface;\n public map: Map = new Map();\n\n public get(name): T {\n return this.map.get(name);\n }\n\n constructor(layer: CacheLayerInterface) {\n this.name = layer.name;\n this.config = layer.config;\n this.initHook(layer);\n }\n\n private initHook(layer) {\n if (this.config.maxAge) {\n this.onExpireAll(layer);\n }\n }\n\n private onExpireAll(layer) {\n layer.items.forEach(item => this.onExpire(item['key']));\n }\n\n private putItemHook(layerItem): void {\n if (this.config.maxAge) {\n this.onExpire(layerItem['key']);\n }\n }\n\n public getItem(key: string): T {\n if (this.map.has(key)) {\n return this.get(key);\n } else {\n return null;\n }\n }\n\n public putItem(layerItem: T): T {\n this.map.set(layerItem['key'], layerItem);\n const item = this.get(layerItem['key']);\n const filteredItems = this.items\n .getValue()\n .filter(item => item['key'] !== layerItem['key']);\n this.items.next([...filteredItems, item]);\n this.putItemHook(layerItem);\n return layerItem;\n }\n\n private onExpire(key: string) {\n return new Observable(observer => observer.next())\n .pipe(\n timeoutWith(this.config.maxAge, of(1)),\n skip(1),\n take(1)\n )\n .subscribe(() => this.removeItem(key));\n }\n\n public removeItem(key: string): void {\n const newLayerItems = this.items\n .getValue()\n .filter(item => item['key'] !== key);\n this.map.delete(key);\n this.items.next(newLayerItems);\n }\n\n public getItemObservable(key: string): Observable {\n return this.items.asObservable().pipe(\n filter(() => !!this.map.has(key)),\n map(() => this.map.get(key))\n );\n }\n\n public flushCache(): Observable {\n return this.items.asObservable().pipe(\n map(items => {\n items.forEach(i => this.removeItem(i['key']));\n return true;\n })\n );\n }\n}\n","function strEnum(o: Array): { [K in T]: K } {\n return o.reduce((res, key) => {\n res[key] = key;\n return res;\n }, Object.create(null));\n}\nexport const InternalEvents = strEnum(['load', 'config']);\nexport type InternalEvents = keyof typeof InternalEvents;\n\nexport const InternalLayers = strEnum(['globalConfig', 'modules']);\nexport type InternalLayers = keyof typeof InternalLayers;\n","export class LoggerConfig {\n logging?: boolean = process.env.LOGGING === 'true' ? true : false;\n hashes?: boolean = true;\n date?: boolean = true;\n exitHandler?: boolean = true;\n fileService?: boolean = true;\n}\n\nexport class PrivateCryptoModel {\n algorithm?: string;\n cyperIv?: string;\n cyperKey?: string;\n}\n\nexport class ExperimentalFeatures {\n // crypto?: PrivateCryptoModel;\n logExtendedInjectables?: boolean;\n showModuleWithDependencies?: boolean;\n}\n\nexport class InitOptionsConfig {\n services?: boolean;\n controllers?: boolean;\n effects?: boolean;\n pluginsBefore?: boolean;\n plugins?: boolean;\n components?: boolean;\n pluginsAfter?;\n}\n\nexport class ConfigModel {\n init?: boolean = true;\n initOptions?: InitOptionsConfig = new InitOptionsConfig();\n experimental?: ExperimentalFeatures = new ExperimentalFeatures();\n logger?: LoggerConfig = new LoggerConfig();\n strict?: boolean;\n}\n","import { Service } from '../../decorators/service/Service';\nimport { ConfigModel } from './config.model';\n\n@Service()\nexport class ConfigService {\n config: ConfigModel = new ConfigModel();\n setConfig(config: ConfigModel) {\n Object.assign(this.config, config);\n }\n}\n","export * from './config.model';\nexport * from './config.service';","import { Container } from '../../container';\n\nexport function Injector(Service: T): Function {\n return function (target: Function, propertyName: string) {\n Object.defineProperty(target, propertyName, {\n get: () => Container.get(Service)\n });\n };\n}\n","import { Service } from '../../decorators/service/Service';\nimport { ConfigService } from '../config/index';\nimport { Injector } from '../../decorators/injector/injector.decorator';\n\n@Service()\nexport class BootstrapLogger {\n @Injector(ConfigService) configService: ConfigService;\n\n log(message: string) {\n if (this.configService.config.logger.logging) {\n const m = [this.logDate(), message];\n console.log(...m);\n return m;\n }\n }\n\n error(message: string) {\n console.error(message);\n }\n\n logImporter(message: string) {\n if (this.configService.config.logger.logging) {\n return this.log(message);\n }\n }\n\n logDate() {\n if (this.configService.config.logger.date) {\n return `${Date.now().toPrecision()}`;\n } else {\n return '';\n }\n }\n\n logFileService(message: string) {\n if (this.configService.config.logger.fileService) {\n this.log(message);\n return '``';\n }\n }\n\n logHashes(message: string) {\n if (this.configService.config.logger.hashes) {\n return message;\n } else {\n return '';\n }\n }\n\n logExitHandler(message: string) {\n if (this.configService.config.logger.exitHandler) {\n this.log(message);\n } else {\n return '';\n }\n }\n}\n","export * from './bootstrap-logger';","import { BehaviorSubject, Observable, of } from 'rxjs';\nimport { take, map, timeoutWith, skip } from 'rxjs/operators';\nimport { CacheLayer } from './cache-layer';\nimport {\n CacheLayerItem,\n CacheLayerInterface,\n Duplicates\n} from './cache-layer.interfaces';\nimport { InternalEvents, InternalLayers } from '../../helpers/events';\nimport { Service } from '../../decorators/service/Service';\nimport {\n Metadata,\n ServiceArgumentsInternal\n} from '../../decorators/module/module.interfaces';\nimport { BootstrapLogger } from '../bootstrap-logger/index';\n\nconst FRIENDLY_ERROR_MESSAGES = {\n TRY_TO_UNSUBSCRIBE:\n 'Someone try to unsubscribe from collection directly... agghhh.. read docs! Blame: '\n};\n\n@Service()\nexport class CacheService {\n constructor(private logger: BootstrapLogger) {}\n\n public _cachedLayers: BehaviorSubject<\n CacheLayer>[]\n > = new BehaviorSubject([]);\n public map: Map = new Map();\n config: any = {};\n\n public static createCacheInstance(\n cacheLayer\n ): CacheLayer> {\n return new CacheLayer>(cacheLayer);\n }\n\n public getLayer(name: string): CacheLayer> {\n const exists = this.map.has(name);\n if (!exists) {\n return this.createLayer({ name: name });\n }\n return this.map.get(name);\n }\n\n public getLayersByName(name: string): CacheLayer>[] {\n return Array.from(this.map.keys())\n .map(item => {\n if (\n item !== InternalLayers.modules &&\n item !== InternalLayers.globalConfig\n ) {\n const config = this.getLayer<{\n moduleName: string;\n moduleHash: string;\n }>(item).getItem(InternalEvents.config);\n if (config && config.data && name === config.data.moduleName) {\n return this.getLayer(config.data.moduleHash);\n }\n }\n })\n .filter(i => !!i) as any;\n }\n\n public searchForDuplicateDependenciesInsideApp() {\n const uniq = [].concat\n .apply(\n [],\n Array.from(this.map.keys()).map(key =>\n Array.from(this.getLayer(key).map.keys())\n .map(key => (!this.isExcludedEvent(key) ? key : null))\n .filter(i => !!i)\n )\n )\n .map(name => Object.create({ count: 1, name }))\n .reduce((a, b) => {\n a[b.name] = (a[b.name] || 0) + b.count;\n return a;\n }, {});\n const duplicates = Object.keys(uniq).filter(a => uniq[a] > 1);\n if (duplicates.length) {\n const dups = this.searchForDuplicatesByHash(duplicates[0]);\n const moduleType =\n dups[0].class['metadata']['type'].charAt(0).toUpperCase() +\n dups[0].class['metadata']['type'].slice(1);\n throw new Error(`\n ${dups[0].class['metadata'].raw}\n ${moduleType}: '${dups[0].originalName}' found multiple times!\n ${moduleType} hash: ${dups[0].moduleHash}\n Modules: [${dups[0].moduleName}, ${dups[1].moduleName}]\n\n Hint: '${\n dups[0].originalName\n }' class identity hash is identical in both\n imported files inside ${dups[0].moduleName} and ${\n dups[1].moduleName\n }\n consider removing one of the '${dups[0].originalName}'\n `);\n }\n return duplicates;\n }\n\n private isExcludedEvent(i: any) {\n return i === InternalEvents.config || i === InternalEvents.load;\n }\n\n public searchForItem(classItem: Function): ServiceArgumentsInternal {\n return Array.from(this.map.keys())\n .map(module => {\n const currentModule = this.getLayer(module);\n const currentModuleDependencies = Array.from(currentModule.map.keys());\n const found = currentModuleDependencies.filter(i => {\n if (this.isExcludedEvent(i)) {\n return;\n } else {\n return i === classItem.name;\n }\n });\n if (found.length) {\n return currentModule.getItem(found[0]).data;\n }\n })\n .filter(i => !!i)[0] as ServiceArgumentsInternal;\n }\n\n public searchForDuplicatesByHash(key: string): Duplicates[] {\n return Array.from(this.map.keys())\n .map(module => {\n const currentModule = this.getLayer(module);\n const found = Array.from(currentModule.map.keys()).filter(i => {\n if (this.isExcludedEvent(i)) {\n return;\n }\n return i === key;\n });\n\n if (found.length) {\n const currentFoundItem = currentModule.getItem(found[0]);\n const currentModuleName = this.getLayer(module).getItem(\n InternalEvents.config\n );\n return {\n moduleName: currentModuleName.data.moduleName,\n moduleHash: currentModuleName.data.moduleHash,\n originalName: currentFoundItem.data.originalName,\n dupeName: currentFoundItem.key,\n raw: currentModuleName.data.raw,\n class: currentFoundItem.data\n };\n }\n })\n .filter(i => !!i) as any;\n }\n\n public createLayer(\n layer: CacheLayerInterface\n ): CacheLayer> {\n const exists = this.map.has(layer.name);\n if (exists) {\n return this.map.get(layer.name);\n }\n layer.items = layer.items || [];\n layer.config = layer.config || this.config;\n const cacheLayer = CacheService.createCacheInstance(layer);\n this.map.set(cacheLayer.name, cacheLayer);\n this._cachedLayers.next([...this._cachedLayers.getValue(), cacheLayer]);\n this.LayerHook(cacheLayer);\n return cacheLayer;\n }\n\n private LayerHook(layerInstance: CacheLayer>): void {\n this.protectLayerFromInvaders(layerInstance);\n if (\n layerInstance.config.cacheFlushInterval ||\n this.config.cacheFlushInterval\n ) {\n this.OnExpire(layerInstance);\n }\n }\n\n private protectLayerFromInvaders(\n cacheLayer: CacheLayer>\n ): void {\n cacheLayer.items.constructor.prototype.unsubsribeFromLayer =\n cacheLayer.items.constructor.prototype.unsubscribe;\n cacheLayer.items.constructor.prototype.unsubscribe = () => {\n console.error(\n FRIENDLY_ERROR_MESSAGES.TRY_TO_UNSUBSCRIBE + cacheLayer.name\n );\n };\n }\n\n private OnExpire(layerInstance: CacheLayer>) {\n return new Observable(observer => observer.next())\n .pipe(\n timeoutWith(\n layerInstance.config.cacheFlushInterval ||\n this.config.cacheFlushInterval,\n of(1)\n ),\n skip(1),\n take(1)\n )\n .subscribe(() => this.removeLayer(layerInstance));\n }\n\n public removeLayer(layerInstance: CacheLayer>): void {\n this.map.delete(layerInstance.name);\n this._cachedLayers.next([\n ...this._cachedLayers\n .getValue()\n .filter(layer => layer.name !== layerInstance.name)\n ]);\n }\n\n public transferItems(\n name: string,\n newCacheLayers: CacheLayerInterface[]\n ): CacheLayer>[] {\n const oldLayer = this.getLayer(name);\n const newLayers = [];\n newCacheLayers.forEach(layerName => {\n const newLayer = this.createLayer(layerName);\n oldLayer.items.getValue().forEach(item => newLayer.putItem(item));\n newLayers.push(newLayer);\n });\n return newLayers;\n }\n\n public flushCache(): Observable {\n let oldLayersNames: string[];\n return this._cachedLayers.pipe(\n take(1),\n map((layers: any[]) => {\n oldLayersNames = layers.map(l => l.name);\n layers.forEach(layer => this.removeLayer(layer));\n oldLayersNames.forEach(l => this.createLayer({ name: l }));\n return true;\n })\n );\n }\n}\n","import { Metadata } from '../../decorators/module/module.interfaces';\n\nexport interface CacheLayerItem {\n key: string;\n data: T;\n}\n\nexport class CacheServiceConfigInterface {\n deleteOnExpire?: string = 'aggressive';\n cacheFlushInterval?: number | null = 60 * 60 * 1000;\n maxAge?: number | null = 15 * 60 * 1000;\n localStorage?: boolean = false;\n}\n\nexport interface CacheLayerInterface {\n name: string;\n config?: CacheServiceConfigInterface;\n items?: any;\n}\n\nexport interface Duplicates extends Metadata {\n dupeName: string;\n originalName: string;\n class: Function;\n}\n","export * from './cache-layer.service';\nexport * from './cache-layer';\nexport * from './cache-layer.interfaces';","import { BehaviorSubject } from 'rxjs';\n// import { PluginBase, PluginNameVersion, PluginPackage } from 'hapi';\nimport { Service } from '../../decorators/service/Service';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class PluginService {\n private plugins: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n private beforePlugins: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n private afterPlugins: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.plugins.next([...this.plugins.getValue(), plugin]);\n }\n\n registerBefore(plugin) {\n this.beforePlugins.next([...this.plugins.getValue(), plugin]);\n }\n\n registerAfter(plugin) {\n this.afterPlugins.next([...this.plugins.getValue(), plugin]);\n }\n\n getPlugins(): Array {\n return this.plugins.getValue();\n }\n\n getAfterPlugins() {\n return this.afterPlugins.getValue();\n }\n\n getBeforePlugins() {\n return this.beforePlugins.getValue();\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { Service } from '../../decorators/service/Service';\nimport { BootstrapLogger } from '../bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { Observable, Subject } from 'rxjs';\n\nexport type NodejsEvents =\n | 'beforeExit'\n | 'disconnect'\n | 'exit'\n | 'rejectionHandled'\n | 'uncaughtException'\n | 'unhandledRejection'\n | 'warning'\n | 'message'\n | 'newListener'\n | 'removeListener';\n\nexport type Signals =\n | 'SIGABRT'\n | 'SIGALRM'\n | 'SIGBUS'\n | 'SIGCHLD'\n | 'SIGCONT'\n | 'SIGFPE'\n | 'SIGHUP'\n | 'SIGILL'\n | 'SIGINT'\n | 'SIGIO'\n | 'SIGIOT'\n | 'SIGKILL'\n | 'SIGPIPE'\n | 'SIGPOLL'\n | 'SIGPROF'\n | 'SIGPWR'\n | 'SIGQUIT'\n | 'SIGSEGV'\n | 'SIGSTKFLT'\n | 'SIGSTOP'\n | 'SIGSYS'\n | 'SIGTERM'\n | 'SIGTRAP'\n | 'SIGTSTP'\n | 'SIGTTIN'\n | 'SIGTTOU'\n | 'SIGUNUSED'\n | 'SIGURG'\n | 'SIGUSR1'\n | 'SIGUSR2'\n | 'SIGVTALRM'\n | 'SIGWINCH'\n | 'SIGXCPU'\n | 'SIGXFSZ'\n | 'SIGBREAK'\n | 'SIGLOST'\n | 'SIGINFO';\n\n@Service()\nexport class ExitHandlerService {\n errorHandler: Subject = new Subject();\n @Injector(BootstrapLogger) private logger: BootstrapLogger;\n\n init() {}\n\n exitHandler(options, err) {\n this.errorHandler.next(err);\n if (options.cleanup) {\n this.logger.logExitHandler('AppStopped');\n }\n if (err) console.log(err.stack);\n if (options.exit) {\n this.logger.logExitHandler('Unhandled error rejection');\n }\n process.exit(0);\n }\n\n onExitApp(events: Array) {\n return new Observable(\n o =>\n events &&\n events.length &&\n events.forEach(event => process.on(event, e => o.next(e)))\n );\n }\n}\n","export * from './exit-handler.service';","import { Service } from '../../decorators/service/Service';\nimport { Observable } from 'rxjs';\n\n@Service()\nexport class LazyFactory {\n lazyFactories: Map = new Map();\n setLazyFactory(\n provide: string,\n factory: Observable | Promise\n ) {\n this.lazyFactories.set(provide, factory);\n return this.getLazyFactory(provide);\n }\n getLazyFactory(provide: string) {\n return this.lazyFactories.get(provide);\n }\n}\n","import { Service } from '../../../decorators/service/Service';\nimport {\n DecoratorType,\n ServiceArgumentsInternal\n} from '../../../decorators/module/module.interfaces';\n\n@Service()\nexport class ModuleValidators {\n validateEmpty(m, original: ServiceArgumentsInternal, type: DecoratorType) {\n if (!m) {\n const requiredType = type.charAt(0).toUpperCase() + type.slice(1);\n throw new Error(`\n ${original.metadata.raw}\n -> @Module: ${original.metadata.moduleName}\n -> @Module hash: ${original.metadata.moduleHash}\n --> Maybe you forgot to import some ${requiredType} inside ${\n original.metadata.moduleName\n } ?\n\n Hint: run ts-lint again, looks like imported ${requiredType} is undefined or null inside ${\n original.metadata.moduleName\n }\n `);\n }\n }\n\n genericWrongPluggableError(\n m,\n original: ServiceArgumentsInternal,\n type: DecoratorType\n ) {\n if (m.metadata.type !== type) {\n const moduleType =\n m.metadata.type.charAt(0).toUpperCase() + m.metadata.type.slice(1);\n const requiredType = type.charAt(0).toUpperCase() + type.slice(1);\n throw new Error(`\n ${original.metadata.raw}\n -> @Module: '${original.metadata.moduleName}'\n -> @Module hash: '${original.metadata.moduleHash}'\n --> @${moduleType} '${\n m.metadata.moduleName\n }' provided, where expected class decorated with '@${requiredType}' instead,\n -> @Hint: please provide class with @Service decorator or remove ${\n m.metadata.moduleName\n } class\n `);\n }\n }\n\n validateImports(m, original: ServiceArgumentsInternal) {\n if (m.metadata.type !== 'module') {\n throw new Error(`\n ${original.metadata.raw}\n -> @Module: '${original.metadata.moduleName}'\n -> @Module hash: '${original.metadata.moduleHash}'\n --> @${m.metadata.type.charAt(0).toUpperCase() +\n m.metadata.type.slice(1)} '${\n m.originalName\n }' provided, where expected class decorated with '@Module' instead,\n -> @Hint: please provide class with @Module decorator or remove ${\n m.originalName\n } from imports\n `);\n }\n }\n\n validateServices(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'service');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'service');\n }\n\n validatePlugin(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'plugin');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'plugin');\n }\n\n validateController(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'controller');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'controller');\n }\n\n validateEffect(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'effect');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'effect');\n }\n\n validateComponent(m, original: ServiceArgumentsInternal) {\n this.validateEmpty(m, original, 'component');\n if (m.provide) {\n return;\n }\n this.genericWrongPluggableError(m, original, 'component');\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class ControllersService {\n private controllers: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.controllers.next([...this.controllers.getValue(), plugin]);\n }\n\n getControllers() {\n return this.controllers.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class EffectsService {\n private effects: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.effects.next([...this.effects.getValue(), plugin]);\n }\n\n getEffects() {\n return this.effects.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class ComponentsService {\n private components: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.components.next([...this.components.getValue(), plugin]);\n }\n\n getComponents() {\n return this.components.getValue();\n }\n}\n","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class BootstrapsServices {\n\n private bootstraps: BehaviorSubject> = new BehaviorSubject([]);\n\n register(plugin) {\n this.bootstraps.next([...this.bootstraps.getValue(), plugin]);\n }\n\n getBootstraps() {\n return this.bootstraps.getValue();\n }\n\n}","import { Service } from '../../decorators/service/Service';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\n\n@Service()\nexport class ServicesService {\n private services: BehaviorSubject<\n Array\n > = new BehaviorSubject([]);\n\n register(plugin) {\n this.services.next([...this.services.getValue(), plugin]);\n }\n\n getServices() {\n return this.services.getValue();\n }\n}\n","import { of } from 'rxjs';\nimport { Container } from '../../container';\nimport { Service } from '../../decorators/service/Service';\nimport { LazyFactory } from '../lazy-factory/lazy-factory.service';\nimport { PluginService } from '../plugin/plugin.service';\nimport {\n ServiceArgumentsInternal,\n Metadata\n} from '../../decorators/module/module.interfaces';\n// import { ExternalImporter } from '../external-importer';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { ModuleValidators } from './helpers/validators';\nimport {\n constructorWatcherService,\n ConstructorWatcherService\n} from '../constructor-watcher/constructor-watcher';\nimport { ControllersService } from '../controllers/controllers.service';\nimport { EffectsService } from '../effect/effect.service';\nimport { ComponentsService } from '../components/components.service';\nimport { BootstrapsServices } from '../bootstraps/bootstraps.service';\nimport { ServicesService } from '../services/services.service';\nimport { CacheLayer, CacheLayerItem } from '../../services/cache/';\n\n@Service()\nexport class ModuleService {\n public watcherService: ConstructorWatcherService = constructorWatcherService;\n\n @Injector(LazyFactory) private lazyFactoryService: LazyFactory;\n @Injector(PluginService) private pluginService: PluginService;\n @Injector(ComponentsService) private componentsService: ComponentsService;\n @Injector(ControllersService) private controllersService: ControllersService;\n @Injector(EffectsService) private effectsService: EffectsService;\n @Injector(BootstrapsServices) private bootstraps: BootstrapsServices;\n // @Injector(ExternalImporter) private externalImporter: ExternalImporter;\n @Injector(ModuleValidators) private validators: ModuleValidators;\n @Injector(ServicesService) private servicesService: ServicesService;\n\n setServices(\n services: ServiceArgumentsInternal[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n services.forEach(service => {\n this.validators.validateServices(service, original);\n\n this.setInjectedDependencies(service);\n\n if (service.provide && service.provide.constructor === Function) {\n service.provide = service.provide['name'];\n }\n\n if (service.provide && service.useFactory) {\n this.setUseFactory(service);\n } else if (service.provide && service.useDynamic) {\n this.setUseDynamic(service);\n } else if (\n service.provide &&\n service.useClass &&\n service.useClass.constructor === Function\n ) {\n this.setUseClass(service);\n } else if (service.provide && service.useValue) {\n this.setUseValue(service);\n } else {\n currentModule.putItem({ data: service, key: service.name });\n this.servicesService.register(service);\n }\n });\n }\n\n setInjectedDependencies(service) {\n service.deps = service.deps || [];\n if (service.deps.length) {\n service.deps = service.deps.map(dep => Container.get(dep));\n }\n }\n\n setUseValue(service) {\n Container.set(service.provide, service.useValue);\n if (service.lazy) {\n this.lazyFactoryService.setLazyFactory(\n service.provide,\n of(Container.get(service.provide))\n );\n }\n }\n\n setUseClass(service) {\n if (service.lazy) {\n this.lazyFactoryService.setLazyFactory(\n service.provide,\n of(Container.get(service.useClass))\n );\n } else {\n Container.set(service.provide, Container.get(service.useClass));\n }\n }\n\n setUseDynamic(service) {\n // const factory = this.externalImporter.importModule(\n // service.useDynamic,\n // service.provide\n // );\n // this.lazyFactoryService.setLazyFactory(service.provide, factory);\n }\n\n setUseFactory(service) {\n const factory = service.useFactory;\n service.useFactory = () => factory(...service.deps);\n if (service.lazy) {\n this.lazyFactoryService.setLazyFactory(\n service.provide,\n service.useFactory()\n );\n } else {\n Container.set(service.provide, service.useFactory());\n }\n }\n\n setControllers(\n controllers: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n controllers.forEach(controller => {\n this.validators.validateController(controller, original);\n currentModule.putItem({\n data: controller,\n key: controller.name\n });\n this.controllersService.register(controller);\n });\n }\n\n setEffects(\n effects: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n effects.forEach(effect => {\n this.validators.validateEffect(effect, original);\n currentModule.putItem({\n data: effect,\n key: effect.name\n });\n this.effectsService.register(effect);\n });\n }\n\n setComponents(\n components: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n components.forEach(component => {\n this.validators.validateComponent(component, original);\n currentModule.putItem({\n data: component,\n key: component.name\n });\n this.componentsService.register(component);\n });\n }\n\n setPlugins(\n plugins: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n plugins.forEach(plugin => {\n this.validators.validatePlugin(plugin, original);\n currentModule.putItem({\n data: plugin,\n key: plugin.name\n });\n this.pluginService.register(plugin);\n });\n }\n\n setBootstraps(\n bootstraps: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n bootstraps.forEach(bootstrap => {\n this.validators.validateEmpty(\n bootstrap,\n original,\n bootstrap['metadata']['type']\n );\n currentModule.putItem({\n data: bootstrap,\n key: bootstrap.name\n });\n this.bootstraps.register(bootstrap);\n });\n }\n\n setAfterPlugins(\n plugins: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n plugins.forEach(plugin => {\n this.validators.validatePlugin(plugin, original);\n currentModule.putItem({\n data: plugin,\n key: plugin.name\n });\n this.pluginService.registerAfter(plugin);\n });\n }\n\n setBeforePlugins(\n plugins: Function[],\n original: ServiceArgumentsInternal,\n currentModule: CacheLayer>\n ) {\n plugins.forEach(plugin => {\n this.validators.validatePlugin(plugin, original);\n currentModule.putItem({\n data: plugin,\n key: plugin.name\n });\n this.pluginService.registerBefore(plugin);\n });\n }\n\n setImports(imports: Function[], original: ServiceArgumentsInternal) {\n imports.forEach((m: any) => {\n this.validators.validateImports(m, original);\n if (!m) {\n throw new Error('Missing import module');\n } else {\n Container.get(m);\n }\n });\n }\n}\n","export * from './module.service';\nexport * from './helpers/validators';","import { Container } from '../../container';\nimport { CacheService } from '../cache/cache-layer.service';\nimport { InternalLayers, InternalEvents } from '../../helpers/events';\nimport { switchMap, filter, map } from 'rxjs/operators';\nimport { of, Observable } from 'rxjs';\nimport { BootstrapLogger } from '../bootstrap-logger/bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { Service } from '../../decorators/service/Service';\n\n@Service()\nexport class ResolverService {\n @Injector(BootstrapLogger) private bootstrapLogger: BootstrapLogger;\n @Injector(CacheService) private cacheService: CacheService;\n\n resolveDependencies(hash, target, moduleName): Observable {\n this.cacheService\n .getLayer(InternalLayers.modules)\n .putItem({ key: hash, data: target });\n const currentModule = this.cacheService.getLayer(hash);\n currentModule.putItem({\n key: InternalEvents.config,\n data: { moduleName, moduleHash: hash }\n });\n return currentModule.getItemObservable(InternalEvents.load).pipe(\n switchMap(config => {\n if (!config.data) {\n return of(null);\n }\n return currentModule.items.asObservable();\n }),\n filter(res => res && res.length),\n map(this.resolveContainerDependencies(target, moduleName))\n );\n }\n\n private resolveContainerDependencies(target, moduleName: string) {\n return res => {\n res.forEach(i => {\n if (i.key === InternalEvents.load || i.key === InternalEvents.config) {\n return;\n }\n const found = this.cacheService.searchForItem(i.data);\n if (found) {\n if (found.provide) {\n return found;\n }\n const moduleType =\n found.metadata.type.charAt(0).toUpperCase() +\n found.metadata.type.slice(1);\n this.bootstrapLogger.log(\n `Start -> @Module('${moduleName}')${this.bootstrapLogger.logHashes(\n `(${target.name})`\n )}: @${moduleType}('${\n found.originalName\n }')${this.bootstrapLogger.logHashes(`(${found.name})`)}` +\n ' initialized!'\n );\n return Container.get(found);\n } else {\n throw new Error('not found');\n }\n });\n return res;\n };\n }\n}\n","export * from './resolver.service';\n","import { Service } from '../../decorators/service/Service';\nimport { Subject } from 'rxjs';\n\n@Service()\nexport class AfterStarterService {\n appStarted: Subject = new Subject();\n}\n","import { Container } from '../container/Container';\n\nexport const logExtendedInjectables = (\n name: { name: string },\n logExtendedInjectables: boolean\n) => {\n if (Container.has(name) && logExtendedInjectables) {\n console.log(\n `Warn: Injection Token '${name.name ||\n name}' is extended after it has being declared! ${JSON.stringify(\n Container.get(name)\n )}`\n );\n }\n};\n","import { of, combineLatest, from, Observable } from 'rxjs';\nimport { Container } from '../../container';\nimport { BootstrapLogger } from '../bootstrap-logger/bootstrap-logger';\nimport { CacheService } from '../cache/cache-layer.service';\nimport { InternalLayers, InternalEvents } from '../../helpers/events';\nimport { LazyFactory } from '../lazy-factory/lazy-factory.service';\nimport { ConfigService } from '../config/config.service';\nimport { PluginService } from '../plugin/plugin.service';\nimport { ConfigModel } from '../config/config.model';\nimport { take, map, switchMap, shareReplay } from 'rxjs/operators';\nimport { CacheLayer, CacheLayerItem } from '../cache/index';\nimport { EffectsService } from '../effect/effect.service';\nimport { ControllersService } from '../controllers/controllers.service';\nimport { ComponentsService } from '../components/components.service';\nimport { BootstrapsServices } from '../bootstraps/bootstraps.service';\nimport { ServicesService } from '../services/services.service';\nimport { AfterStarterService } from '../after-starter/after-starter.service';\nimport {\n ServiceArgumentsInternal,\n SystemIngridientsType\n} from '../../decorators/module/module.interfaces';\nimport { logExtendedInjectables } from '../../helpers/log';\nimport { Service } from '../../decorators/service/Service';\nimport { PluginInterface } from '../../decorators';\nimport { ObservableContainer } from '../../container/observable-interface';\n\n@Service()\nexport class BootstrapService {\n private globalConfig: CacheLayer>;\n\n constructor(\n private logger: BootstrapLogger,\n private cacheService: CacheService,\n private lazyFactoriesService: LazyFactory,\n public configService: ConfigService,\n private controllersService: ControllersService,\n private effectsService: EffectsService,\n private pluginService: PluginService,\n private componentsService: ComponentsService,\n private bootstrapsService: BootstrapsServices,\n private servicesService: ServicesService,\n private afterStarterService: AfterStarterService\n ) {\n this.globalConfig = this.cacheService.createLayer({\n name: InternalLayers.globalConfig\n });\n }\n\n public start(app, config?: ConfigModel) {\n this.configService.setConfig(config);\n this.globalConfig.putItem({ key: InternalEvents.config, data: config });\n Container.get(app);\n const lazyFactoryKeys = Array.from(\n this.lazyFactoriesService.lazyFactories.keys()\n );\n return of(lazyFactoryKeys).pipe(\n map(factories => this.prepareAsyncChainables(factories)),\n switchMap(res =>\n combineLatest(res).pipe(\n take(1),\n map(c => this.attachLazyLoadedChainables(lazyFactoryKeys, c)),\n map(() => this.validateSystem()),\n switchMap(() => combineLatest(this.asyncChainableControllers())),\n switchMap(() =>\n combineLatest(this.asyncChainablePluginsBeforeRegister())\n ),\n switchMap(() => combineLatest(this.asyncChainablePluginsRegister())),\n switchMap(() =>\n combineLatest(this.asyncChainablePluginsAfterRegister())\n ),\n switchMap(() => combineLatest(this.asyncChainableServices())),\n switchMap(() => combineLatest(this.asyncChainableEffects())),\n switchMap(() => combineLatest(this.asyncChainableComponents())),\n map(() => this.loadApplication()),\n switchMap(() => combineLatest(this.asyncChainableBootstraps())),\n map(() => this.final())\n )\n )\n );\n }\n\n private final(): ObservableContainer {\n this.afterStarterService.appStarted.next(true);\n if (!this.configService.config.init) {\n this.logger.log('Bootstrap -> press start!');\n }\n return Container as ObservableContainer;\n }\n\n private asyncChainableComponents() {\n return [\n of(true),\n ...this.componentsService\n .getComponents()\n .filter(c => this.genericFilter(c, 'components'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableBootstraps() {\n return [\n of(true),\n ...this.bootstrapsService\n .getBootstraps()\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableEffects() {\n return [\n of(true),\n ...this.effectsService\n .getEffects()\n .filter(c => this.genericFilter(c, 'effects'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableServices() {\n return [\n of(true),\n ...this.servicesService\n .getServices()\n .filter(c => this.genericFilter(c, 'services'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainableControllers() {\n return [\n of(true),\n ...this.controllersService\n .getControllers()\n .filter(c => this.genericFilter(c, 'controllers'))\n .map(async c => await Container.get(c))\n ];\n }\n\n private asyncChainablePluginsRegister() {\n return [\n of(true),\n ...this.pluginService\n .getPlugins()\n .filter(c => this.genericFilter(c, 'plugins'))\n .map(async c => await this.registerPlugin(c))\n ];\n }\n\n private asyncChainablePluginsAfterRegister() {\n return [\n of(true),\n ...this.pluginService\n .getAfterPlugins()\n .filter(c => this.genericFilter(c, 'pluginsAfter'))\n .map(async c => await this.registerPlugin(c))\n ];\n }\n\n private asyncChainablePluginsBeforeRegister() {\n return [\n of(true),\n ...this.pluginService\n .getBeforePlugins()\n .filter(c => this.genericFilter(c, 'pluginsBefore'))\n .map(async c => await this.registerPlugin(c))\n ];\n }\n\n private genericFilter(\n c: ServiceArgumentsInternal,\n name: SystemIngridientsType\n ) {\n return (\n this.configService.config.initOptions[name] ||\n (c.metadata.options && c.metadata.options['init']) ||\n this.configService.config.init\n );\n }\n\n private async registerPlugin(pluggable: ServiceArgumentsInternal) {\n const plugin = Container.get(pluggable);\n await plugin.register();\n return plugin;\n }\n\n private prepareAsyncChainables(injectables: any[]) {\n const asynChainables = [of(true)];\n const injectableLog: {\n [key: string]: { started: number; end: number };\n } = {} as any;\n const getName = n => n.name || n;\n injectables.map(i => {\n const date = Date.now();\n injectableLog[getName(i)] = {\n started: date,\n end: null\n };\n this.logger.log(`Bootstrap -> @Service('${getName(i)}'): loading...`);\n const somethingAsync = from( | Observable>(\n this.lazyFactoriesService.getLazyFactory(i)\n )).pipe(shareReplay(1));\n asynChainables.push(somethingAsync);\n somethingAsync.subscribe(() => {\n this.logger.log(\n `Bootstrap -> @Service('${getName(\n i\n )}'): loading finished after ${Date.now() -\n injectableLog[getName(i)].started}ms !`\n );\n delete injectableLog[getName(i)];\n });\n });\n return asynChainables;\n }\n\n private validateSystem() {\n if (this.configService.config.strict) {\n this.cacheService.searchForDuplicateDependenciesInsideApp();\n }\n }\n\n private attachLazyLoadedChainables(res, chainables) {\n // Remove first chainable unused observable\n chainables.splice(0, 1);\n let count = 0;\n res.map(name => {\n logExtendedInjectables(\n name,\n this.configService.config.experimental.logExtendedInjectables\n );\n Container.set(name, chainables[count++]);\n });\n return true;\n }\n\n loadApplication() {\n Array.from(\n this.cacheService.getLayer(InternalLayers.modules).map.keys()\n ).forEach(m =>\n this.cacheService.getLayer(m).putItem({\n key: InternalEvents.load,\n data: this.configService.config.init\n })\n );\n return true;\n }\n}\n","import { ExitHandlerService } from '../services/exit-handler/exit-handler.service';\nimport { Container } from '../container';\n\nexport const exitHandlerInit = () => {\n const handler = Container.get(ExitHandlerService);\n handler.init();\n\n // do something when app is closing\n process.on('exit', handler.exitHandler.bind(handler, { cleanup: true }));\n // catches ctrl+c event\n process.on('SIGINT', handler.exitHandler.bind(handler, { exit: true }));\n // catches 'kill pid' (for example: nodemon restart)\n process.on('SIGUSR1', handler.exitHandler.bind(handler, { exit: true }));\n process.on('SIGUSR2', handler.exitHandler.bind(handler, { exit: true }));\n // catches uncaught exceptions\n process.on(\n 'uncaughtException',\n handler.exitHandler.bind(handler, { exit: true })\n );\n};\n","import '@abraham/reflection';\n\nimport { Container } from '../container';\nimport { BootstrapService } from '../services/bootstrap/bootstrap.service';\nimport { ConfigModel } from '../services/config/config.model';\nimport { exitHandlerInit } from './exit-handler';\nimport { Observable } from 'rxjs';\nimport { ModuleArguments } from '../decorators/module/module.interfaces';\nimport { ObservableContainer } from '../container/observable-interface';\n\nexitHandlerInit();\n\nconst bootstrapService = Container.get(BootstrapService);\n\nexport const Bootstrap = (app, config?: ConfigModel): Observable =>\n bootstrapService.start(app, config) as never;\nexport const BootstrapPromisify = (\n app,\n config?: ConfigModel\n): Promise => bootstrapService.start(app, config).toPromise() as never;\nexport const BootstrapFramework = (\n app,\n modules: any[],\n config?: ConfigModel\n): Observable => {\n bootstrapService.configService.setConfig(config);\n modules.map(m => Container.get(m));\n return bootstrapService.start(app, config) as never;\n};\n\nexport const setup = (\n options: ModuleArguments,\n frameworks: any[] = [],\n bootstrapOptions?: ConfigModel\n) => {\n const Module = require('../decorators/module/module.decorator').Module;\n\n return BootstrapFramework(\n Module({\n imports: options.imports || [],\n providers: options.providers || [],\n services: options.services || [],\n bootstrap: options.bootstrap || [],\n components: options.components || [],\n controllers: options.controllers || [],\n effects: options.effects || [],\n plugins: options.plugins || [],\n afterPlugins: options.afterPlugins || [],\n beforePlugins: options.beforePlugins || []\n })(function() {}),\n frameworks,\n bootstrapOptions\n );\n};\n\nexport const createTestBed = setup;\n","export * from './bootstrap';\nexport * from './create-unique-hash';\nexport * from './generic-constructor';\nexport * from './sha256';\n// export * from './testing';","import { Service } from '../../decorators/service/Service';\nimport { createUniqueHash } from '../../helpers';\n\n@Service()\nexport class MetadataService {\n generateHashData(module, original) {\n const services = module.services || [];\n const imports = module.imports || [];\n const fillMetadata = injectable => {\n if (injectable && injectable['provide']) {\n return injectable['provide'];\n } else if (injectable) {\n this.validateCustomInjectable(injectable, module, original);\n return {\n moduleName: injectable['metadata']['moduleName'],\n hash: injectable['metadata']['moduleHash']\n };\n }\n };\n return [\n [...services.map(i => fillMetadata(i))],\n [...imports.map(i => fillMetadata(i))]\n ];\n }\n\n validateCustomInjectableKeys(\n keys: Array<\n 'useFactory' | 'provide' | 'useValue' | 'useClass' | 'useDynamic' | string\n >\n ) {\n // keys.forEach(key => {\n // console.log('TOVA NE E SHEGA', key);\n // });\n }\n\n validateCustomInjectable(injectable, module, original) {\n if (!injectable['metadata'] && !injectable['provide']) {\n throw new Error(`\n ---- Wrong service ${JSON.stringify(\n injectable\n )} provided inside '${original.name}' ----\n @Module({\n services: ${JSON.stringify([\n ...module.services.filter(i => !i['metadata']),\n ...module.services\n .filter(\n i => i && i['metadata'] && i['metadata']['moduleName']\n )\n .map(i => i['metadata']['moduleName'])\n ])}\n })\n ${JSON.stringify(`${original}`, null, 2)}\n\n Hint: System recieved Object but it is not with appropriate format you must provide object with following parameters:\n\n YourObject: ${JSON.stringify(injectable)}\n\n Option 1. [YourClass]\n\n Option 2. [{provide: 'your-value', useClass: YourClass}]\n\n Option 3. [{provide: 'your-value', deps: [YourClass], useFactory: (test: YourClass) => {}}]\n\n Option 4. [{provide: 'your-value', useDynamic: {}}]\n\n Option 5. [{provide: 'your-value', useValue: 'your-value'}]\n `);\n }\n }\n\n parseModuleTemplate(moduleName, generatedHashData, targetCurrentSymbol) {\n return `\n ---- @gapi module '${moduleName}' metadata----\n @Module({\n imports: ${JSON.stringify(generatedHashData[1], null, '\\t')},\n services: ${JSON.stringify(generatedHashData[0], null, '\\t')}\n })\n ${JSON.stringify(targetCurrentSymbol, null, 2)}\n `;\n }\n\n createUniqueHash(string: string) {\n return createUniqueHash(string);\n }\n}\n","export * from './metadata.service';","// import { createReadStream, createWriteStream } from 'fs';\n// import { createGzip, createGunzip } from 'zlib';\n// import { Observable } from 'rxjs';\nimport { Service } from '../../decorators/service/Service';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { ConfigService, PrivateCryptoModel } from '../config/index';\n\n@Service()\nexport class CompressionService {\n @Injector(ConfigService) private config: ConfigService;\n\n // public gZipFile(input: string, output: string, options: PrivateCryptoModel = { cyperIv: '', algorithm: '', cyperKey: '' }) {\n // const config = this.config.config.experimental.crypto || options;\n // return Observable.create(observer => {\n // createReadStream(input)\n // .pipe(createGzip())\n // // .pipe(createCipheriv(config.algorithm, config.cyperKey, config.cyperIv))\n // .pipe(createWriteStream(output))\n // .on('finish', () => observer.next(true))\n // .on('error', (err) => observer.error(err));\n // });\n // }\n\n // public readGzipFile(input: string, output: string, options: PrivateCryptoModel = { cyperIv: '', algorithm: '', cyperKey: '' }) {\n // const config = this.config.config.experimental.crypto || options;\n // return Observable.create(observer => {\n // createReadStream(input)\n // // .pipe(createDecipheriv(config.algorithm, config.cyperKey, config.cyperIv))\n // .pipe(createGunzip())\n // .pipe(createWriteStream(output))\n // .on('finish', () => observer.next(true))\n // .on('error', (err) => observer.error(err));\n // });\n // }\n\n public gZipAll() {\n // var archiver = require('archiver');\n // var output = createWriteStream('./example.tar.gz');\n // var archive = archiver('tar', {\n // gzip: true,\n // zlib: { level: 9 } // Sets the compression level.\n // });\n // archive.on('error', function (err) {\n // throw err;\n // });\n // // pipe archive data to the output file\n // archive.pipe(output);\n // // append files\n // archive.file('/path/to/file0.txt', { name: 'file0-or-change-this-whatever.txt' });\n // archive.file('/path/to/README.md', { name: 'foobar.md' });\n // // Wait for streams to complete\n // archive.finalize();\n }\n}\n","export * from './compression.service';","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","const path = require('path');\nconst fs = require('fs');\nconst _0777 = parseInt('0777', 8);\n\n\nexport function mkdirp(p?, opts?, f?, made?) {\n if (typeof opts === 'function') {\n f = opts;\n opts = {};\n }\n else if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n\n let mode = opts.mode;\n const xfs = opts.fs || fs;\n\n if (mode === undefined) {\n mode = _0777 & (~process.umask());\n }\n if (!made) made = null;\n\n const cb = f || function () { };\n p = path.resolve(p);\n\n xfs.mkdir(p, mode, function (er) {\n if (!er) {\n made = made || p;\n return cb(null, made);\n }\n switch (er.code) {\n case 'ENOENT':\n mkdirp(path.dirname(p), opts, function (er, made) {\n if (er) cb(er, made);\n else mkdirp(p, opts, cb, made);\n });\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n xfs.stat(p, function (er2, stat) {\n // if the stat fails, then that's super weird.\n // let the original error be the failure reason.\n if (er2 || !stat.isDirectory()) cb(er, made);\n else cb(null, made);\n });\n break;\n }\n });\n}\n\nexport function mkdirpSync(p?, opts?, made?) {\n if (!opts || typeof opts !== 'object') {\n opts = { mode: opts };\n }\n\n let mode = opts.mode;\n const xfs = opts.fs || fs;\n\n if (mode === undefined) {\n mode = _0777 & (~process.umask());\n }\n if (!made) made = null;\n\n p = path.resolve(p);\n\n try {\n xfs.mkdirSync(p, mode);\n made = made || p;\n }\n catch (err0) {\n switch (err0.code) {\n case 'ENOENT':\n made = mkdirpSync(path.dirname(p), opts, made);\n mkdirpSync(p, opts, made);\n break;\n\n // In the case of any other error, just see if there's a dir\n // there already. If so, then hooray! If not, then something\n // is borked.\n default:\n let stat;\n try {\n stat = xfs.statSync(p);\n }\n catch (err1) {\n throw err0;\n }\n if (!stat.isDirectory()) throw err0;\n break;\n }\n }\n\n return made;\n}","import { Service } from '../../decorators/service/Service';\nimport {\n writeFileSync,\n existsSync,\n readdir,\n stat,\n writeFile,\n readFileSync,\n readFile\n} from 'fs';\nimport { Observable } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { BootstrapLogger } from '../bootstrap-logger';\nimport { Injector } from '../../decorators/injector/injector.decorator';\nimport { resolve } from 'path';\nimport { mkdirp } from './dist';\n\n@Service()\nexport class FileService {\n @Injector(BootstrapLogger) private logger: BootstrapLogger;\n\n writeFile(folder: string, fileName, moduleName, file) {\n return this.mkdirp(folder).pipe(\n tap(() => {\n this.logger.logFileService(\n `Bootstrap: @Service('${moduleName}'): Saved inside ${folder}`\n );\n }),\n switchMap(() => this.writeFileAsyncP(folder, fileName, file))\n );\n }\n\n writeFileAsync(folder: string, fileName, moduleName, file) {\n return this.mkdirp(folder).pipe(\n switchMap(() => this.writeFileAsyncP(folder, fileName, file)),\n map(() => {\n this.logger.logFileService(\n `Bootstrap: external @Module('${moduleName}') namespace: Saved inside ${folder}`\n );\n return `${folder}/${fileName}`;\n })\n );\n }\n\n writeFileSync(folder, file) {\n return writeFileSync.bind(null)(\n folder,\n JSON.stringify(file, null, 2) + '\\n',\n { encoding: 'utf-8' }\n );\n }\n\n readFile(file: string) {\n return JSON.parse(readFileSync.bind(null)(file, { encoding: 'utf-8' }));\n }\n\n isPresent(path: string) {\n return existsSync(path);\n }\n\n writeFileAsyncP(folder, fileName, content) {\n return new Observable(o =>\n writeFile(`${folder}/${fileName}`, content, () => o.next(true))\n );\n }\n\n mkdirp(folder): Observable {\n return new Observable(observer => {\n mkdirp(folder, err => {\n if (err) {\n console.error(err);\n observer.error(false);\n } else {\n observer.next(true);\n }\n observer.complete();\n });\n });\n }\n\n public fileWalker(\n dir: string,\n exclude: string = 'node_modules'\n ): Observable {\n return new Observable(observer => {\n this.filewalker(\n dir,\n (err, result) => {\n if (err) {\n observer.error(err);\n } else {\n observer.next(result);\n }\n observer.complete();\n },\n exclude\n );\n });\n }\n\n private filewalker(\n dir: string,\n done: (err: NodeJS.ErrnoException, data?: any) => void,\n exclude = 'node_modules'\n ) {\n let results = [];\n const fileWalker = this.filewalker.bind(this);\n readdir(dir, (err, list) => {\n if (err) {\n return done(err);\n }\n let pending = list.length;\n if (!pending) {\n return done(null, results);\n }\n list.forEach(file => {\n file = resolve(dir, file);\n stat(file, (err, stat) => {\n if (stat && stat.isDirectory()) {\n results.push(file);\n if (!file.includes(exclude)) {\n fileWalker(\n file,\n (err, res) => {\n results = results.concat(res);\n if (!--pending) {\n done(null, results);\n }\n },\n exclude\n );\n } else if (!--pending) {\n done(null, results);\n }\n } else {\n results.push(file);\n if (!--pending) {\n done(null, results);\n }\n }\n });\n });\n });\n }\n}\n","export * from './file.service';","export * from './effect.service';","export * from './controllers.service';","export * from './components.service';","export * from './bootstraps.service';","export * from './services.service';","import { PluginService } from '../plugin/plugin.service';\nimport { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces';\nimport { Service } from '../../decorators/service/Service';\n\n@Service()\nexport class PluginManager {\n constructor(private pluginService: PluginService) {}\n\n listPlugins(): Array {\n return this.pluginService.getPlugins();\n }\n\n getPlugin(pluginClass: Function): ServiceArgumentsInternal {\n return this.pluginService\n .getPlugins()\n .filter(p => p.name === pluginClass.name)[0];\n }\n}\n","export * from './cache/index';\nexport * from './plugin/plugin.service';\nexport * from './bootstrap-logger/index';\nexport * from './exit-handler/index';\n// export * from './external-importer/index';\nexport * from './module/index';\nexport * from './resolver/index';\nexport * from './config/index';\nexport * from './metadata/index';\nexport * from './compression/index';\nexport * from './file/index';\nexport * from './constructor-watcher/index';\nexport * from './effect/index';\nexport * from './controllers/index';\nexport * from './components/index';\nexport * from './bootstraps/index';\nexport * from './services/index';\nexport * from './plugin-manager/plugin-manager';\nexport * from './after-starter/after-starter.service';","import { Container } from '../container';\nimport {\n ModuleService,\n BootstrapLogger,\n CacheLayer,\n CacheLayerItem\n} from '../services';\n\nconst moduleService = Container.get(ModuleService);\nconst bootstrapLogger = Container.get(BootstrapLogger);\n\nexport function GenericConstruct(\n module: any,\n original,\n currentModule: CacheLayer>\n) {\n return function construct(constructor, args) {\n if (!module) {\n return new constructor();\n }\n\n if (module.imports) {\n moduleService.setImports(module.imports, original);\n }\n\n if (module.services) {\n moduleService.setServices(module.services, original, currentModule);\n }\n\n if (module.providers) {\n moduleService.setServices(module.providers, original, currentModule);\n }\n\n if (module.controllers) {\n moduleService.setControllers(module.controllers, original, currentModule);\n }\n\n if (module.effects) {\n moduleService.setEffects(module.effects, original, currentModule);\n }\n\n if (module.components) {\n moduleService.setComponents(module.components, original, currentModule);\n }\n\n if (module.beforePlugins) {\n moduleService.setBeforePlugins(\n module.beforePlugins,\n original,\n currentModule\n );\n }\n\n if (module.plugins) {\n moduleService.setPlugins(module.plugins, original, currentModule);\n }\n\n if (module.afterPlugins) {\n moduleService.setAfterPlugins(\n module.afterPlugins,\n original,\n currentModule\n );\n }\n\n if (module.bootstrap) {\n moduleService.setBootstraps(module.bootstrap, original, currentModule);\n }\n\n bootstrapLogger.log(\n `Bootstrap -> @Module('${\n constructor.originalName\n }')${bootstrapLogger.logHashes(`(${constructor.name})`)}: finished!`\n );\n\n return Container.get(constructor);\n };\n}\n","import { Container, ServiceMetadata } from '../../container';\nimport { CacheService } from '../../services/cache/cache-layer.service';\nimport { GenericConstruct } from '../../helpers/generic-constructor';\nimport { BootstrapLogger } from '../../services/bootstrap-logger/bootstrap-logger';\nimport { ResolverService } from '../../services/resolver/resolver.service';\nimport { ModuleArguments, ModuleWithServices, ServiceArgumentsInternal } from '../module/module.interfaces';\nimport { MetadataService } from '../../services/metadata/metadata.service';\nimport { ModuleService } from '../../services/module/module.service';\n\nconst bootstrapLogger = Container.get(BootstrapLogger);\nconst resolverService = Container.get(ResolverService);\nconst cacheService = Container.get(CacheService);\nconst metadataService = Container.get(MetadataService);\nconst moduleService = Container.get(ModuleService);\n\nexport function Module(module?: ModuleArguments): Function {\n return (target: any) => {\n module = module || {};\n const original: ServiceArgumentsInternal = Object.assign(target);\n const moduleName = target.name || target.constructor.name;\n const generatedHashData = metadataService.generateHashData(module, original);\n const uniqueModuleTemplate = metadataService.parseModuleTemplate(moduleName, generatedHashData, `${target}`);\n const uniqueHashForClass = metadataService.createUniqueHash(uniqueModuleTemplate);\n\n // console.log(`--------- ${moduleName} --------- Hash: ${uniqueHashForClass}---------`);\n // console.log(uniqueModuleTemplate);\n\n Object.defineProperty(original, 'originalName', { value: original.name || original.constructor.name, writable: false });\n Object.defineProperty(original, 'name', { value: uniqueHashForClass, writable: true });\n\n const currentModuleLayer = cacheService.createLayer({ name: uniqueHashForClass });\n\n original.metadata = {\n moduleName: original.originalName,\n moduleHash: uniqueHashForClass,\n options: null,\n type: 'module',\n raw: uniqueModuleTemplate\n };\n\n const constructorFunction: any = function (...args: any[]) {\n bootstrapLogger.log(`Bootstrap -> @Module('${original.originalName}')${bootstrapLogger.logHashes(`(${original.name})`)}: loading...`);\n return GenericConstruct(module, original, currentModuleLayer)(original, args);\n };\n\n Object.assign(constructorFunction, original);\n\n resolverService.resolveDependencies(uniqueHashForClass, original, moduleName)\n .subscribe(\n () => bootstrapLogger.log(`Start -> @Module('${original.originalName}')${bootstrapLogger.logHashes(`(${original.name})`)}: loaded!`)\n );\n\n Object.getOwnPropertyNames(original)\n .filter(prop => typeof original[prop] === 'function')\n .map(descriptor => Object.defineProperty(constructorFunction, descriptor, {\n configurable: true,\n writable: true,\n value: original[descriptor]\n }));\n if (original.forRoot) {\n const originalForRoot = constructorFunction.forRoot;\n constructorFunction.forRoot = function (...args: any) {\n const result: ModuleWithServices = originalForRoot(...args);\n\n if (!result) {\n throw new Error(`forRoot configuration inside ${constructorFunction.name} is returning undefined or null`);\n }\n\n if (result.frameworkImports) {\n moduleService.setImports(result.frameworkImports as any, original);\n }\n\n if (result.services) {\n moduleService.setServices(result.services as any, original, currentModuleLayer);\n }\n\n if (result.providers) {\n moduleService.setServices(result.providers as any, original, currentModuleLayer);\n }\n\n if (result.components) {\n moduleService.setComponents(result.components as any, original, currentModuleLayer);\n }\n\n if (result.effects) {\n moduleService.setEffects(result.effects as any, original, currentModuleLayer);\n }\n\n if (result.controllers) {\n moduleService.setControllers(result.controllers as any, original, currentModuleLayer);\n }\n\n if (result.beforePlugins) {\n moduleService.setBeforePlugins(result.beforePlugins as any, original, currentModuleLayer);\n }\n\n if (result.plugins) {\n moduleService.setPlugins(result.plugins as any, original, currentModuleLayer);\n }\n\n if (result.afterPlugins) {\n moduleService.setAfterPlugins(result.afterPlugins as any, original, currentModuleLayer);\n }\n\n /** @angular compatability */\n if (result.ngModule) {\n return result.ngModule;\n }\n\n return result.module ? result.module : result;\n };\n }\n\n const service: ServiceMetadata = {\n type: constructorFunction\n };\n\n Container.set(service);\n return constructorFunction;\n };\n}\n\n/** @angular module compatability */\nexport const NgModule = Module;","export * from './module.decorator';\nexport * from './module.interfaces';","export * from './injector.decorator';","import { Container } from '../../container';\nimport { ModuleService } from '../../services/module/module.service';\n\nexport function InjectSoft(Service: Function): T {\n return Container.get(ModuleService).watcherService.getByClass(Service);\n}","export * from './inject-soft.decorator';","/**\n * Thrown when DI cannot inject value into property decorated by @Inject decorator.\n */\nexport class CannotInjectError extends Error {\n name = 'ServiceNotFoundError';\n\n constructor(target: Object, propertyName: string) {\n super(\n `Cannot inject value into '${\n target.constructor.name\n }.${propertyName}'. ` +\n `Please make sure you setup reflect-metadata properly and you don't use interfaces without service tokens as injection value.`\n );\n Object.setPrototypeOf(this, CannotInjectError.prototype);\n }\n}\n","import { Token } from '../container/Token';\nimport { CannotInjectError } from '../container/error/CannotInjectError';\nimport { TypeOrName } from '../container/types/type-or-name';\n\nexport const getIdentifier = (\n typeOrName: TypeOrName,\n target: Object,\n propertyName: string\n) => {\n let identifier: any;\n if (typeof typeOrName === 'string') {\n identifier = typeOrName;\n } else if (typeOrName instanceof Token) {\n identifier = typeOrName;\n } else {\n identifier = typeOrName();\n }\n if (identifier === Object) {\n throw new CannotInjectError(target, propertyName);\n }\n return identifier;\n};\n\nexport const isClient = () => typeof window !== 'undefined' && typeof window.document !== 'undefined';\n","import { Container } from '../../container/Container';\nimport { Token } from '../../container/Token';\nimport { getIdentifier, isClient } from '../../helpers/get-identifier';\nimport { TypeOrName } from '../../container/types/type-or-name';\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(type?: (type?: any) => Function): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(serviceName?: string): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(token: Token): Function;\n\nexport function Inject(fn: Function): Function;\n\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function Inject(typeOrName?: TypeOrName): Function {\n return function (target: Object, propertyName: string, index?: number) {\n if (isClient() && typeOrName && typeof typeOrName === 'function') {\n Object.defineProperty(target, propertyName, {\n get: () => Container.get(typeOrName as Function)\n });\n return;\n }\n if (!typeOrName)\n typeOrName = () => (Reflect as any).getMetadata('design:type', target, propertyName);\n\n Container.registerHandler({\n object: target,\n propertyName: propertyName,\n index: index,\n value: instance => instance.get(getIdentifier(typeOrName, target, propertyName))\n });\n };\n}\n","import { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport function Controller(options?: T | { init?: boolean }): Function {\n return ReflectDecorator(options, { type: 'controller' });\n}\n","export * from './controller.decorator';","import { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport function Effect(options?: {init?: boolean}): Function {\n return ReflectDecorator(options, { type: 'effect' });\n}","export * from './effect.decorator';","import { ReflectDecorator } from '../../helpers/reflect.decorator';\nexport interface PluginInterface {\n name?: string;\n version?: string;\n register(server?, options?): void;\n handler?(request, h);\n}\nexport function Plugin(options?: any): Function {\n return ReflectDecorator(options, { type: 'plugin' });\n}","import { ReflectDecorator } from '../../helpers/reflect.decorator';\n\nexport function Component(options?: {\n init?: boolean;\n}): Function {\n return ReflectDecorator(options, { type: 'component' });\n}\n","export * from './component.decorator';","import { Container } from '../../container/Container';\nimport { Token } from '../../container/Token';\nimport { getIdentifier, isClient } from '../../helpers/get-identifier';\nimport { TypeOrName } from '../../container/types/type-or-name';\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(type?: (type?: any) => Function): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(serviceName?: string): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(token: Token): Function;\n\n/**\n * Injects a service into a class property or constructor parameter.\n */\nexport function InjectMany(\n typeOrName?: TypeOrName\n): Function {\n return function(target: Object, propertyName: string, index?: number) {\n if (isClient() && typeOrName instanceof Token) {\n Object.defineProperty(target, propertyName, {\n get: () =>\n Container.getMany(getIdentifier(typeOrName, target, propertyName))\n });\n return;\n }\n if (!typeOrName) {\n typeOrName = () =>\n (Reflect as any).getMetadata('design:type', target, propertyName);\n }\n Container.registerHandler({\n object: target,\n propertyName: propertyName,\n index: index,\n value: instance =>\n instance.getMany(getIdentifier(typeOrName, target, propertyName))\n });\n };\n}\n","export * from './module/index';\nexport * from './injector/index';\nexport * from './inject-soft/index';\nexport * from './inject/Inject';\nexport * from './controller/index';\nexport * from './effect/index';\nexport * from './plugin/Plugin';\nexport * from './service/Service';\nexport * from './component/index';\nexport * from './inject-many/InjectMany';\nexport { Service as Injectable } from './service/Service';\n","export * from './container/index';\nexport * from './decorators/index';\nexport * from './helpers/index';\nexport * from './services/index';\n"]} \ No newline at end of file diff --git a/dist/services/external-importer/index.d.ts b/dist/services/external-importer/index.d.ts index d87a6c0..e69de29 100644 --- a/dist/services/external-importer/index.d.ts +++ b/dist/services/external-importer/index.d.ts @@ -1,2 +0,0 @@ -export * from './external-importer'; -export * from './external-importer-config'; diff --git a/dist/services/external-importer/index.js b/dist/services/external-importer/index.js index 4208a8d..8fe0f54 100644 --- a/dist/services/external-importer/index.js +++ b/dist/services/external-importer/index.js @@ -1,7 +1,2 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("./external-importer")); -__export(require("./external-importer-config")); +// export * from './external-importer'; +// export * from './external-importer-config'; diff --git a/dist/services/index.d.ts b/dist/services/index.d.ts index 88bec70..053bf0e 100644 --- a/dist/services/index.d.ts +++ b/dist/services/index.d.ts @@ -2,7 +2,6 @@ export * from './cache/index'; export * from './plugin/plugin.service'; export * from './bootstrap-logger/index'; export * from './exit-handler/index'; -export * from './external-importer/index'; export * from './module/index'; export * from './resolver/index'; export * from './config/index'; diff --git a/dist/services/index.js b/dist/services/index.js index 5cee2f3..59f469e 100644 --- a/dist/services/index.js +++ b/dist/services/index.js @@ -7,7 +7,7 @@ __export(require("./cache/index")); __export(require("./plugin/plugin.service")); __export(require("./bootstrap-logger/index")); __export(require("./exit-handler/index")); -__export(require("./external-importer/index")); +// export * from './external-importer/index'; __export(require("./module/index")); __export(require("./resolver/index")); __export(require("./config/index")); diff --git a/dist/services/module/module.service.d.ts b/dist/services/module/module.service.d.ts index 452ade9..977bc40 100644 --- a/dist/services/module/module.service.d.ts +++ b/dist/services/module/module.service.d.ts @@ -9,7 +9,6 @@ export declare class ModuleService { private controllersService; private effectsService; private bootstraps; - private externalImporter; private validators; private servicesService; setServices(services: ServiceArgumentsInternal[], original: ServiceArgumentsInternal, currentModule: CacheLayer>): void; diff --git a/dist/services/module/module.service.js b/dist/services/module/module.service.js index 33325af..85cee16 100644 --- a/dist/services/module/module.service.js +++ b/dist/services/module/module.service.js @@ -14,7 +14,7 @@ const container_1 = require("../../container"); const Service_1 = require("../../decorators/service/Service"); const lazy_factory_service_1 = require("../lazy-factory/lazy-factory.service"); const plugin_service_1 = require("../plugin/plugin.service"); -const external_importer_1 = require("../external-importer"); +// import { ExternalImporter } from '../external-importer'; const injector_decorator_1 = require("../../decorators/injector/injector.decorator"); const validators_1 = require("./helpers/validators"); const constructor_watcher_1 = require("../constructor-watcher/constructor-watcher"); @@ -75,8 +75,11 @@ let ModuleService = class ModuleService { } } setUseDynamic(service) { - const factory = this.externalImporter.importModule(service.useDynamic, service.provide); - this.lazyFactoryService.setLazyFactory(service.provide, factory); + // const factory = this.externalImporter.importModule( + // service.useDynamic, + // service.provide + // ); + // this.lazyFactoryService.setLazyFactory(service.provide, factory); } setUseFactory(service) { const factory = service.useFactory; @@ -194,10 +197,6 @@ __decorate([ injector_decorator_1.Injector(bootstraps_service_1.BootstrapsServices), __metadata("design:type", bootstraps_service_1.BootstrapsServices) ], ModuleService.prototype, "bootstraps", void 0); -__decorate([ - injector_decorator_1.Injector(external_importer_1.ExternalImporter), - __metadata("design:type", external_importer_1.ExternalImporter) -], ModuleService.prototype, "externalImporter", void 0); __decorate([ injector_decorator_1.Injector(validators_1.ModuleValidators), __metadata("design:type", validators_1.ModuleValidators) diff --git a/dist/services/npm-service/npm.service.d.ts b/dist/services/npm-service/npm.service.d.ts index aef2ee8..b899a3b 100644 --- a/dist/services/npm-service/npm.service.d.ts +++ b/dist/services/npm-service/npm.service.d.ts @@ -1,12 +1,11 @@ /// -import { NpmPackageConfig } from '../external-importer/index'; import { BehaviorSubject } from 'rxjs'; import childProcess = require('child_process'); export declare class NpmService { - packagesToDownload: BehaviorSubject; + packagesToDownload: BehaviorSubject; packages: string[]; child: childProcess.ChildProcess; - setPackages(packages: NpmPackageConfig[]): void; + setPackages(packages: any[]): void; preparePackages(): void; installPackages(): Promise; } diff --git a/dist/services/npm-service/npm.service.js b/dist/services/npm-service/npm.service.js index 01ece33..1e650fe 100644 --- a/dist/services/npm-service/npm.service.js +++ b/dist/services/npm-service/npm.service.js @@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, }; Object.defineProperty(exports, "__esModule", { value: true }); const Service_1 = require("../../decorators/service/Service"); +// import { NpmPackageConfig } from '../external-importer/index'; const rxjs_1 = require("rxjs"); const childProcess = require("child_process"); let NpmService = class NpmService { diff --git a/package.json b/package.json index 6548d77..6e91793 100644 --- a/package.json +++ b/package.json @@ -31,11 +31,6 @@ "url": "https://github.com/rxdi/core/issues" }, "homepage": "https://github.com/rxdi/core/blob/master/README.md", - "dependencies": { - "reflect-metadata": "0.1.13", - "rxjs": "6.5.2", - "systemjs": "0.21.4" - }, "devDependencies": { "@rxdi/dts-merge": "^0.7.23", "@types/jest": "^23.3.2", @@ -44,6 +39,7 @@ "jest": "^23.4.2", "jest-cli": "^23.4.2", "parcel-bundler": "^1.9.7", + "rxjs": "6.5.2", "ts-jest": "^23.0.1", "tslint": "^5.11.0", "tslint-language-service": "^0.9.9", diff --git a/src/helpers/bootstrap.ts b/src/helpers/bootstrap.ts index 0e67432..fa7305b 100644 --- a/src/helpers/bootstrap.ts +++ b/src/helpers/bootstrap.ts @@ -1,4 +1,4 @@ -import 'reflect-metadata'; +import './reflection'; import { Container } from '../container'; import { BootstrapService } from '../services/bootstrap/bootstrap.service'; diff --git a/src/helpers/reflection.ts b/src/helpers/reflection.ts new file mode 100644 index 0000000..48b9f00 --- /dev/null +++ b/src/helpers/reflection.ts @@ -0,0 +1,106 @@ +const Metadata = new WeakMap(); +export function defineMetadata( + metadataKey, + metadataValue, + target, + propertyKey +) { + return ordinaryDefineOwnMetadata( + metadataKey, + metadataValue, + target, + propertyKey + ); +} +export function decorate(decorators, target, propertyKey, attributes) { + if (decorators.length === 0) { + throw new TypeError(); + } + if (typeof target === 'function') { + return decorateConstructor(decorators, target); + } else if (propertyKey !== undefined) { + return decorateProperty(decorators, target, propertyKey, attributes); + } + return; +} +export function metadata(metadataKey, metadataValue) { + return function decorator(target, propertyKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); + }; +} +export function getMetadata(metadataKey, target, propertyKey) { + return ordinaryGetMetadata(metadataKey, target, propertyKey); +} +export function getOwnMetadata(metadataKey, target, propertyKey) { + return ordinaryGetOwnMetadata(metadataKey, target, propertyKey); +} +export function hasOwnMetadata(metadataKey, target, propertyKey) { + return !!ordinaryGetOwnMetadata(metadataKey, target, propertyKey); +} +function decorateConstructor(decorators, target) { + decorators.reverse().forEach(decorator => { + const decorated = decorator(target); + if (decorated) { + target = decorated; + } + }); + return target; +} +function decorateProperty(decorators, target, propertyKey, descriptor) { + decorators.reverse().forEach(decorator => { + descriptor = decorator(target, propertyKey, descriptor) || descriptor; + }); + return descriptor; +} +function ordinaryDefineOwnMetadata( + metadataKey, + metadataValue, + target, + propertyKey +) { + if (propertyKey && !['string', 'symbol'].includes(typeof propertyKey)) { + throw new TypeError(); + } + ( + getMetadataMap(target, propertyKey) || + createMetadataMap(target, propertyKey) + ).set(metadataKey, metadataValue); +} +function ordinaryGetMetadata(metadataKey, target, propertyKey) { + return !!ordinaryGetOwnMetadata(metadataKey, target, propertyKey) + ? ordinaryGetOwnMetadata(metadataKey, target, propertyKey) + : Object.getPrototypeOf(target) + ? ordinaryGetMetadata( + metadataKey, + Object.getPrototypeOf(target), + propertyKey + ) + : undefined; +} +function ordinaryGetOwnMetadata(metadataKey, target, propertyKey) { + if (target === undefined) { + throw new TypeError(); + } + const metadataMap = getMetadataMap(target, propertyKey); + return metadataMap && metadataMap.get(metadataKey); +} +function getMetadataMap(target, propertyKey) { + return Metadata.get(target) && Metadata.get(target).get(propertyKey); +} +function createMetadataMap(target, propertyKey) { + const targetMetadata = Metadata.get(target) || new Map(); + Metadata.set(target, targetMetadata); + const metadataMap = targetMetadata.get(propertyKey) || new Map(); + targetMetadata.set(propertyKey, metadataMap); + return metadataMap; +} +export const Reflection = { + decorate, + defineMetadata, + getMetadata, + getOwnMetadata, + hasOwnMetadata, + metadata +}; +Object.assign(Reflect, Reflection); +// # sourceMappingURL=index.js.map diff --git a/src/index.ts b/src/index.ts index 90aabd2..374eb21 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,3 @@ -import 'reflect-metadata'; - export * from './container/index'; export * from './decorators/index'; export * from './helpers/index'; diff --git a/src/services/external-importer/external-importer.spec.ts b/src/services/external-importer/external-importer.spec-delayed.ts similarity index 100% rename from src/services/external-importer/external-importer.spec.ts rename to src/services/external-importer/external-importer.spec-delayed.ts diff --git a/src/services/external-importer/index.ts b/src/services/external-importer/index.ts index 7ddd427..c9af5f1 100644 --- a/src/services/external-importer/index.ts +++ b/src/services/external-importer/index.ts @@ -1,2 +1,2 @@ -export * from './external-importer'; -export * from './external-importer-config'; \ No newline at end of file +// export * from './external-importer'; +// export * from './external-importer-config'; \ No newline at end of file diff --git a/src/services/index.ts b/src/services/index.ts index 065aadb..bd913cd 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -2,7 +2,7 @@ export * from './cache/index'; export * from './plugin/plugin.service'; export * from './bootstrap-logger/index'; export * from './exit-handler/index'; -export * from './external-importer/index'; +// export * from './external-importer/index'; export * from './module/index'; export * from './resolver/index'; export * from './config/index'; diff --git a/src/services/module/module.service.ts b/src/services/module/module.service.ts index f485847..cff1342 100644 --- a/src/services/module/module.service.ts +++ b/src/services/module/module.service.ts @@ -7,7 +7,7 @@ import { ServiceArgumentsInternal, Metadata } from '../../decorators/module/module.interfaces'; -import { ExternalImporter } from '../external-importer'; +// import { ExternalImporter } from '../external-importer'; import { Injector } from '../../decorators/injector/injector.decorator'; import { ModuleValidators } from './helpers/validators'; import { @@ -31,7 +31,7 @@ export class ModuleService { @Injector(ControllersService) private controllersService: ControllersService; @Injector(EffectsService) private effectsService: EffectsService; @Injector(BootstrapsServices) private bootstraps: BootstrapsServices; - @Injector(ExternalImporter) private externalImporter: ExternalImporter; + // @Injector(ExternalImporter) private externalImporter: ExternalImporter; @Injector(ModuleValidators) private validators: ModuleValidators; @Injector(ServicesService) private servicesService: ServicesService; @@ -97,11 +97,11 @@ export class ModuleService { } setUseDynamic(service) { - const factory = this.externalImporter.importModule( - service.useDynamic, - service.provide - ); - this.lazyFactoryService.setLazyFactory(service.provide, factory); + // const factory = this.externalImporter.importModule( + // service.useDynamic, + // service.provide + // ); + // this.lazyFactoryService.setLazyFactory(service.provide, factory); } setUseFactory(service) { diff --git a/src/services/npm-service/npm.service.ts b/src/services/npm-service/npm.service.ts index a4eb9cb..303ae25 100644 --- a/src/services/npm-service/npm.service.ts +++ b/src/services/npm-service/npm.service.ts @@ -1,17 +1,17 @@ import { Service } from '../../decorators/service/Service'; -import { NpmPackageConfig } from '../external-importer/index'; +// import { NpmPackageConfig } from '../external-importer/index'; import { BehaviorSubject } from 'rxjs'; import childProcess = require('child_process'); @Service() export class NpmService { - packagesToDownload: BehaviorSubject = new BehaviorSubject( + packagesToDownload: BehaviorSubject = new BehaviorSubject( [] ); packages: string[] = []; child: childProcess.ChildProcess; - setPackages(packages: NpmPackageConfig[]) { + setPackages(packages: any[]) { this.packagesToDownload.next([ ...this.packagesToDownload.getValue(), ...packages diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..7844a34 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6928 @@ +# 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", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@^7.4.4": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" + integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.2" + "@babel/helpers" "^7.6.2" + "@babel/parser" "^7.6.2" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.2" + "@babel/types" "^7.6.0" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.4.4", "@babel/generator@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03" + integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ== + dependencies: + "@babel/types" "^7.6.0" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" + integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== + dependencies: + "@babel/types" "^7.3.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== + dependencies: + "@babel/types" "^7.5.5" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" + integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== + dependencies: + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.2" + "@babel/types" "^7.6.0" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.4.4", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" + integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-dynamic-import@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" + integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" + integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" + integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz#96c33ab97a9ae500cc6f5b19e04a7e6553360a79" + integrity sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" + integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/plugin-transform-duplicate-keys@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-flow-strip-types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" + integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + +"@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b" + integrity sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g== + dependencies: + regexpu-core "^4.6.0" + +"@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + +"@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" + integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== + dependencies: + "@babel/helper-builder-react-jsx" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" + integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" + integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/preset-env@^7.4.4": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3" + integrity sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.6.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.6.2" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.6.2" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.6.0" + "@babel/plugin-transform-dotall-regex" "^7.6.2" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.2" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.6.2" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.6.2" + "@babel/types" "^7.6.0" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/runtime@^7.4.4": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd" + integrity sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" + integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" + integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.2" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.6.2" + "@babel/types" "^7.6.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" + integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@iarna/toml@^2.2.0": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" + integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg== + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@parcel/fs@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-1.11.0.tgz#fb8a2be038c454ad46a50dc0554c1805f13535cd" + integrity sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA== + dependencies: + "@parcel/utils" "^1.11.0" + mkdirp "^0.5.1" + rimraf "^2.6.2" + +"@parcel/logger@^1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-1.11.1.tgz#c55b0744bcbe84ebc291155627f0ec406a23e2e6" + integrity sha512-9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA== + dependencies: + "@parcel/workers" "^1.11.0" + chalk "^2.1.0" + grapheme-breaker "^0.3.2" + ora "^2.1.0" + strip-ansi "^4.0.0" + +"@parcel/utils@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-1.11.0.tgz#539e08fff8af3b26eca11302be80b522674b51ea" + integrity sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ== + +"@parcel/watcher@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-1.12.1.tgz#b98b3df309fcab93451b5583fc38e40826696dad" + integrity sha512-od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA== + dependencies: + "@parcel/utils" "^1.11.0" + chokidar "^2.1.5" + +"@parcel/workers@^1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-1.11.0.tgz#7b8dcf992806f4ad2b6cecf629839c41c2336c59" + integrity sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ== + dependencies: + "@parcel/utils" "^1.11.0" + physical-cpu-count "^2.0.0" + +"@rxdi/dts-merge@^0.7.23": + version "0.7.24" + resolved "https://registry.yarnpkg.com/@rxdi/dts-merge/-/dts-merge-0.7.24.tgz#ce335bd90c3f58f1f473db04cd543c24a6e19f00" + integrity sha512-Kw0Qge4MU4x/sX4v0xtNqjZ18pgvU3BUqZyudTwcIs0NpQ3iRUN+Ue2v6QGvPG8hcNZZUSyQqj8jm1ghsIkoQw== + dependencies: + bluebird "^3.5.1" + fs "0.0.1-security" + glob "^7.1.2" + mkdirp "^0.5.1" + typescript "^3.0.1" + +"@types/jest@^23.3.2": + version "23.3.14" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.14.tgz#37daaf78069e7948520474c87b80092ea912520a" + integrity sha512-Q5hTcfdudEL2yOmluA1zaSyPbzWPmJ3XfSWeP3RyoYvS9hnje1ZyagrZOuQ6+1nQC1Gw+7gap3pLNL3xL6UBug== + +"@types/node@^10.11.0": + version "10.14.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.20.tgz#c4378d9d6a62faa5c9aafffc3d726b5a1e7367c6" + integrity sha512-An+MXSV8CGXz/BO9C1KKsoJ/8WDrvlNUaRMsm2h+IHZuSyQkM8U5bJJkb8ItLKA73VePG/nUK+t+EuW2IWuhsQ== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/systemjs@^0.20.6": + version "0.20.6" + resolved "https://registry.yarnpkg.com/@types/systemjs/-/systemjs-0.20.6.tgz#79838d2b4bce9c014330efa0b4c7b9345e830a72" + integrity sha512-p3yv9sBBJXi3noUG216BpUI7VtVBUAvBIfZNTiDROUY31YBfsFHM4DreS7XMekN8IjtX0ysvCnm6r3WnirnNeA== + +abab@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" + integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-globals@^4.1.0, acorn-globals@^4.3.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^5.0.0, acorn@^5.5.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^6.0.1, acorn@^6.0.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + +ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + 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" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-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.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-to-html@^0.6.4: + version "0.6.11" + resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.11.tgz#5093fc4962186c0e9343dec572a4f71abdc93439" + integrity sha512-88XZtrcwrfkyn6fGstHnkaF1kl7hGtNCYh4vSmItgEV+6JnQHryDBf7udF4f2RhTRQmYvJvPcTtqgaqrxzc9oA== + dependencies: + entities "^1.1.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/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.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/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.yarnpkg.com/arr-diff/-/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.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.1.4: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/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.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + 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.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + 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.yarnpkg.com/babel-helpers/-/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.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== + 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.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== + 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.yarnpkg.com/babel-plugin-jest-hoist/-/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.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/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.yarnpkg.com/babel-preset-jest/-/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.yarnpkg.com/babel-register/-/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.11.6, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/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.yarnpkg.com/babel-template/-/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.yarnpkg.com/babel-traverse/-/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.15.0, babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-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-walk@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babylon-walk/-/babylon-walk-1.0.2.tgz#3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce" + integrity sha1-OxWl3btIKni0zpwByLoYFwLZ1s4= + dependencies: + babel-runtime "^6.11.6" + babel-types "^6.15.0" + lodash.clone "^4.5.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + 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.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bindings@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + integrity sha1-FK1hE4EtLTfXLme0ystLtyZQXxE= + +bluebird@^3.5.1: + version "3.7.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.0.tgz#56a6a886e03f6ae577cffedeb524f8f2450293cf" + integrity sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/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, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + 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" + +brfs@^1.2.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" + integrity sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ== + dependencies: + quote-stream "^1.0.1" + resolve "^1.1.5" + static-module "^2.2.0" + through2 "^2.0.0" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.6.0, browserslist@^4.6.6: + version "4.7.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" + integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== + dependencies: + node-int64 "^0.4.0" + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + 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" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-id@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-id/-/caller-id-0.1.0.tgz#59bdac0893d12c3871408279231f97458364f07b" + integrity sha1-Wb2sCJPRLDhxQIJ5Ix+XRYNk8Hs= + dependencies: + stack-trace "~0.0.7" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/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.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989: + version "1.0.30000999" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz#427253a69ad7bea4aa8d8345687b8eec51ca0e43" + integrity sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg== + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/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.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/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.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@^2.1.5: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/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, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +command-exists@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" + integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== + +commander@^2.11.0, commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@~2.20.0: + version "2.20.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" + integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.1.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" + integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== + dependencies: + browserslist "^4.6.6" + semver "^6.3.0" + +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: + version "2.6.9" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0, cross-spawn@^6.0.4: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-modules-loader-core@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" + integrity sha1-WQhmgpShvs0mGuCkziGwtVHyHRY= + dependencies: + icss-replace-symbols "1.1.0" + postcss "6.0.1" + postcss-modules-extract-imports "1.1.0" + postcss-modules-local-by-default "1.2.0" + postcss-modules-scope "1.1.0" + postcss-modules-values "1.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.33: + version "1.0.0-alpha.33" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" + integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== + dependencies: + mdn-data "2.0.4" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.0.0, cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== + dependencies: + css-tree "1.0.0-alpha.29" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0, cssstyle@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0, data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +deasync@^0.1.14: + version "0.1.15" + resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.15.tgz#788c4bbe6d32521233b28d23936de1bbadd2e112" + integrity sha512-pxMaCYu8cQIbGkA4Y1R0PLSooPIpH1WgFBLeJ+zLxQgHfkZG86ViJSmZmONSjZJ/R3NjwkMcIWZAzpLB2G9/CA== + dependencies: + bindings "~1.2.1" + node-addon-api "^1.6.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= + dependencies: + strip-bom "^2.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/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.yarnpkg.com/define-property/-/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.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-serializer@0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow== + +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.247: + version "1.3.277" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.277.tgz#38b7b297f9b3f67ea900a965c1b11a555de526ec" + integrity sha512-Czmsrgng89DOgJlIknnw9bn5431QdtnUwGp5YYiPwU1DbZQUxCLF+rc1ZC09VNAdalOPcvH6AE8BaA0H5HjI/w== + +elliptic@^6.0.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" + integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +envinfo@^7.3.1: + version "7.4.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.4.0.tgz#bef4ece9e717423aaf0c3584651430b735ad6630" + integrity sha512-FdDfnWnCVjxTTpWE3d6Jgh5JDIA3Cw7LCgpM/pI7kK1ORkjaqI2r6NqQ+ln2j0dfpgxY00AWieSvtkiZQKIItA== + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.12.0, es-abstract@^1.5.1: + version "1.15.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57" + integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.11.0, escodegen@^1.8.1, escodegen@^1.9.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" + integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escodegen@~1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" + integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q== + 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.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== + dependencies: + merge "^1.2.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + 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.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/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.yarnpkg.com/expand-brackets/-/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.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== + 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.yarnpkg.com/extend-shallow/-/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.yarnpkg.com/extend-shallow/-/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.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/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.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + 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.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +falafel@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" + integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw= + dependencies: + acorn "^5.0.0" + foreach "^2.0.5" + isarray "0.0.1" + object-keys "^1.0.6" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-glob@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + dependencies: + bser "^2.0.0" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + 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.yarnpkg.com/fill-range/-/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.yarnpkg.com/find-up/-/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.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + 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.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fs@0.0.1-security: + version "0.0.1-security" + resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" + integrity sha1-invTcYa23d84E/I4WLV+yq9eQdQ= + +fsevents@^1.2.3, fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/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.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/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.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + 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@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== + +grapheme-breaker@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz#5b9e6b78c3832452d2ba2bb1cb830f96276410ac" + integrity sha1-W55reMODJFLSuiuxy4MPlidkEKw= + dependencies: + brfs "^1.2.0" + unicode-trie "^0.3.1" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +handlebars@^4.0.3: + version "4.4.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.2.tgz#8810a9821a9d6d52cb2f57d326d6ce7c3dfe741d" + integrity sha512-cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg== + 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.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/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.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/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.yarnpkg.com/has-value/-/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.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/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.0, has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/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.8.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" + integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-tags@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.2.0.tgz#c78de65b5663aa597989dd2b7ab49200d7e4db98" + integrity sha1-x43mW1Zjqll5id0rerSSANfk25g= + +htmlnano@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-0.2.4.tgz#c9717b46f4186bdd1df555427d7689c1005c3b86" + integrity sha512-wsg7+Hjyi1gHpMUixkeOjeRUNhBBTnEDB//kzvVHR+LUK4p+/31DAyE+pEACT0SQk3W0KE7Xdylk9+uNxdHXLg== + dependencies: + cssnano "^4.1.10" + normalize-html-whitespace "^1.0.0" + object-assign "^4.0.1" + posthtml "^0.11.4" + posthtml-render "^1.1.5" + svgo "^1.2.2" + terser "^4.1.2" + uncss "^0.17.0" + +htmlparser2@^3.9.2: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ignore-walk@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" + integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== + dependencies: + minimatch "^3.0.4" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/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.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/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.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/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.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + 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.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + 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.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/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.yarnpkg.com/is-equal-shallow/-/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.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/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.yarnpkg.com/is-fullwidth-code-point/-/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.yarnpkg.com/is-fullwidth-code-point/-/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.yarnpkg.com/is-generator-fn/-/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.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-html@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-html/-/is-html-1.1.0.tgz#e04f1c18d39485111396f9a0273eab51af218464" + integrity sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ= + dependencies: + html-tags "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/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.yarnpkg.com/is-number/-/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.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-url@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/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.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/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.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" + integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== + 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.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== + +istanbul-lib-hook@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== + 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.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== + 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.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== + 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.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== + 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.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== + dependencies: + handlebars "^4.0.3" + +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== + dependencies: + throat "^4.0.0" + +jest-cli@^23.4.2, jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== + 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.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== + 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.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== + 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.yarnpkg.com/jest-docblock/-/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.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== + dependencies: + chalk "^2.0.1" + pretty-format "^23.6.0" + +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/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.yarnpkg.com/jest-environment-node/-/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.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== + +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== + 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.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== + 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.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== + 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.yarnpkg.com/jest-message-util/-/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.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= + +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= + +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== + dependencies: + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" + +jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== + 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.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== + 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.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== + 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.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= + +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== + 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.yarnpkg.com/jest-util/-/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.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== + 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.yarnpkg.com/jest-watcher/-/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.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= + dependencies: + merge-stream "^1.0.1" + +jest@^23.4.2: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== + dependencies: + import-local "^1.0.0" + jest-cli "^23.6.0" + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^3.7.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + 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" + +jsdom@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.1.0.tgz#916463b6094956b0a6c1782c94e380cd30e1981b" + integrity sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng== + dependencies: + abab "^2.0.0" + acorn "^6.0.4" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.1.3" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^2.5.0" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^6.1.2" + xml-name-validator "^3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/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.yarnpkg.com/kind-of/-/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.yarnpkg.com/kind-of/-/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.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" + integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-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.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.clone@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +magic-string@^0.22.4: + version "0.22.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== + dependencies: + vlq "^0.2.2" + +make-error@1.x: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +merge-source-map@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8= + dependencies: + source-map "^0.5.6" + +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" + +merge2@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-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.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + 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" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mock-require@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-2.0.2.tgz#1eaa71aad23013773d127dc7e91a3fbb4837d60d" + integrity sha1-HqpxqtIwE3c9En3H6Ro/u0g31g0= + dependencies: + caller-id "^0.1.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + 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" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + 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.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-addon-api@^1.6.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.1.tgz#cf813cd69bb8d9100f6bdca6755fc268f54ac492" + integrity sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ== + +node-forge@^0.7.1: + version "0.7.6" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" + integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^5.2.1: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== + 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.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + 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" + +node-releases@^1.1.29: + version "1.1.34" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.34.tgz#ced4655ee1ba9c3a2c5dcbac385e19434155fd40" + integrity sha512-fNn12JTEfniTuCqo0r9jXgl44+KxRH/huV7zM/KAGOKxDKrHr6EbT7SSs4B+DNxyBE2mks28AD+Jw6PkfY5uwA== + dependencies: + semver "^6.3.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-html-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34" + integrity sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + 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.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.7, nwsapi@^2.1.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/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-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-inspect@~1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" + integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/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.yarnpkg.com/object.omit/-/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.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +opn@^5.1.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/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.yarnpkg.com/optionator/-/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" + +ora@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b" + integrity sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA== + dependencies: + chalk "^2.3.1" + cli-cursor "^2.1.0" + cli-spinners "^1.1.0" + log-symbols "^2.2.0" + strip-ansi "^4.0.0" + wcwidth "^1.0.1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +pako@^0.2.5: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parcel-bundler@^1.9.7: + version "1.12.4" + resolved "https://registry.yarnpkg.com/parcel-bundler/-/parcel-bundler-1.12.4.tgz#31223f4ab4d00323a109fce28d5e46775409a9ee" + integrity sha512-G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/core" "^7.4.4" + "@babel/generator" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/plugin-transform-flow-strip-types" "^7.4.4" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/preset-env" "^7.4.4" + "@babel/runtime" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + "@iarna/toml" "^2.2.0" + "@parcel/fs" "^1.11.0" + "@parcel/logger" "^1.11.1" + "@parcel/utils" "^1.11.0" + "@parcel/watcher" "^1.12.1" + "@parcel/workers" "^1.11.0" + ansi-to-html "^0.6.4" + babylon-walk "^1.0.2" + browserslist "^4.1.0" + chalk "^2.1.0" + clone "^2.1.1" + command-exists "^1.2.6" + commander "^2.11.0" + core-js "^2.6.5" + cross-spawn "^6.0.4" + css-modules-loader-core "^1.1.0" + cssnano "^4.0.0" + deasync "^0.1.14" + dotenv "^5.0.0" + dotenv-expand "^5.1.0" + envinfo "^7.3.1" + fast-glob "^2.2.2" + filesize "^3.6.0" + get-port "^3.2.0" + htmlnano "^0.2.2" + is-glob "^4.0.0" + is-url "^1.2.2" + js-yaml "^3.10.0" + json5 "^1.0.1" + micromatch "^3.0.4" + mkdirp "^0.5.1" + node-forge "^0.7.1" + node-libs-browser "^2.0.0" + opn "^5.1.0" + postcss "^7.0.11" + postcss-value-parser "^3.3.1" + posthtml "^0.11.2" + posthtml-parser "^0.4.0" + posthtml-render "^1.1.3" + resolve "^1.4.0" + semver "^5.4.1" + serialize-to-js "^3.0.0" + serve-static "^1.12.4" + source-map "0.6.1" + terser "^3.7.3" + v8-compile-cache "^2.0.0" + ws "^5.1.1" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/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.yarnpkg.com/parse-json/-/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.yarnpkg.com/parse-json/-/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.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/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.yarnpkg.com/path-exists/-/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.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/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.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/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" + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +physical-cpu-count@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" + integrity sha1-GN4vl+S/epVRrXURlCtUlverpmA= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/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.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + integrity sha1-thTJcgvmgW6u41+zpfqh26agXds= + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + integrity sha1-AA29H47vIXqjaLmiEsX8QLKo8/I= + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.17, postcss@^7.0.5: + version "7.0.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" + integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +posthtml-parser@^0.4.0, posthtml-parser@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.4.1.tgz#95b78fef766fbbe0a6f861b6e95582bc3d1ff933" + integrity sha512-h7vXIQ21Ikz2w5wPClPakNP6mJeJCK6BT0GpqnQrNNABdR7/TchNlFyryL1Bz6Ww53YWCKkr6tdZuHlxY1AVdQ== + dependencies: + htmlparser2 "^3.9.2" + object-assign "^4.1.1" + +posthtml-render@^1.1.3, posthtml-render@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-1.1.5.tgz#387934e85438a3de77085fbc7d264efb00bd0e0f" + integrity sha512-yvt54j0zCBHQVEFAuR+yHld8CZrCa/E1Z/OcFNCV1IEWTLVxT8O7nYnM4IIw1CD4r8kaRd3lc42+0lgCKgm87w== + +posthtml@^0.11.2, posthtml@^0.11.4: + version "0.11.6" + resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.11.6.tgz#e349d51af7929d0683b9d8c3abd8166beecc90a8" + integrity sha512-C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw== + dependencies: + posthtml-parser "^0.4.1" + posthtml-render "^1.1.5" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== + dependencies: + kleur "^2.0.1" + sisteransi "^0.1.1" + +psl@^1.1.24, psl@^1.1.28: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +quote-stream@^1.0.1, quote-stream@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" + integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI= + dependencies: + buffer-equal "0.0.1" + minimist "^1.1.3" + through2 "^2.0.0" + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/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.yarnpkg.com/read-pkg/-/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" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + 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@^3.1.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +realpath-native@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.2.1, regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/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.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.87.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + 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.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/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.yarnpkg.com/resolve-cwd/-/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.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.x, resolve@^1.1.5, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/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.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + +rxjs@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/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.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/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, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-to-js@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/serialize-to-js/-/serialize-to-js-3.0.0.tgz#1fd8736744819a4df29dc85e9d04a44a4984edc3" + integrity sha512-WdGgi0jGnWCQXph2p3vkxceDnTfvfyXfYxherQMRcZjSaJzMQdMBAW6i0nojsBKIZ3fFOztZKKVbbm05VbIdRA== + +serve-static@^1.12.4: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-copy@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" + integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA= + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/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.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + 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.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + 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.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + 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.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + 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.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + 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" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-trace@~0.0.7: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +static-eval@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== + dependencies: + escodegen "^1.8.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +static-module@^2.2.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" + integrity sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ== + dependencies: + concat-stream "~1.6.0" + convert-source-map "^1.5.1" + duplexer2 "~0.1.4" + escodegen "~1.9.0" + falafel "^2.1.0" + has "^1.0.1" + magic-string "^0.22.4" + merge-source-map "1.0.4" + object-inspect "~1.4.0" + quote-stream "~1.0.2" + readable-stream "~2.3.3" + shallow-copy "~0.0.1" + static-eval "^2.0.0" + through2 "~2.0.3" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/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.yarnpkg.com/string-width/-/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.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.trimleft@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-bom@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/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.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.2, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" + integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.33" + csso "^3.5.1" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +terser@^3.7.3: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + +terser@^4.1.2: + version "4.3.8" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.8.tgz#707f05f3f4c1c70c840e626addfdb1c158a17136" + integrity sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== + 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.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through2@^2.0.0, through2@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-inflate@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" + integrity sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c= + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/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.yarnpkg.com/to-regex-range/-/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.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +ts-jest@^23.0.1: + version "23.10.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5" + integrity sha512-MRCs9qnGoyKgFc8adDEntAOP64fWK1vZKnOYU1o2HxaqjdJvGqmkLCPCnVq1/If4zkUmEjKPnCiUisTrlX2p2A== + 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.8.0, tslib@^1.8.1, tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslint-language-service@^0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/tslint-language-service/-/tslint-language-service-0.9.9.tgz#f546dc38483979e6fb3cfa59584ad8525b3ad4da" + integrity sha1-9UbcOEg5eeb7PPpZWErYUls61No= + dependencies: + mock-require "^2.0.2" + +tslint@^5.11.0: + version "5.20.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.0.tgz#fac93bfa79568a5a24e7be9cdde5e02b02d00ec1" + integrity sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/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.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^3.0.1, typescript@^3.4.5: + version "3.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da" + integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== + +uglify-js@^3.1.4: + version "3.6.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +uncss@^0.17.0: + version "0.17.2" + resolved "https://registry.yarnpkg.com/uncss/-/uncss-0.17.2.tgz#fac1c2429be72108e8a47437c647d58cf9ea66f1" + integrity sha512-hu2HquwDItuGDem4YsJROdAD8SknmWtM24zwhQax6J1se8tPjV1cnwPKhtjodzBaUhaL8Zb3hlGdZ2WAUpbAOg== + dependencies: + commander "^2.20.0" + glob "^7.1.4" + is-absolute-url "^3.0.1" + is-html "^1.1.0" + jsdom "^14.1.0" + lodash "^4.17.15" + postcss "^7.0.17" + postcss-selector-parser "6.0.2" + request "^2.88.0" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +unicode-trie@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" + integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU= + dependencies: + pako "^0.2.5" + tiny-inflate "^1.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +v8-compile-cache@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vendors@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-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" + +vlq@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + 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.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + 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.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.12, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.1.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@^5.1.1, ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= + dependencies: + camelcase "^4.1.0" + +yargs@^11.0.0: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" + integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^3.1.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" From 404ad4822011fc1c9db253cbc138572abdd6981e Mon Sep 17 00:00:00 2001 From: Kristiyan Tachev Date: Mon, 18 Nov 2019 13:47:26 +0200 Subject: [PATCH 2/2] chore(Webpack): trying to build project with webpack instead of parceljs --- dist/bin/root.d.ts | 12 - dist/bin/root.js | 267 +- dist/helpers/reflection.js | 2 +- dist/main.bundle.js | 17 + dist/main.bundle.js.map | 1 + .../external-importer/external-importer.js | 7 +- .../external-importer.spec-delayed.d.ts | 1 + .../external-importer.spec-delayed.js | 36 + dist/services/file/file.service.d.ts | 13 - dist/services/file/file.service.js | 252 +- dist/services/file/index.d.ts | 1 - dist/services/file/index.js | 7 +- dist/services/index.d.ts | 3 - dist/services/index.js | 6 +- package.json | 14 + src/bin/root.ts | 318 +-- .../external-importer/external-importer.ts | 12 +- src/services/file/file.service.ts | 270 +- src/services/file/index.ts | 2 +- src/services/index.ts | 6 +- src/services/plugin-manager/plugin-manager.ts | 18 - webpack.config.js | 57 + yarn.lock | 2342 ++++++++++++++++- 23 files changed, 3009 insertions(+), 655 deletions(-) create mode 100644 dist/main.bundle.js create mode 100644 dist/main.bundle.js.map create mode 100644 dist/services/external-importer/external-importer.spec-delayed.d.ts create mode 100644 dist/services/external-importer/external-importer.spec-delayed.js delete mode 100644 src/services/plugin-manager/plugin-manager.ts create mode 100644 webpack.config.js diff --git a/dist/bin/root.d.ts b/dist/bin/root.d.ts index 28f33d1..e69de29 100644 --- a/dist/bin/root.d.ts +++ b/dist/bin/root.d.ts @@ -1,12 +0,0 @@ -#!/usr/bin/env node -import { ExternalImporterIpfsConfig } from '../services/external-importer/external-importer-config'; -import { Observable } from 'rxjs'; -export interface PackagesConfig { - dependencies: string[]; - provider: string; -} -export declare const loadDeps: (jsonIpfs: PackagesConfig) => { - hash: string; - provider: string; -}[]; -export declare const DownloadDependencies: (dependencies: ExternalImporterIpfsConfig[]) => Observable; diff --git a/dist/bin/root.js b/dist/bin/root.js index 5f0e2e0..ddcb655 100644 --- a/dist/bin/root.js +++ b/dist/bin/root.js @@ -1,127 +1,140 @@ -#!/usr/bin/env node -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const Container_1 = require("../container/Container"); -const external_importer_1 = require("../services/external-importer/external-importer"); -const file_service_1 = require("../services/file/file.service"); -const config_service_1 = require("../services/config/config.service"); -const rxjs_1 = require("rxjs"); -const operators_1 = require("rxjs/operators"); -const includes = (i) => process.argv.toString().includes(i); -const externalImporter = Container_1.Container.get(external_importer_1.ExternalImporter); -const fileService = Container_1.Container.get(file_service_1.FileService); -let p = null; -if (includes('--local-node')) { - p = externalImporter.getProvider('local'); -} -if (includes('--cloudflare')) { - p = externalImporter.getProvider('cloudflare'); -} -if (includes('--infura')) { - p = externalImporter.getProvider('infura'); -} -if (includes('--ipfs')) { - p = externalImporter.getProvider('main-ipfs-node'); -} -externalImporter.defaultProvider = p || externalImporter.defaultProvider; -let provider = externalImporter.defaultProvider; -let hash = ''; -let modulesToDownload = []; -let customConfigFile; -let packageJsonConfigFile; -let rxdiConfigFile; -let json; -exports.loadDeps = (jsonIpfs) => { - if (!jsonIpfs) { - throw new Error('Missing ipfs config!'); - } - if (!jsonIpfs.provider) { - throw new Error('Missing ipfsProvider package.json'); - } - jsonIpfs.dependencies = jsonIpfs.dependencies || []; - return jsonIpfs.dependencies.map(hash => { - return { hash, provider: jsonIpfs.provider }; - }).filter(res => !!res); -}; -exports.DownloadDependencies = (dependencies) => { - return Container_1.Container.get(external_importer_1.ExternalImporter).downloadIpfsModules(dependencies); -}; -if (process.argv.toString().includes('-v') || process.argv.toString().includes('--verbose')) { - Container_1.Container.get(config_service_1.ConfigService).setConfig({ logger: { logging: true, hashes: true, date: true, exitHandler: true, fileService: true } }); -} -console.log(''); -if (process.argv[2] === 'install' || process.argv[2] === 'i') { - process.argv.forEach((val, index) => { - if (index === 3) { - if (val.length === 46) { - hash = val; - } - else if (val.includes('--hash=')) { - hash = val.split('--hash=')[1]; - } - else if (val.includes('-h=')) { - hash = val.split('-h=')[1]; - } - } - if (index === 4) { - if (val.includes('--provider=')) { - provider = val.split('--provider=')[1]; - } - else if (val.includes('http')) { - provider = val; - } - else if (val.includes('-p=')) { - provider = val.split('-p=')[1]; - } - } - }); - customConfigFile = `${process.cwd()}/${process.argv[3]}`; - packageJsonConfigFile = `${process.cwd()}/package.json`; - rxdiConfigFile = `${process.cwd()}/reactive.json`; - if (!hash && fileService.isPresent(customConfigFile)) { - json = require(customConfigFile).ipfs; - externalImporter.defaultJsonFolder = customConfigFile; - } - if (fileService.isPresent(packageJsonConfigFile)) { - json = require(packageJsonConfigFile).ipfs; - externalImporter.defaultJsonFolder = packageJsonConfigFile; - } - if (fileService.isPresent(rxdiConfigFile)) { - json = require(rxdiConfigFile).ipfs; - externalImporter.defaultJsonFolder = rxdiConfigFile; - } - console.log(`Loaded config ${externalImporter.defaultJsonFolder}`); - console.log('Reactive ipfs modules installing...'); - if (hash) { - modulesToDownload = [exports.DownloadDependencies(exports.loadDeps({ provider: p || provider, dependencies: [hash] }))]; - } - if (!hash) { - json = json || []; - modulesToDownload = [...modulesToDownload, ...json.map(json => { - json.provider = p || json.provider; - return exports.DownloadDependencies(exports.loadDeps(json)); - })]; - } - rxjs_1.combineLatest(modulesToDownload) - .pipe(operators_1.tap(() => hash ? externalImporter.addPackageToJson(hash) : null), operators_1.tap(() => externalImporter.filterUniquePackages())).subscribe((res) => { - console.log('Default ipfs provider: ', p || externalImporter.defaultProvider); - console.log(`Inside package.json default provider is ${externalImporter.defaultProvider}`); - console.log(JSON.stringify(res, null, 2), '\nReactive ipfs modules installed!'); - // clearInterval(interval); - }, (e) => { - throw new Error(e); - }); -} -if (process.argv[2] === '--ng-compat') { - const fileService = Container_1.Container.get(file_service_1.FileService); - const AngularCoreFolder = './node_modules/@angular/core/'; - const template = ` -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -__export(require("@rxdi/core")); -exports.NgModule = require("@rxdi/core").Module; - `; - fileService.mkdirp(AngularCoreFolder) - .pipe(operators_1.switchMap(() => fileService.writeFileAsyncP(AngularCoreFolder, 'index.js', template))).subscribe(() => console.log('@angular/core folder created with fake index.js exporting @rxdi/core'), console.log.bind(console)); -} +// #!/usr/bin/env node +// import { Container } from '../container/Container'; +// import { ExternalImporter } from '../services/external-importer/external-importer'; +// import { FileService } from '../services/file/file.service'; +// import { ExternalImporterIpfsConfig } from '../services/external-importer/external-importer-config'; +// import { ConfigService } from '../services/config/config.service'; +// import { Observable, combineLatest, pipe } from 'rxjs'; +// import { tap, switchMap } from 'rxjs/operators'; +// import { writeFileSync } from 'fs'; +// import { mkdirp } from '../services/file/dist'; +// const includes = (i: string) => process.argv.toString().includes(i); +// const externalImporter = Container.get(ExternalImporter); +// const fileService = Container.get(FileService); +// let p = null; +// if (includes('--local-node')) { +// p = externalImporter.getProvider('local'); +// } +// if (includes('--cloudflare')) { +// p = externalImporter.getProvider('cloudflare'); +// } +// if (includes('--infura')) { +// p = externalImporter.getProvider('infura'); +// } +// if (includes('--ipfs')) { +// p = externalImporter.getProvider('main-ipfs-node'); +// } +// externalImporter.defaultProvider = p || externalImporter.defaultProvider; +// let provider = externalImporter.defaultProvider; +// let hash = ''; +// let modulesToDownload = []; +// let customConfigFile; +// let packageJsonConfigFile; +// let rxdiConfigFile; +// let json: PackagesConfig[]; +// // let interval; +// export interface PackagesConfig { +// dependencies: string[]; +// provider: string; +// } +// export const loadDeps = (jsonIpfs: PackagesConfig) => { +// if (!jsonIpfs) { +// throw new Error('Missing ipfs config!'); +// } +// if (!jsonIpfs.provider) { +// throw new Error('Missing ipfsProvider package.json'); +// } +// jsonIpfs.dependencies = jsonIpfs.dependencies || []; +// return jsonIpfs.dependencies.map(hash => { +// return { hash, provider: jsonIpfs.provider }; +// }).filter(res => !!res); +// }; +// export const DownloadDependencies = (dependencies: ExternalImporterIpfsConfig[]): Observable => { +// return Container.get(ExternalImporter).downloadIpfsModules(dependencies); +// }; +// if (process.argv.toString().includes('-v') || process.argv.toString().includes('--verbose')) { +// Container.get(ConfigService).setConfig({ logger: { logging: true, hashes: true, date: true, exitHandler: true, fileService: true } }); +// } +// console.log(''); +// if (process.argv[2] === 'install' || process.argv[2] === 'i') { +// process.argv.forEach((val, index) => { +// if (index === 3) { +// if (val.length === 46) { +// hash = val; +// } else if (val.includes('--hash=')) { +// hash = val.split('--hash=')[1]; +// } else if (val.includes('-h=')) { +// hash = val.split('-h=')[1]; +// } +// } +// if (index === 4) { +// if (val.includes('--provider=')) { +// provider = val.split('--provider=')[1]; +// } else if (val.includes('http')) { +// provider = val; +// } else if (val.includes('-p=')) { +// provider = val.split('-p=')[1]; +// } +// } +// }); +// customConfigFile = `${process.cwd()}/${process.argv[3]}`; +// packageJsonConfigFile = `${process.cwd()}/package.json`; +// rxdiConfigFile = `${process.cwd()}/reactive.json`; +// if (!hash && fileService.isPresent(customConfigFile)) { +// json = require(customConfigFile).ipfs; +// externalImporter.defaultJsonFolder = customConfigFile; +// } +// if (fileService.isPresent(packageJsonConfigFile)) { +// json = require(packageJsonConfigFile).ipfs; +// externalImporter.defaultJsonFolder = packageJsonConfigFile; +// } +// if (fileService.isPresent(rxdiConfigFile)) { +// json = require(rxdiConfigFile).ipfs; +// externalImporter.defaultJsonFolder = rxdiConfigFile; +// } +// console.log(`Loaded config ${externalImporter.defaultJsonFolder}`); +// console.log('Reactive ipfs modules installing...'); +// if (hash) { +// modulesToDownload = [DownloadDependencies(loadDeps({ provider: p || provider, dependencies: [hash] }))]; +// } +// if (!hash) { +// json = json || []; +// modulesToDownload = [...modulesToDownload, ...json.map(json => { +// json.provider = p || json.provider; +// return DownloadDependencies(loadDeps(json)); +// })]; +// } +// combineLatest(modulesToDownload) +// .pipe( +// tap(() => hash ? externalImporter.addPackageToJson(hash) : null), +// tap(() => externalImporter.filterUniquePackages()) +// ).subscribe( +// (res) => { +// console.log('Default ipfs provider: ', p || externalImporter.defaultProvider); +// console.log(`Inside package.json default provider is ${externalImporter.defaultProvider}`); +// console.log(JSON.stringify(res, null, 2), '\nReactive ipfs modules installed!'); +// // clearInterval(interval); +// }, +// (e) => { +// throw new Error(e); +// } +// ); +// } +// if (process.argv[2] === '--ng-compat') { +// const fileService = Container.get(FileService); +// const AngularCoreFolder = './node_modules/@angular/core/'; +// const template = ` +// function __export(m) { +// for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +// } +// __export(require("@rxdi/core")); +// exports.NgModule = require("@rxdi/core").Module; +// `; +// fileService.mkdirp(AngularCoreFolder) +// .pipe( +// switchMap(() => fileService.writeFileAsyncP(AngularCoreFolder, 'index.js', template)) +// ).subscribe( +// () => console.log('@angular/core folder created with fake index.js exporting @rxdi/core'), +// console.log.bind(console) +// ); +// } diff --git a/dist/helpers/reflection.js b/dist/helpers/reflection.js index 135543b..66a34d8 100644 --- a/dist/helpers/reflection.js +++ b/dist/helpers/reflection.js @@ -91,4 +91,4 @@ exports.Reflection = { metadata }; Object.assign(Reflect, exports.Reflection); -//# sourceMappingURL=index.js.map +// # sourceMappingURL=index.js.map diff --git a/dist/main.bundle.js b/dist/main.bundle.js new file mode 100644 index 0000000..1b26314 --- /dev/null +++ b/dist/main.bundle.js @@ -0,0 +1,17 @@ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=140)}([function(t,e,n){"use strict";n.d(e,"a",function(){return i}); +/*! ***************************************************************************** +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. +***************************************************************************** */ +var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}},function(t,e,n){"use strict";n.d(e,"a",function(){return l});var r=n(0),i=n(26),o=n(54),s=n(5),c=n(39),u=n(15),a=n(35),l=function(t){function e(n,r,i){var s=t.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.a;break;case 1:if(!n){s.destination=o.a;break}if("object"==typeof n){n instanceof e?(s.syncErrorThrowable=n.syncErrorThrowable,s.destination=n,n.add(s)):(s.syncErrorThrowable=!0,s.destination=new f(s,n));break}default:s.syncErrorThrowable=!0,s.destination=new f(s,n,r,i)}return s}return r.a(e,t),e.prototype[c.a]=function(){return this},e.create=function(t,n,r){var i=new e(t,n,r);return i.syncErrorThrowable=!1,i},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this},e}(s.a),f=function(t){function e(e,n,r,s){var c,u=t.call(this)||this;u._parentSubscriber=e;var a=u;return Object(i.a)(n)?c=n:n&&(c=n.next,r=n.error,s=n.complete,n!==o.a&&(a=Object.create(n),Object(i.a)(a.unsubscribe)&&u.add(a.unsubscribe.bind(a)),a.unsubscribe=u.unsubscribe.bind(u))),u._context=a,u._next=c,u._error=r,u._complete=s,u}return r.a(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;u.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=u.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(a.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(a.a)(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};u.a.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(t){if(this.unsubscribe(),u.a.useDeprecatedSynchronousErrorHandling)throw t;Object(a.a)(t)}},e.prototype.__tryOrSetError=function(t,e,n){if(!u.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(e){return u.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=e,t.syncErrorThrown=!0,!0):(Object(a.a)(e),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(l)},function(t,e,n){"use strict";var r=n(53),i=n(1),o=n(39),s=n(54);var c=n(22),u=n(37),a=n(15);n.d(e,"a",function(){return l});var l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var r=this.operator,c=function(t,e,n){if(t){if(t instanceof i.a)return t;if(t[o.a])return t[o.a]()}return t||e||n?new i.a(t,e,n):new i.a(s.a)}(t,e,n);if(r?c.add(r.call(c,this.source)):c.add(this.source||a.a.useDeprecatedSynchronousErrorHandling&&!c.syncErrorThrowable?this._subscribe(c):this._trySubscribe(c)),a.a.useDeprecatedSynchronousErrorHandling&&c.syncErrorThrowable&&(c.syncErrorThrowable=!1,c.syncErrorThrown))throw c.syncErrorValue;return c},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){a.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),Object(r.a)(t)?t.error(e):console.warn(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=f(e))(function(e,r){var i;i=n.subscribe(function(e){try{t(e)}catch(t){r(t),i&&i.unsubscribe()}},r,e)})},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[c.a]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e0?t.prototype.requestAsyncId.call(this,e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame(function(){return e.flush(null)})))},e.prototype.recycleAsyncId=function(e,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,r);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(v.a),y=n(32),m=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d.a(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,r=-1,i=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++re.index?1:-1:t.delay>e.delay?1:-1},e}(v.a),_=n(57),x=n(5),S=n(1),O=n(18),j=n(37),C=n(16),E=n(20);function P(t){return!!t&&(t instanceof r.a||"function"==typeof t.lift&&"function"==typeof t.subscribe)}var I=n(25),T=n(28),N=n(23),M=n(40),k=n(68),V=n(9),R=n(53),A=n(7),F=n(10);function L(t,e,n){if(e){if(!Object(F.a)(e))return function(){for(var r=[],i=0;i1?r.next(Array.prototype.slice.call(arguments)):r.next(t)},r,n)})}function et(t,e,n){return n?et(t,e).pipe(Object(V.a)(function(t){return Object(A.a)(t)?n.apply(void 0,t):n(t)})):new r.a(function(n){var r,i=function(){for(var t=[],e=0;e=e){r.complete();break}if(r.next(o++),r.closed)break}})}function _t(t){var e=t.start,n=t.index,r=t.count,i=t.subscriber;n>=r?i.complete():(i.next(e),i.closed||(t.index=n+1,t.start=e+1,this.schedule(t)))}var xt=n(47),St=n(64);function Ot(t,e){return new r.a(function(n){var r,i;try{r=t()}catch(t){return void n.error(t)}try{i=e(r)}catch(t){return void n.error(t)}var o=(i?Object(K.a)(i):G.a).subscribe(n);return function(){o.unsubscribe(),r&&r.unsubscribe()}})}var jt=n(43),Ct=n(63),Et=n(15);n.d(e,"Observable",function(){return r.a}),n.d(e,"ConnectableObservable",function(){return i.a}),n.d(e,"GroupedObservable",function(){return o.a}),n.d(e,"observable",function(){return s.a}),n.d(e,"Subject",function(){return c.a}),n.d(e,"BehaviorSubject",function(){return u.a}),n.d(e,"ReplaySubject",function(){return a.a}),n.d(e,"AsyncSubject",function(){return l.a}),n.d(e,"asapScheduler",function(){return f.a}),n.d(e,"asyncScheduler",function(){return h.a}),n.d(e,"queueScheduler",function(){return p.a}),n.d(e,"animationFrameScheduler",function(){return m}),n.d(e,"VirtualTimeScheduler",function(){return g}),n.d(e,"VirtualAction",function(){return w}),n.d(e,"Scheduler",function(){return _.a}),n.d(e,"Subscription",function(){return x.a}),n.d(e,"Subscriber",function(){return S.a}),n.d(e,"Notification",function(){return O.a}),n.d(e,"NotificationKind",function(){return O.b}),n.d(e,"pipe",function(){return j.a}),n.d(e,"noop",function(){return C.a}),n.d(e,"identity",function(){return E.a}),n.d(e,"isObservable",function(){return P}),n.d(e,"ArgumentOutOfRangeError",function(){return I.a}),n.d(e,"EmptyError",function(){return T.a}),n.d(e,"ObjectUnsubscribedError",function(){return N.a}),n.d(e,"UnsubscriptionError",function(){return M.a}),n.d(e,"TimeoutError",function(){return k.a}),n.d(e,"bindCallback",function(){return L}),n.d(e,"bindNodeCallback",function(){return D}),n.d(e,"combineLatest",function(){return U.b}),n.d(e,"concat",function(){return Y.a}),n.d(e,"defer",function(){return q.a}),n.d(e,"empty",function(){return G.b}),n.d(e,"forkJoin",function(){return Q}),n.d(e,"from",function(){return K.a}),n.d(e,"fromEvent",function(){return tt}),n.d(e,"fromEventPattern",function(){return et}),n.d(e,"generate",function(){return nt}),n.d(e,"iif",function(){return it}),n.d(e,"interval",function(){return st}),n.d(e,"merge",function(){return ut.a}),n.d(e,"never",function(){return lt}),n.d(e,"of",function(){return ft.a}),n.d(e,"onErrorResumeNext",function(){return ht}),n.d(e,"pairs",function(){return pt}),n.d(e,"partition",function(){return mt}),n.d(e,"race",function(){return gt.a}),n.d(e,"range",function(){return wt}),n.d(e,"throwError",function(){return xt.a}),n.d(e,"timer",function(){return St.a}),n.d(e,"using",function(){return Ot}),n.d(e,"zip",function(){return jt.b}),n.d(e,"scheduled",function(){return Ct.a}),n.d(e,"EMPTY",function(){return G.a}),n.d(e,"NEVER",function(){return at}),n.d(e,"config",function(){return Et.a})},function(t,e,n){"use strict";function r(t){return t}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r=function(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}()},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r="function"==typeof Symbol&&Symbol.observable||"@@observable"},function(t,e,n){"use strict";function r(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}n.d(e,"a",function(){return i}),r.prototype=Object.create(Error.prototype);var i=r},function(t,e,n){"use strict";n.d(e,"a",function(){return a});var r=n(0),i=n(3),o=n(4),s=n(14),c=n(9),u=n(13);function a(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof e?function(r){return r.pipe(a(function(n,r){return Object(u.a)(t(n,r)).pipe(Object(c.a)(function(t,i){return e(n,t,r,i)}))},n))}:("number"==typeof e&&(n=e),function(e){return e.lift(new l(t,n))})}var l=function(){function t(t,e){void 0===e&&(e=Number.POSITIVE_INFINITY),this.project=t,this.concurrent=e}return t.prototype.call=function(t,e){return e.subscribe(new f(t,this.project,this.concurrent))},t}(),f=function(t){function e(e,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var i=t.call(this,e)||this;return i.project=n,i.concurrent=r,i.hasCompleted=!1,i.buffer=[],i.active=0,i.index=0,i}return r.a(e,t),e.prototype._next=function(t){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.a)},function(t,e,n){"use strict";function r(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}n.d(e,"a",function(){return i}),r.prototype=Object.create(Error.prototype);var i=r},function(t,e,n){"use strict";function r(t){return"function"==typeof t}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(12);e.Injectable=r.Service;var i=n(42);e.Container=i.Container;var o=n(103);e.ContainerInstance=o.ContainerInstance;var s=n(41);e.InjectionToken=s.Token},function(t,e,n){"use strict";function r(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}n.d(e,"a",function(){return i}),r.prototype=Object.create(Error.prototype);var i=r},function(t,e,n){"use strict";var r=n(0),i=function(t){function e(e,n){return t.call(this)||this}return r.a(e,t),e.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},e}(n(5).a);n.d(e,"a",function(){return o});var o=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.pending=!1,r}return r.a(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this},e.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),setInterval(t.flush.bind(t,this),n)},e.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)},e.prototype.execute=function(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,e){var n=!1,r=void 0;try{this.work(t)}catch(t){n=!0,r=!!t&&t||new Error(t)}if(n)return this.unsubscribe(),r},e.prototype._unsubscribe=function(){var t=this.id,e=this.scheduler,n=e.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null},e}(i)},function(t,e,n){"use strict";n.d(e,"a",function(){return s});var r=n(0),i=n(6),o=n(5),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.value=null,e.hasNext=!1,e.hasCompleted=!1,e}return r.a(e,t),e.prototype._subscribe=function(e){return this.hasError?(e.error(this.thrownError),o.a.EMPTY):this.hasCompleted&&this.hasNext?(e.next(this.value),e.complete(),o.a.EMPTY):t.prototype._subscribe.call(this,e)},e.prototype.next=function(t){this.hasCompleted||(this.value=t,this.hasNext=!0)},e.prototype.error=function(e){this.hasCompleted||t.prototype.error.call(this,e)},e.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&t.prototype.next.call(this,this.value),t.prototype.complete.call(this)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",function(){return s});var r=n(2),i=n(75),o=n(51);function s(t,e){return e?Object(o.a)(t,e):new r.a(Object(i.a)(t))}},function(t,e,n){"use strict";n.d(e,"a",function(){return o});var r=n(0),i=n(57),o=function(t){function e(n,r){void 0===r&&(r=i.a.now);var o=t.call(this,n,function(){return e.delegate&&e.delegate!==o?e.delegate.now():r()})||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return r.a(e,t),e.prototype.schedule=function(n,r,i){return void 0===r&&(r=0),e.delegate&&e.delegate!==this?e.delegate.schedule(n,r,i):t.prototype.schedule.call(this,n,r,i)},e.prototype.flush=function(t){var e=this.actions;if(this.active)e.push(t);else{var n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",function(){return i});var r=n(7);function i(t){return!Object(r.a)(t)&&t-parseFloat(t)+1>=0}},function(t,e,n){"use strict";n.d(e,"a",function(){return o});var r=n(36),i=n(67);function o(){for(var t=[],e=0;et.reset());return this}static registerHandler(t){return this.handlers.set(t,t),this}static import(t){return this}}e.Container=i,i.globalInstance=new r.ContainerInstance(void 0),i.instances=new Map,i.handlers=new Map},function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return f});var r=n(0),i=n(31),o=n(7),s=n(1),c=n(4),u=n(3),a=n(21);function l(){for(var t=[],e=0;ethis.index},t.prototype.hasCompleted=function(){return this.array.length===this.index},t}(),v=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.parent=n,i.observable=r,i.stillUnsubscribed=!0,i.buffer=[],i.isComplete=!1,i}return r.a(e,t),e.prototype[a.a]=function(){return this},e.prototype.next=function(){var t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(t,e,n,r,i){this.buffer.push(e),this.parent.checkIterators()},e.prototype.subscribe=function(t,e){return Object(u.a)(this,this.observable,this,e)},e}(c.a)},function(t,e,n){"use strict";n.d(e,"a",function(){return s});var r=n(2),i=n(13),o=n(11);function s(t){return new r.a(function(e){var n;try{n=t()}catch(t){return void e.error(t)}return(n?Object(i.a)(n):Object(o.b)()).subscribe(e)})}},function(t,e,n){"use strict";n.d(e,"a",function(){return o});var r=n(24),i=n(20);function o(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),Object(r.a)(i.a,t)}},function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return f});var r=n(0),i=n(10),o=n(7),s=n(4),c=n(3),u=n(31),a={};function l(){for(var t=[],e=0;ethis._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new f(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=r.length;if(this.closed)throw new u.a;if(this.isStopped||this.hasError?e=s.a.EMPTY:(this.observers.push(t),e=new a.a(this,t)),i&&t.add(t=new c.a(t,i)),n)for(var l=0;le&&(o=Math.max(o,i-e)),o>0&&r.splice(0,o),r},e}(i.a),f=function(){return function(t,e){this.time=t,this.value=e}}()},function(t,e,n){"use strict";n.d(e,"a",function(){return o});var r=n(0),i=n(1);function o(){return function(t){return t.lift(new s(t))}}var s=function(){function t(t){this.connectable=t}return t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var r=new c(t,n),i=e.subscribe(r);return r.closed||(r.connection=n.connect()),i},t}(),c=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return r.a(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._refCount;if(e<=0)this.connection=null;else if(t._refCount=e-1,e>1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(i.a)},function(t,e,n){"use strict";var r=n(0),i=1,o={};var s=function(t){var e=i++;return o[e]=t,Promise.resolve().then(function(){return function(t){var e=o[t];e&&e()}(e)}),e},c=function(t){delete o[t]},u=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return r.a(e,t),e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0?t.prototype.requestAsyncId.call(this,e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=s(e.flush.bind(e,null))))},e.prototype.recycleAsyncId=function(e,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,r);0===e.actions.length&&(c(n),e.scheduled=void 0)},e}(n(29).a),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.a(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,r=-1,i=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++rr.Container.get(t)})}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(105),i=n(42),o=n(41);e.ReflectDecorator=function(t,e){return n=>{const s=r.createUniqueHash(`${n}${JSON.stringify(t,null,4)}`);Object.defineProperty(n,"originalName",{value:n.name||n.constructor.name,writable:!1}),Object.defineProperty(n,"name",{value:s,writable:!0});const c=t=>t.charAt(0).toUpperCase()+t.slice(1);n.metadata={moduleName:n.originalName,moduleHash:s,options:t||null,type:e.type,raw:`\n ---- @${c(e.type)} '${n.name}' metadata----\n @${c(e.type)}(${JSON.stringify(t,null,4)})\n ${n.originalName}\n `};const u={type:n};"string"==typeof t||t instanceof o.Token?(u.id=t,u.multiple=t.multiple,u.global=t.global||!1,u.transient=t.transient):t&&(u.id=t.id,u.factory=t.factory,u.multiple=t.multiple,u.global=t.global||!1,u.transient=t.transient),i.Container.set(u)}}},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r=function(){function t(e,n){void 0===n&&(n=t.now),this.SchedulerAction=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(n,e)},t.now=function(){return Date.now()},t}()},function(t,e,n){"use strict";n.r(e);var r=n(0),i=n(4),o=n(3);function s(t){return function(e){return e.lift(new c(t))}}var c=function(){function t(t){this.durationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.durationSelector))},t}(),u=function(t){function e(e,n){var r=t.call(this,e)||this;return r.durationSelector=n,r.hasValue=!1,r}return r.a(e,t),e.prototype._next=function(t){if(this.value=t,this.hasValue=!0,!this.throttled){var e=void 0;try{e=(0,this.durationSelector)(t)}catch(t){return this.destination.error(t)}var n=Object(o.a)(this,e);!n||n.closed?this.clearThrottle():this.add(this.throttled=n)}},e.prototype.clearThrottle=function(){var t=this.value,e=this.hasValue,n=this.throttled;n&&(this.remove(n),this.throttled=null,n.unsubscribe()),e&&(this.value=null,this.hasValue=!1,this.destination.next(t))},e.prototype.notifyNext=function(t,e,n,r){this.clearThrottle()},e.prototype.notifyComplete=function(){this.clearThrottle()},e}(i.a),a=n(8),l=n(64);function f(t,e){return void 0===e&&(e=a.a),s(function(){return Object(l.a)(t,e)})}function h(t){return function(e){return e.lift(new p(t))}}var p=function(){function t(t){this.closingNotifier=t}return t.prototype.call=function(t,e){return e.subscribe(new d(t,this.closingNotifier))},t}(),d=function(t){function e(e,n){var r=t.call(this,e)||this;return r.buffer=[],r.add(Object(o.a)(r,n)),r}return r.a(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype.notifyNext=function(t,e,n,r,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},e}(i.a),v=n(1);function b(t,e){return void 0===e&&(e=null),function(n){return n.lift(new y(t,e))}}var y=function(){function t(t,e){this.bufferSize=t,this.startBufferEvery=e,this.subscriberClass=e&&t!==e?g:m}return t.prototype.call=function(t,e){return e.subscribe(new this.subscriberClass(t,this.bufferSize,this.startBufferEvery))},t}(),m=function(t){function e(e,n){var r=t.call(this,e)||this;return r.bufferSize=n,r.buffer=[],r}return r.a(e,t),e.prototype._next=function(t){var e=this.buffer;e.push(t),e.length==this.bufferSize&&(this.destination.next(e),this.buffer=[])},e.prototype._complete=function(){var e=this.buffer;e.length>0&&this.destination.next(e),t.prototype._complete.call(this)},e}(v.a),g=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.bufferSize=n,i.startBufferEvery=r,i.buffers=[],i.count=0,i}return r.a(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,r=this.buffers,i=this.count;this.count++,i%n==0&&r.push([]);for(var o=r.length;o--;){var s=r[o];s.push(t),s.length===e&&(r.splice(o,1),this.destination.next(s))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var r=e.shift();r.length>0&&n.next(r)}t.prototype._complete.call(this)},e}(v.a),w=n(10);function _(t){var e=arguments.length,n=a.a;Object(w.a)(arguments[arguments.length-1])&&(n=arguments[arguments.length-1],e--);var r=null;e>=2&&(r=arguments[1]);var i=Number.POSITIVE_INFINITY;return e>=3&&(i=arguments[2]),function(e){return e.lift(new x(t,r,i,n))}}var x=function(){function t(t,e,n,r){this.bufferTimeSpan=t,this.bufferCreationInterval=e,this.maxBufferSize=n,this.scheduler=r}return t.prototype.call=function(t,e){return e.subscribe(new O(t,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},t}(),S=function(){return function(){this.buffer=[]}}(),O=function(t){function e(e,n,r,i,o){var s=t.call(this,e)||this;s.bufferTimeSpan=n,s.bufferCreationInterval=r,s.maxBufferSize=i,s.scheduler=o,s.contexts=[];var c=s.openContext();if(s.timespanOnly=null==r||r<0,s.timespanOnly){var u={subscriber:s,context:c,bufferTimeSpan:n};s.add(c.closeAction=o.schedule(j,n,u))}else{var a={subscriber:s,context:c},l={bufferTimeSpan:n,bufferCreationInterval:r,subscriber:s,scheduler:o};s.add(c.closeAction=o.schedule(E,n,a)),s.add(o.schedule(C,r,l))}return s}return r.a(e,t),e.prototype._next=function(t){for(var e,n=this.contexts,r=n.length,i=0;i0;){var r=e.shift();n.next(r.buffer)}t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.contexts=null},e.prototype.onBufferFull=function(t){this.closeContext(t);var e=t.closeAction;if(e.unsubscribe(),this.remove(e),!this.closed&&this.timespanOnly){t=this.openContext();var n=this.bufferTimeSpan,r={subscriber:this,context:t,bufferTimeSpan:n};this.add(t.closeAction=this.scheduler.schedule(j,n,r))}},e.prototype.openContext=function(){var t=new S;return this.contexts.push(t),t},e.prototype.closeContext=function(t){this.destination.next(t.buffer);var e=this.contexts;(e?e.indexOf(t):-1)>=0&&e.splice(e.indexOf(t),1)},e}(v.a);function j(t){var e=t.subscriber,n=t.context;n&&e.closeContext(n),e.closed||(t.context=e.openContext(),t.context.closeAction=this.schedule(t,t.bufferTimeSpan))}function C(t){var e=t.bufferCreationInterval,n=t.bufferTimeSpan,r=t.subscriber,i=t.scheduler,o=r.openContext();r.closed||(r.add(o.closeAction=i.schedule(E,n,{subscriber:r,context:o})),this.schedule(t,e))}function E(t){var e=t.subscriber,n=t.context;e.closeContext(n)}var P=n(5);function I(t,e){return function(n){return n.lift(new T(t,e))}}var T=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new N(t,this.openings,this.closingSelector))},t}(),N=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.openings=n,i.closingSelector=r,i.contexts=[],i.add(Object(o.a)(i,n)),i}return r.a(e,t),e.prototype._next=function(t){for(var e=this.contexts,n=e.length,r=0;r0;){var r=n.shift();r.subscription.unsubscribe(),r.buffer=null,r.subscription=null}this.contexts=null,t.prototype._error.call(this,e)},e.prototype._complete=function(){for(var e=this.contexts;e.length>0;){var n=e.shift();this.destination.next(n.buffer),n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,r,i){t?this.closeBuffer(t):this.openBuffer(e)},e.prototype.notifyComplete=function(t){this.closeBuffer(t.context)},e.prototype.openBuffer=function(t){try{var e=this.closingSelector.call(this,t);e&&this.trySubscribe(e)}catch(t){this._error(t)}},e.prototype.closeBuffer=function(t){var e=this.contexts;if(e&&t){var n=t.buffer,r=t.subscription;this.destination.next(n),e.splice(e.indexOf(t),1),this.remove(r),r.unsubscribe()}},e.prototype.trySubscribe=function(t){var e=this.contexts,n=new P.a,r={buffer:[],subscription:n};e.push(r);var i=Object(o.a)(this,t,r);!i||i.closed?this.closeBuffer(r):(i.context=r,this.add(i),n.add(i))},e}(i.a);function M(t){return function(e){return e.lift(new k(t))}}var k=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new V(t,this.closingSelector))},t}(),V=function(t){function e(e,n){var r=t.call(this,e)||this;return r.closingSelector=n,r.subscribing=!1,r.openBuffer(),r}return r.a(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype._complete=function(){var e=this.buffer;e&&this.destination.next(e),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},e.prototype.notifyNext=function(t,e,n,r,i){this.openBuffer()},e.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},e.prototype.openBuffer=function(){var t=this.closingSubscription;t&&(this.remove(t),t.unsubscribe());var e,n=this.buffer;this.buffer&&this.destination.next(n),this.buffer=[];try{e=(0,this.closingSelector)()}catch(t){return this.error(t)}t=new P.a,this.closingSubscription=t,this.add(t),this.subscribing=!0,t.add(Object(o.a)(this,e)),this.subscribing=!1},e}(i.a),R=n(14);function A(t){return function(e){var n=new F(t),r=e.lift(n);return n.caught=r}}var F=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new L(t,this.selector,this.caught))},t}(),L=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.selector=n,i.caught=r,i}return r.a(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle();var r=new R.a(this,void 0,void 0);this.add(r),Object(o.a)(this,n,void 0,void 0,r)}},e}(i.a),B=n(46);function $(t){return function(e){return e.lift(new B.a(t))}}var D=n(7),H=n(13);function z(){for(var t=[],e=0;e0&&n[0].time-r.now()<=0;)n.shift().notification.observe(i);if(n.length>0){var o=Math.max(0,n[0].time-r.now());this.schedule(t,o)}else this.unsubscribe(),e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new dt(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(lt.a.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(lt.a.createComplete()),this.unsubscribe()},e}(v.a),dt=function(){return function(t,e){this.time=t,this.notification=e}}(),vt=n(2);function bt(t,e){return e?function(n){return new gt(n,e).lift(new yt(t))}:function(e){return e.lift(new yt(t))}}var yt=function(){function t(t){this.delayDurationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new mt(t,this.delayDurationSelector))},t}(),mt=function(t){function e(e,n){var r=t.call(this,e)||this;return r.delayDurationSelector=n,r.completed=!1,r.delayNotifierSubscriptions=[],r.index=0,r}return r.a(e,t),e.prototype.notifyNext=function(t,e,n,r,i){this.destination.next(t),this.removeSubscription(i),this.tryComplete()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){var e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()},e.prototype._next=function(t){var e=this.index++;try{var n=this.delayDurationSelector(t,e);n&&this.tryDelay(n,t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},e.prototype.removeSubscription=function(t){t.unsubscribe();var e=this.delayNotifierSubscriptions.indexOf(t);return-1!==e&&this.delayNotifierSubscriptions.splice(e,1),t.outerValue},e.prototype.tryDelay=function(t,e){var n=Object(o.a)(this,t,e);n&&!n.closed&&(this.destination.add(n),this.delayNotifierSubscriptions.push(n))},e.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},e}(i.a),gt=function(t){function e(e,n){var r=t.call(this)||this;return r.source=e,r.subscriptionDelay=n,r}return r.a(e,t),e.prototype._subscribe=function(t){this.subscriptionDelay.subscribe(new wt(t,this.source))},e}(vt.a),wt=function(t){function e(e,n){var r=t.call(this)||this;return r.parent=e,r.source=n,r.sourceSubscribed=!1,r}return r.a(e,t),e.prototype._next=function(t){this.subscribeToSource()},e.prototype._error=function(t){this.unsubscribe(),this.parent.error(t)},e.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},e.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},e}(v.a);function _t(){return function(t){return t.lift(new xt)}}var xt=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new St(t))},t}(),St=function(t){function e(e){return t.call(this,e)||this}return r.a(e,t),e.prototype._next=function(t){t.observe(this.destination)},e}(v.a);function Ot(t,e){return function(n){return n.lift(new jt(t,e))}}var jt=function(){function t(t,e){this.keySelector=t,this.flushes=e}return t.prototype.call=function(t,e){return e.subscribe(new Ct(t,this.keySelector,this.flushes))},t}(),Ct=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.keySelector=n,i.values=new Set,r&&i.add(Object(o.a)(i,r)),i}return r.a(e,t),e.prototype.notifyNext=function(t,e,n,r,i){this.values.clear()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype._next=function(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)},e.prototype._useKeySelector=function(t){var e,n=this.destination;try{e=this.keySelector(t)}catch(t){return void n.error(t)}this._finalizeNext(e,t)},e.prototype._finalizeNext=function(t,e){var n=this.values;n.has(t)||(n.add(t),this.destination.next(e))},e}(i.a);function Et(t,e){return function(n){return n.lift(new Pt(t,e))}}var Pt=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new It(t,this.compare,this.keySelector))},t}(),It=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.keySelector=r,i.hasKey=!1,"function"==typeof n&&(i.compare=n),i}return r.a(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e;try{var n=this.keySelector;e=n?n(t):t}catch(t){return this.destination.error(t)}var r=!1;if(this.hasKey)try{r=(0,this.compare)(this.key,e)}catch(t){return this.destination.error(t)}else this.hasKey=!0;r||(this.key=e,this.destination.next(t))},e}(v.a);function Tt(t,e){return Et(function(n,r){return e?e(n[t],r[t]):n[t]===r[t]})}var Nt=n(25),Mt=n(17),kt=n(28);function Vt(t){return void 0===t&&(t=Ft),function(e){return e.lift(new Rt(t))}}var Rt=function(){function t(t){this.errorFactory=t}return t.prototype.call=function(t,e){return e.subscribe(new At(t,this.errorFactory))},t}(),At=function(t){function e(e,n){var r=t.call(this,e)||this;return r.errorFactory=n,r.hasValue=!1,r}return r.a(e,t),e.prototype._next=function(t){this.hasValue=!0,this.destination.next(t)},e.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var t=void 0;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)},e}(v.a);function Ft(){return new kt.a}var Lt=n(11);function Bt(t){return function(e){return 0===t?Object(Lt.b)():e.lift(new $t(t))}}var $t=function(){function t(t){if(this.total=t,this.total<0)throw new Nt.a}return t.prototype.call=function(t,e){return e.subscribe(new Dt(t,this.total))},t}(),Dt=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.count=0,r}return r.a(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(v.a);function Ht(t,e){if(t<0)throw new Nt.a;var n=arguments.length>=2;return function(r){return r.pipe(Object(Mt.a)(function(e,n){return n===t}),Bt(1),n?st(e):Vt(function(){return new Nt.a}))}}var zt=n(36);function Wt(){for(var t=[],e=0;e0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(i.a);function ie(t){return function(e){return e.lift(new oe(t))}}var oe=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new se(t,this.callback))},t}(),se=function(t){function e(e,n){var r=t.call(this,e)||this;return r.add(new P.a(n)),r}return r.a(e,t),e}(v.a);function ce(t,e){if("function"!=typeof t)throw new TypeError("predicate is not a function");return function(n){return n.lift(new ue(t,n,!1,e))}}var ue=function(){function t(t,e,n,r){this.predicate=t,this.source=e,this.yieldIndex=n,this.thisArg=r}return t.prototype.call=function(t,e){return e.subscribe(new ae(t,this.predicate,this.source,this.yieldIndex,this.thisArg))},t}(),ae=function(t){function e(e,n,r,i,o){var s=t.call(this,e)||this;return s.predicate=n,s.source=r,s.yieldIndex=i,s.thisArg=o,s.index=0,s}return r.a(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete(),this.unsubscribe()},e.prototype._next=function(t){var e=this.predicate,n=this.thisArg,r=this.index++;try{e.call(n||this,t,r,this.source)&&this.notifyComplete(this.yieldIndex?r:t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},e}(v.a);function le(t,e){return function(n){return n.lift(new ue(t,n,!0,e))}}var fe=n(20);function he(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?Object(Mt.a)(function(e,n){return t(e,n,r)}):fe.a,Bt(1),n?st(e):Vt(function(){return new kt.a}))}}var pe=n(60);function de(){return function(t){return t.lift(new ve)}}var ve=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new be(t))},t}(),be=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.a(e,t),e.prototype._next=function(t){},e}(v.a);function ye(){return function(t){return t.lift(new me)}}var me=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new ge(t))},t}(),ge=function(t){function e(e){return t.call(this,e)||this}return r.a(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype._next=function(t){this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(v.a);function we(t){return function(e){return 0===t?Object(Lt.b)():e.lift(new _e(t))}}var _e=function(){function t(t){if(this.total=t,this.total<0)throw new Nt.a}return t.prototype.call=function(t,e){return e.subscribe(new xe(t,this.total))},t}(),xe=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.ring=new Array,r.count=0,r}return r.a(e,t),e.prototype._next=function(t){var e=this.ring,n=this.total,r=this.count++;e.length0)for(var n=this.count>=this.total?this.total:this.count,r=this.ring,i=0;i=2;return function(r){return r.pipe(t?Object(Mt.a)(function(e,n){return t(e,n,r)}):fe.a,we(1),n?st(e):Vt(function(){return new kt.a}))}}function Oe(t){return function(e){return e.lift(new je(t))}}var je=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new Ce(t,this.value))},t}(),Ce=function(t){function e(e,n){var r=t.call(this,e)||this;return r.value=n,r}return r.a(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(v.a);function Ee(){return function(t){return t.lift(new Pe)}}var Pe=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new Ie(t))},t}(),Ie=function(t){function e(e){return t.call(this,e)||this}return r.a(e,t),e.prototype._next=function(t){this.destination.next(lt.a.createNext(t))},e.prototype._error=function(t){var e=this.destination;e.next(lt.a.createError(t)),e.complete()},e.prototype._complete=function(){var t=this.destination;t.next(lt.a.createComplete()),t.complete()},e}(v.a);function Te(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new Ne(t,e,n))}}var Ne=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new Me(t,this.accumulator,this.seed,this.hasSeed))},t}(),Me=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o.accumulator=n,o._seed=r,o.hasSeed=i,o.index=0,o}return r.a(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.accumulator(this.seed,t,n)}catch(t){this.destination.error(t)}this.seed=e,this.destination.next(e)},e}(v.a),ke=n(37);function Ve(t,e){return arguments.length>=2?function(n){return Object(ke.a)(Te(t,e),we(1),st(e))(n)}:function(e){return Object(ke.a)(Te(function(e,n,r){return t(e,n,r+1)}),we(1))(e)}}function Re(t){return Ve("function"==typeof t?function(e,n){return t(e,n)>0?e:n}:function(t,e){return t>e?t:e})}var Ae=n(66);function Fe(){for(var t=[],e=0;e0?this._next(e.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},e}(i.a);function ze(t){return Ve("function"==typeof t?function(e,n){return t(e,n)<0?e:n}:function(t,e){return t-1&&(this.count=n-1),e.subscribe(this._unsubscribeAndRecycle())}},e}(v.a);function yn(t){return function(e){return e.lift(new mn(t))}}var mn=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new gn(t,this.notifier,e))},t}(),gn=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.notifier=n,i.source=r,i.sourceIsBeingSubscribedTo=!0,i}return r.a(e,t),e.prototype.notifyNext=function(t,e,n,r,i){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},e.prototype.notifyComplete=function(e){if(!1===this.sourceIsBeingSubscribedTo)return t.prototype.complete.call(this)},e.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return t.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},e.prototype._unsubscribe=function(){var t=this.notifications,e=this.retriesSubscription;t&&(t.unsubscribe(),this.notifications=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype._unsubscribeAndRecycle=function(){var e=this._unsubscribe;return this._unsubscribe=null,t.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=e,this},e.prototype.subscribeToRetries=function(){var e;this.notifications=new rn.a;try{e=(0,this.notifier)(this.notifications)}catch(e){return t.prototype.complete.call(this)}this.retries=e,this.retriesSubscription=Object(o.a)(this,e)},e}(i.a);function wn(t){return void 0===t&&(t=-1),function(e){return e.lift(new _n(t,e))}}var _n=function(){function t(t,e){this.count=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new xn(t,this.count,this.source))},t}(),xn=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.count=n,i.source=r,i}return r.a(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.source,r=this.count;if(0===r)return t.prototype.error.call(this,e);r>-1&&(this.count=r-1),n.subscribe(this._unsubscribeAndRecycle())}},e}(v.a);function Sn(t){return function(e){return e.lift(new On(t,e))}}var On=function(){function t(t,e){this.notifier=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new jn(t,this.notifier,this.source))},t}(),jn=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.notifier=n,i.source=r,i}return r.a(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.errors,r=this.retries,i=this.retriesSubscription;if(r)this.errors=null,this.retriesSubscription=null;else{n=new rn.a;try{r=(0,this.notifier)(n)}catch(e){return t.prototype.error.call(this,e)}i=Object(o.a)(this,r)}this._unsubscribeAndRecycle(),this.errors=n,this.retries=r,this.retriesSubscription=i,n.next(e)}},e.prototype._unsubscribe=function(){var t=this.errors,e=this.retriesSubscription;t&&(t.unsubscribe(),this.errors=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype.notifyNext=function(t,e,n,r,i){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},e}(i.a),Cn=n(49);function En(t){return function(e){return e.lift(new Pn(t))}}var Pn=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var n=new In(t),r=e.subscribe(n);return r.add(Object(o.a)(n,this.notifier)),r},t}(),In=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasValue=!1,e}return r.a(e,t),e.prototype._next=function(t){this.value=t,this.hasValue=!0},e.prototype.notifyNext=function(t,e,n,r,i){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},e}(i.a);function Tn(t,e){return void 0===e&&(e=a.a),function(n){return n.lift(new Nn(t,e))}}var Nn=function(){function t(t,e){this.period=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new Mn(t,this.period,this.scheduler))},t}(),Mn=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.period=n,i.scheduler=r,i.hasValue=!1,i.add(r.schedule(kn,n,{subscriber:i,period:n})),i}return r.a(e,t),e.prototype._next=function(t){this.lastValue=t,this.hasValue=!0},e.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},e}(v.a);function kn(t){var e=t.subscriber,n=t.period;e.notifyNext(),this.schedule(t,n)}function Vn(t,e){return function(n){return n.lift(new Rn(t,e))}}var Rn=function(){function t(t,e){this.compareTo=t,this.comparator=e}return t.prototype.call=function(t,e){return e.subscribe(new An(t,this.compareTo,this.comparator))},t}(),An=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.compareTo=n,i.comparator=r,i._a=[],i._b=[],i._oneComplete=!1,i.destination.add(n.subscribe(new Fn(e,i))),i}return r.a(e,t),e.prototype._next=function(t){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(t),this.checkValues())},e.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},e.prototype.checkValues=function(){for(var t=this._a,e=this._b,n=this.comparator;t.length>0&&e.length>0;){var r=t.shift(),i=e.shift(),o=!1;try{o=n?n(r,i):r===i}catch(t){this.destination.error(t)}o||this.emit(!1)}},e.prototype.emit=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype.nextB=function(t){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(t),this.checkValues())},e.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},e}(v.a),Fn=function(t){function e(e,n){var r=t.call(this,e)||this;return r.parent=n,r}return r.a(e,t),e.prototype._next=function(t){this.parent.nextB(t)},e.prototype._error=function(t){this.parent.error(t),this.unsubscribe()},e.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},e}(v.a);function Ln(){return new rn.a}function Bn(){return function(t){return Object(Cn.a)()(Ue(Ln)(t))}}function $n(t,e,n){var r;return r=t&&"object"==typeof t?t:{bufferSize:t,windowTime:e,refCount:!1,scheduler:n},function(t){return t.lift(function(t){var e,n,r=t.bufferSize,i=void 0===r?Number.POSITIVE_INFINITY:r,o=t.windowTime,s=void 0===o?Number.POSITIVE_INFINITY:o,c=t.refCount,u=t.scheduler,a=0,l=!1,f=!1;return function(t){a++,e&&!l||(l=!1,e=new ln.a(i,s,u),n=t.subscribe({next:function(t){e.next(t)},error:function(t){l=!0,e.error(t)},complete:function(){f=!0,e.complete()}}));var r=e.subscribe(this);this.add(function(){a--,r.unsubscribe(),n&&!f&&c&&0===a&&(n.unsubscribe(),n=void 0,e=void 0)})}}(r))}}function Dn(t){return function(e){return e.lift(new Hn(t,e))}}var Hn=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new zn(t,this.predicate,this.source))},t}(),zn=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.predicate=n,i.source=r,i.seenValue=!1,i.index=0,i}return r.a(e,t),e.prototype.applySingleValue=function(t){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=t)},e.prototype._next=function(t){var e=this.index++;this.predicate?this.tryNext(t,e):this.applySingleValue(t)},e.prototype.tryNext=function(t,e){try{this.predicate(t,e,this.source)&&this.applySingleValue(t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){var t=this.destination;this.index>0?(t.next(this.seenValue?this.singleValue:void 0),t.complete()):t.error(new kt.a)},e}(v.a);function Wn(t){return function(e){return e.lift(new Un(t))}}var Un=function(){function t(t){this.total=t}return t.prototype.call=function(t,e){return e.subscribe(new Yn(t,this.total))},t}(),Yn=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.count=0,r}return r.a(e,t),e.prototype._next=function(t){++this.count>this.total&&this.destination.next(t)},e}(v.a);function qn(t){return function(e){return e.lift(new Gn(t))}}var Gn=function(){function t(t){if(this._skipCount=t,this._skipCount<0)throw new Nt.a}return t.prototype.call=function(t,e){return 0===this._skipCount?e.subscribe(new v.a(t)):e.subscribe(new Jn(t,this._skipCount))},t}(),Jn=function(t){function e(e,n){var r=t.call(this,e)||this;return r._skipCount=n,r._count=0,r._ring=new Array(n),r}return r.a(e,t),e.prototype._next=function(t){var e=this._skipCount,n=this._count++;if(n0?this.startWindowEvery:this.windowSize,n=this.destination,r=this.windowSize,i=this.windows,o=i.length,s=0;s=0&&c%e==0&&!this.closed&&i.shift().complete(),++this.count%e==0&&!this.closed){var u=new rn.a;i.push(u),n.next(u)}},e.prototype._error=function(t){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().complete();this.destination.complete()},e.prototype._unsubscribe=function(){this.count=0,this.windows=null},e}(v.a);function Qr(t){var e=a.a,n=null,r=Number.POSITIVE_INFINITY;return Object(w.a)(arguments[3])&&(e=arguments[3]),Object(w.a)(arguments[2])?e=arguments[2]:Object(ir.a)(arguments[2])&&(r=arguments[2]),Object(w.a)(arguments[1])?e=arguments[1]:Object(ir.a)(arguments[1])&&(n=arguments[1]),function(i){return i.lift(new Xr(t,n,r,e))}}var Xr=function(){function t(t,e,n,r){this.windowTimeSpan=t,this.windowCreationInterval=e,this.maxWindowSize=n,this.scheduler=r}return t.prototype.call=function(t,e){return e.subscribe(new ti(t,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},t}(),Zr=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._numberOfNextedValues=0,e}return r.a(e,t),e.prototype.next=function(e){this._numberOfNextedValues++,t.prototype.next.call(this,e)},Object.defineProperty(e.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),e}(rn.a),ti=function(t){function e(e,n,r,i,o){var s=t.call(this,e)||this;s.destination=e,s.windowTimeSpan=n,s.windowCreationInterval=r,s.maxWindowSize=i,s.scheduler=o,s.windows=[];var c=s.openWindow();if(null!==r&&r>=0){var u={subscriber:s,window:c,context:null},a={windowTimeSpan:n,windowCreationInterval:r,subscriber:s,scheduler:o};s.add(o.schedule(ri,n,u)),s.add(o.schedule(ni,r,a))}else{var l={subscriber:s,window:c,windowTimeSpan:n};s.add(o.schedule(ei,n,l))}return s}return r.a(e,t),e.prototype._next=function(t){for(var e=this.windows,n=e.length,r=0;r=this.maxWindowSize&&this.closeWindow(i))}},e.prototype._error=function(t){for(var e=this.windows;e.length>0;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){for(var t=this.windows;t.length>0;){var e=t.shift();e.closed||e.complete()}this.destination.complete()},e.prototype.openWindow=function(){var t=new Zr;return this.windows.push(t),this.destination.next(t),t},e.prototype.closeWindow=function(t){t.complete();var e=this.windows;e.splice(e.indexOf(t),1)},e}(v.a);function ei(t){var e=t.subscriber,n=t.windowTimeSpan,r=t.window;r&&e.closeWindow(r),t.window=e.openWindow(),this.schedule(t,n)}function ni(t){var e=t.windowTimeSpan,n=t.subscriber,r=t.scheduler,i=t.windowCreationInterval,o={action:this,subscription:null},s={subscriber:n,window:n.openWindow(),context:o};o.subscription=r.schedule(ri,e,s),this.add(o.subscription),this.schedule(t,i)}function ri(t){var e=t.subscriber,n=t.window,r=t.context;r&&r.action&&r.subscription&&r.action.remove(r.subscription),e.closeWindow(n)}function ii(t,e){return function(n){return n.lift(new oi(t,e))}}var oi=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new si(t,this.openings,this.closingSelector))},t}(),si=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.openings=n,i.closingSelector=r,i.contexts=[],i.add(i.openSubscription=Object(o.a)(i,n,n)),i}return r.a(e,t),e.prototype._next=function(t){var e=this.contexts;if(e)for(var n=e.length,r=0;r0){var s=o.indexOf(n);-1!==s&&o.splice(s,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=[t].concat(this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(i.a),pi=n(43);function di(){for(var t=[],e=0;e=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});const o=n(12),s=n(98);let c=class{log(t){if(this.configService.config.logger.logging){const e=[this.logDate(),t];return console.log(...e),e}}error(t){console.error(t)}logImporter(t){if(this.configService.config.logger.logging)return this.log(t)}logDate(){return this.configService.config.logger.date?`${Date.now().toPrecision()}`:""}logFileService(t){if(this.configService.config.logger.fileService)return this.log(t),"``"}logHashes(t){return this.configService.config.logger.hashes?t:""}logExitHandler(t){if(!this.configService.config.logger.exitHandler)return"";this.log(t)}};r([n(55).Injector(s.ConfigService),i("design:type",s.ConfigService)],c.prototype,"configService",void 0),c=r([o.Service()],c),e.BootstrapLogger=c},function(t,e,n){"use strict";n.d(e,"b",function(){return u}),n.d(e,"a",function(){return h});var r=n(0),i=n(1),o=n(5),s=n(2),c=n(6);function u(t,e,n,r){return function(i){return i.lift(new a(t,e,n,r))}}var a=function(){function t(t,e,n,r){this.keySelector=t,this.elementSelector=e,this.durationSelector=n,this.subjectSelector=r}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},t}(),l=function(t){function e(e,n,r,i,o){var s=t.call(this,e)||this;return s.keySelector=n,s.elementSelector=r,s.durationSelector=i,s.subjectSelector=o,s.groups=null,s.attemptedToUnsubscribe=!1,s.count=0,s}return r.a(e,t),e.prototype._next=function(t){var e;try{e=this.keySelector(t)}catch(t){return void this.error(t)}this._group(t,e)},e.prototype._group=function(t,e){var n=this.groups;n||(n=this.groups=new Map);var r,i=n.get(e);if(this.elementSelector)try{r=this.elementSelector(t)}catch(t){this.error(t)}else r=t;if(!i){i=this.subjectSelector?this.subjectSelector():new c.a,n.set(e,i);var o=new h(e,i,this);if(this.destination.next(o),this.durationSelector){var s=void 0;try{s=this.durationSelector(new h(e,i))}catch(t){return void this.error(t)}this.add(s.subscribe(new f(e,i,this)))}}i.closed||i.next(r)},e.prototype._error=function(t){var e=this.groups;e&&(e.forEach(function(e,n){e.error(t)}),e.clear()),this.destination.error(t)},e.prototype._complete=function(){var t=this.groups;t&&(t.forEach(function(t,e){t.complete()}),t.clear()),this.destination.complete()},e.prototype.removeGroup=function(t){this.groups.delete(t)},e.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&t.prototype.unsubscribe.call(this))},e}(i.a),f=function(t){function e(e,n,r){var i=t.call(this,n)||this;return i.key=e,i.group=n,i.parent=r,i}return r.a(e,t),e.prototype._next=function(t){this.complete()},e.prototype._unsubscribe=function(){var t=this.parent,e=this.key;this.key=this.parent=null,t&&t.removeGroup(e)},e}(i.a),h=function(t){function e(e,n,r){var i=t.call(this)||this;return i.key=e,i.groupSubject=n,i.refCountSubscription=r,i}return r.a(e,t),e.prototype._subscribe=function(t){var e=new o.a,n=this.refCountSubscription,r=this.groupSubject;return n&&!n.closed&&e.add(new p(n)),e.add(r.subscribe(t)),e},e}(s.a),p=function(t){function e(e){var n=t.call(this)||this;return n.parent=e,e.count++,n}return r.a(e,t),e.prototype.unsubscribe=function(){var e=this.parent;e.closed||this.closed||(t.prototype.unsubscribe.call(this),e.count-=1,0===e.count&&e.attemptedToUnsubscribe&&e.unsubscribe())},e}(o.a)},function(t,e,n){"use strict";var r,i=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});const s=n(19),c=n(58),u=n(99),a=n(86),l=n(12),f=n(85),h="Someone try to unsubscribe from collection directly... agghhh.. read docs! Blame: ";let p=r=class{constructor(t){this.logger=t,this._cachedLayers=new s.BehaviorSubject([]),this.map=new Map,this.config={}}static createCacheInstance(t){return new u.CacheLayer(t)}getLayer(t){return this.map.has(t)?this.map.get(t):this.createLayer({name:t})}getLayersByName(t){return Array.from(this.map.keys()).map(e=>{if(e!==a.InternalLayers.modules&&e!==a.InternalLayers.globalConfig){const n=this.getLayer(e).getItem(a.InternalEvents.config);if(n&&n.data&&t===n.data.moduleName)return this.getLayer(n.data.moduleHash)}}).filter(t=>!!t)}searchForDuplicateDependenciesInsideApp(){const t=[].concat.apply([],Array.from(this.map.keys()).map(t=>Array.from(this.getLayer(t).map.keys()).map(t=>this.isExcludedEvent(t)?null:t).filter(t=>!!t))).map(t=>Object.create({count:1,name:t})).reduce((t,e)=>(t[e.name]=(t[e.name]||0)+e.count,t),{}),e=Object.keys(t).filter(e=>t[e]>1);if(e.length){const t=this.searchForDuplicatesByHash(e[0]),n=t[0].class.metadata.type.charAt(0).toUpperCase()+t[0].class.metadata.type.slice(1);throw new Error(`\n ${t[0].class.metadata.raw}\n ${n}: '${t[0].originalName}' found multiple times!\n ${n} hash: ${t[0].moduleHash}\n Modules: [${t[0].moduleName}, ${t[1].moduleName}]\n\n Hint: '${t[0].originalName}' class identity hash is identical in both\n imported files inside ${t[0].moduleName} and ${t[1].moduleName}\n consider removing one of the '${t[0].originalName}'\n `)}return e}isExcludedEvent(t){return t===a.InternalEvents.config||t===a.InternalEvents.load}searchForItem(t){return Array.from(this.map.keys()).map(e=>{const n=this.getLayer(e),r=Array.from(n.map.keys()).filter(e=>this.isExcludedEvent(e)?void 0:e===t.name);if(r.length)return n.getItem(r[0]).data}).filter(t=>!!t)[0]}searchForDuplicatesByHash(t){return Array.from(this.map.keys()).map(e=>{const n=this.getLayer(e),r=Array.from(n.map.keys()).filter(e=>{if(!this.isExcludedEvent(e))return e===t});if(r.length){const t=n.getItem(r[0]),i=this.getLayer(e).getItem(a.InternalEvents.config);return{moduleName:i.data.moduleName,moduleHash:i.data.moduleHash,originalName:t.data.originalName,dupeName:t.key,raw:i.data.raw,class:t.data}}}).filter(t=>!!t)}createLayer(t){if(this.map.has(t.name))return this.map.get(t.name);t.items=t.items||[],t.config=t.config||this.config;const e=r.createCacheInstance(t);return this.map.set(e.name,e),this._cachedLayers.next([...this._cachedLayers.getValue(),e]),this.LayerHook(e),e}LayerHook(t){this.protectLayerFromInvaders(t),(t.config.cacheFlushInterval||this.config.cacheFlushInterval)&&this.OnExpire(t)}protectLayerFromInvaders(t){t.items.constructor.prototype.unsubsribeFromLayer=t.items.constructor.prototype.unsubscribe,t.items.constructor.prototype.unsubscribe=(()=>{console.error(h+t.name)})}OnExpire(t){return new s.Observable(t=>t.next()).pipe(c.timeoutWith(t.config.cacheFlushInterval||this.config.cacheFlushInterval,s.of(1)),c.skip(1),c.take(1)).subscribe(()=>this.removeLayer(t))}removeLayer(t){this.map.delete(t.name),this._cachedLayers.next([...this._cachedLayers.getValue().filter(e=>e.name!==t.name)])}transferItems(t,e){const n=this.getLayer(t),r=[];return e.forEach(t=>{const e=this.createLayer(t);n.items.getValue().forEach(t=>e.putItem(t)),r.push(e)}),r}flushCache(){let t;return this._cachedLayers.pipe(c.take(1),c.map(e=>(t=e.map(t=>t.name),e.forEach(t=>this.removeLayer(t)),t.forEach(t=>this.createLayer({name:t})),!0)))}};p=r=i([l.Service(),o("design:paramtypes",[f.BootstrapLogger])],p),e.CacheService=p},function(t,e,n){"use strict";var r=n(0),i=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return r.a(e,t),e.prototype.schedule=function(e,n){return void 0===n&&(n=0),n>0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,r):e.flush(this)},e}(n(29).a),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.a(e,t),e}(n(32).a);n.d(e,"a",function(){return s});var s=new o(i)},function(t,e,n){"use strict";var r=n(2),i=n(5),o=n(22);var s=n(51),c=n(21);var u=n(73),a=n(74);function l(t,e){if(null!=t){if(function(t){return t&&"function"==typeof t[o.a]}(t))return function(t,e){return new r.a(function(n){var r=new i.a;return r.add(e.schedule(function(){var i=t[o.a]();r.add(i.subscribe({next:function(t){r.add(e.schedule(function(){return n.next(t)}))},error:function(t){r.add(e.schedule(function(){return n.error(t)}))},complete:function(){r.add(e.schedule(function(){return n.complete()}))}}))})),r})}(t,e);if(Object(u.a)(t))return function(t,e){return new r.a(function(n){var r=new i.a;return r.add(e.schedule(function(){return t.then(function(t){r.add(e.schedule(function(){n.next(t),r.add(e.schedule(function(){return n.complete()}))}))},function(t){r.add(e.schedule(function(){return n.error(t)}))})})),r})}(t,e);if(Object(a.a)(t))return Object(s.a)(t,e);if(function(t){return t&&"function"==typeof t[c.a]}(t)||"string"==typeof t)return function(t,e){if(!t)throw new Error("Iterable cannot be null");return new r.a(function(n){var r,o=new i.a;return o.add(function(){r&&"function"==typeof r.return&&r.return()}),o.add(e.schedule(function(){r=t[c.a](),o.add(e.schedule(function(){if(!n.closed){var t,e;try{var i=r.next();t=i.value,e=i.done}catch(t){return void n.error(t)}e?n.complete():(n.next(t),this.schedule())}}))})),o})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}n.d(e,"a",function(){return l})},function(t,e,n){"use strict";n.d(e,"a",function(){return c});var r=n(2),i=n(8),o=n(33),s=n(10);function c(t,e,n){void 0===t&&(t=0);var c=-1;return Object(o.a)(e)?c=Number(e)<1?1:Number(e):Object(s.a)(e)&&(n=e),Object(s.a)(n)||(n=i.a),new r.a(function(e){var r=Object(o.a)(t)?t:+t-n.now();return n.schedule(u,r,{index:0,period:c,subscriber:e})})}function u(t){var e=t.index,n=t.period,r=t.subscriber;if(r.next(e),!r.closed){if(-1===n)return r.complete();t.index=e+1,this.schedule(t,n)}}},function(t,e,n){"use strict";n.d(e,"a",function(){return u});var r=n(0),i=n(7),o=n(31),s=n(4),c=n(3);function u(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof u&&(n=t.pop()),null===c&&1===t.length&&t[0]instanceof r.a?t[0]:Object(o.a)(n)(Object(s.a)(t,c))}},function(t,e,n){"use strict";n.d(e,"a",function(){return i});var r=n(45);function i(){return Object(r.a)(1)}},function(t,e,n){"use strict";function r(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}n.d(e,"a",function(){return i}),r.prototype=Object.create(Error.prototype);var i=r},function(t,e,n){"use strict";n.d(e,"b",function(){return s}),n.d(e,"a",function(){return u});var r=n(0),i=n(1),o=n(18);function s(t,e){return void 0===e&&(e=0),function(n){return n.lift(new c(t,e))}}var c=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.scheduler,this.delay))},t}(),u=function(t){function e(e,n,r){void 0===r&&(r=0);var i=t.call(this,e)||this;return i.scheduler=n,i.delay=r,i}return r.a(e,t),e.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new a(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(o.a.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(o.a.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(o.a.createComplete()),this.unsubscribe()},e}(i.a),a=function(){return function(t,e){this.notification=t,this.destination=e}}()},function(t,e,n){"use strict";n.d(e,"a",function(){return s});var r=n(0),i=n(6),o=n(23),s=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return r.a(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.a;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(i.a)},function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n.d(e,"b",function(){return f});var r=n(0),i=n(6),o=n(2),s=n(1),c=n(5),u=n(49),a=function(t){function e(e,n){var r=t.call(this)||this;return r.source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return r.a(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new c.a).add(this.source.subscribe(new h(this.getSubject(),this))),t.closed&&(this._connection=null,t=c.a.EMPTY)),t},e.prototype.refCount=function(){return Object(u.a)()(this)},e}(o.a),l=a.prototype,f={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:l._subscribe},_isComplete:{value:l._isComplete,writable:!0},getSubject:{value:l.getSubject},connect:{value:l.connect},refCount:{value:l.refCount}},h=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return r.a(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(i.b);s.a},function(t,e,n){"use strict";function r(t,e){function n(){return!n.pred.apply(n.thisArg,arguments)}return n.pred=t,n.thisArg=e,n}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";function r(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.d(e,"a",function(){return r})},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t}},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r=function(t){return function(e){for(var n=0,r=t.length;n=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(19);let s=class{constructor(){this.services=new o.BehaviorSubject([])}register(t){this.services.next([...this.services.getValue(),t])}getServices(){return this.services.getValue()}};s=r([i.Service()],s),e.ServicesService=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(19);let s=class{constructor(){this.bootstraps=new o.BehaviorSubject([])}register(t){this.bootstraps.next([...this.bootstraps.getValue(),t])}getBootstraps(){return this.bootstraps.getValue()}};s=r([i.Service()],s),e.BootstrapsServices=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(19);let s=class{constructor(){this.components=new o.BehaviorSubject([])}register(t){this.components.next([...this.components.getValue(),t])}getComponents(){return this.components.getValue()}};s=r([i.Service()],s),e.ComponentsService=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(19);let s=class{constructor(){this.effects=new o.BehaviorSubject([])}register(t){this.effects.next([...this.effects.getValue(),t])}getEffects(){return this.effects.getValue()}};s=r([i.Service()],s),e.EffectsService=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(19);let s=class{constructor(){this.controllers=new o.BehaviorSubject([])}register(t){this.controllers.next([...this.controllers.getValue(),t])}getControllers(){return this.controllers.getValue()}};s=r([i.Service()],s),e.ControllersService=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});const o=n(19),s=n(27),c=n(12),u=n(93),a=n(83),l=n(55),f=n(92),h=n(101),p=n(81),d=n(80),v=n(79),b=n(78),y=n(77);let m=class{constructor(){this.watcherService=h.constructorWatcherService}setServices(t,e,n){t.forEach(t=>{this.validators.validateServices(t,e),this.setInjectedDependencies(t),t.provide&&t.provide.constructor===Function&&(t.provide=t.provide.name),t.provide&&t.useFactory?this.setUseFactory(t):t.provide&&t.useDynamic?this.setUseDynamic(t):t.provide&&t.useClass&&t.useClass.constructor===Function?this.setUseClass(t):t.provide&&t.useValue?this.setUseValue(t):(n.putItem({data:t,key:t.name}),this.servicesService.register(t))})}setInjectedDependencies(t){t.deps=t.deps||[],t.deps.length&&(t.deps=t.deps.map(t=>s.Container.get(t)))}setUseValue(t){s.Container.set(t.provide,t.useValue),t.lazy&&this.lazyFactoryService.setLazyFactory(t.provide,o.of(s.Container.get(t.provide)))}setUseClass(t){t.lazy?this.lazyFactoryService.setLazyFactory(t.provide,o.of(s.Container.get(t.useClass))):s.Container.set(t.provide,s.Container.get(t.useClass))}setUseDynamic(t){}setUseFactory(t){const e=t.useFactory;t.useFactory=(()=>e(...t.deps)),t.lazy?this.lazyFactoryService.setLazyFactory(t.provide,t.useFactory()):s.Container.set(t.provide,t.useFactory())}setControllers(t,e,n){t.forEach(t=>{this.validators.validateController(t,e),n.putItem({data:t,key:t.name}),this.controllersService.register(t)})}setEffects(t,e,n){t.forEach(t=>{this.validators.validateEffect(t,e),n.putItem({data:t,key:t.name}),this.effectsService.register(t)})}setComponents(t,e,n){t.forEach(t=>{this.validators.validateComponent(t,e),n.putItem({data:t,key:t.name}),this.componentsService.register(t)})}setPlugins(t,e,n){t.forEach(t=>{this.validators.validatePlugin(t,e),n.putItem({data:t,key:t.name}),this.pluginService.register(t)})}setBootstraps(t,e,n){t.forEach(t=>{this.validators.validateEmpty(t,e,t.metadata.type),n.putItem({data:t,key:t.name}),this.bootstraps.register(t)})}setAfterPlugins(t,e,n){t.forEach(t=>{this.validators.validatePlugin(t,e),n.putItem({data:t,key:t.name}),this.pluginService.registerAfter(t)})}setBeforePlugins(t,e,n){t.forEach(t=>{this.validators.validatePlugin(t,e),n.putItem({data:t,key:t.name}),this.pluginService.registerBefore(t)})}setImports(t,e){t.forEach(t=>{if(this.validators.validateImports(t,e),!t)throw new Error("Missing import module");s.Container.get(t)})}};r([l.Injector(u.LazyFactory),i("design:type",u.LazyFactory)],m.prototype,"lazyFactoryService",void 0),r([l.Injector(a.PluginService),i("design:type",a.PluginService)],m.prototype,"pluginService",void 0),r([l.Injector(v.ComponentsService),i("design:type",v.ComponentsService)],m.prototype,"componentsService",void 0),r([l.Injector(p.ControllersService),i("design:type",p.ControllersService)],m.prototype,"controllersService",void 0),r([l.Injector(d.EffectsService),i("design:type",d.EffectsService)],m.prototype,"effectsService",void 0),r([l.Injector(b.BootstrapsServices),i("design:type",b.BootstrapsServices)],m.prototype,"bootstraps",void 0),r([l.Injector(f.ModuleValidators),i("design:type",f.ModuleValidators)],m.prototype,"validators",void 0),r([l.Injector(y.ServicesService),i("design:type",y.ServicesService)],m.prototype,"servicesService",void 0),m=r([c.Service()],m),e.ModuleService=m},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(19);let o=class{constructor(){this.plugins=new i.BehaviorSubject([]),this.beforePlugins=new i.BehaviorSubject([]),this.afterPlugins=new i.BehaviorSubject([])}register(t){this.plugins.next([...this.plugins.getValue(),t])}registerBefore(t){this.beforePlugins.next([...this.plugins.getValue(),t])}registerAfter(t){this.afterPlugins.next([...this.plugins.getValue(),t])}getPlugins(){return this.plugins.getValue()}getAfterPlugins(){return this.afterPlugins.getValue()}getBeforePlugins(){return this.beforePlugins.getValue()}};o=r([n(12).Service()],o),e.PluginService=o},function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function c(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var u,a=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?a=u.concat(a):f=-1,a.length&&p())}function p(){if(!l){var t=c(h);l=!0;for(var e=a.length;e;){for(u=a,a=[];++f1)for(var n=1;n(t[e]=e,t),Object.create(null))}Object.defineProperty(e,"__esModule",{value:!0}),e.InternalEvents=r(["load","config"]),e.InternalLayers=r(["globalConfig","modules"])},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(41),i=n(114);e.getIdentifier=((t,e,n)=>{let o;if((o="string"==typeof t?t:t instanceof r.Token?t:t())===Object)throw new i.CannotInjectError(e,n);return o}),e.isClient=(()=>"undefined"!=typeof window&&void 0!==window.document)},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(19);let s=class{constructor(){this.appStarted=new o.Subject}};s=r([i.Service()],s),e.AfterStarterService=s},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(128)),r(n(105)),r(n(104))},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(89);let s=class{generateHashData(t,e){const n=t.services||[],r=t.imports||[],i=n=>n&&n.provide?n.provide:n?(this.validateCustomInjectable(n,t,e),{moduleName:n.metadata.moduleName,hash:n.metadata.moduleHash}):void 0;return[[...n.map(t=>i(t))],[...r.map(t=>i(t))]]}validateCustomInjectableKeys(t){}validateCustomInjectable(t,e,n){if(!t.metadata&&!t.provide)throw new Error(`\n ---- Wrong service ${JSON.stringify(t)} provided inside '${n.name}' ----\n @Module({\n services: ${JSON.stringify([...e.services.filter(t=>!t.metadata),...e.services.filter(t=>t&&t.metadata&&t.metadata.moduleName).map(t=>t.metadata.moduleName)])}\n })\n ${JSON.stringify(`${n}`,null,2)}\n\n Hint: System recieved Object but it is not with appropriate format you must provide object with following parameters:\n\n YourObject: ${JSON.stringify(t)}\n\n Option 1. [YourClass]\n\n Option 2. [{provide: 'your-value', useClass: YourClass}]\n\n Option 3. [{provide: 'your-value', deps: [YourClass], useFactory: (test: YourClass) => {}}]\n\n Option 4. [{provide: 'your-value', useDynamic: {}}]\n\n Option 5. [{provide: 'your-value', useValue: 'your-value'}]\n `)}parseModuleTemplate(t,e,n){return`\n ---- @gapi module '${t}' metadata----\n @Module({\n imports: ${JSON.stringify(e[1],null,"\t")},\n services: ${JSON.stringify(e[0],null,"\t")}\n })\n ${JSON.stringify(n,null,2)}\n `}createUniqueHash(t){return o.createUniqueHash(t)}};s=r([i.Service()],s),e.MetadataService=s},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});const o=n(27),s=n(61),c=n(86),u=n(58),a=n(19),l=n(59),f=n(55),h=n(12);let p=class{resolveDependencies(t,e,n){this.cacheService.getLayer(c.InternalLayers.modules).putItem({key:t,data:e});const r=this.cacheService.getLayer(t);return r.putItem({key:c.InternalEvents.config,data:{moduleName:n,moduleHash:t}}),r.getItemObservable(c.InternalEvents.load).pipe(u.switchMap(t=>t.data?r.items.asObservable():a.of(null)),u.filter(t=>t&&t.length),u.map(this.resolveContainerDependencies(e,n)))}resolveContainerDependencies(t,e){return n=>(n.forEach(n=>{if(n.key===c.InternalEvents.load||n.key===c.InternalEvents.config)return;const r=this.cacheService.searchForItem(n.data);if(r){if(r.provide)return r;const n=r.metadata.type.charAt(0).toUpperCase()+r.metadata.type.slice(1);return this.bootstrapLogger.log(`Start -> @Module('${e}')${this.bootstrapLogger.logHashes(`(${t.name})`)}: @${n}('${r.originalName}')${this.bootstrapLogger.logHashes(`(${r.name})`)}`+" initialized!"),o.Container.get(r)}throw new Error("not found")}),n)}};r([f.Injector(l.BootstrapLogger),i("design:type",l.BootstrapLogger)],p.prototype,"bootstrapLogger",void 0),r([f.Injector(s.CacheService),i("design:type",s.CacheService)],p.prototype,"cacheService",void 0),p=r([h.Service()],p),e.ResolverService=p},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});let i=class{validateEmpty(t,e,n){if(!t){const t=n.charAt(0).toUpperCase()+n.slice(1);throw new Error(`\n ${e.metadata.raw}\n -> @Module: ${e.metadata.moduleName}\n -> @Module hash: ${e.metadata.moduleHash}\n --\x3e Maybe you forgot to import some ${t} inside ${e.metadata.moduleName} ?\n\n Hint: run ts-lint again, looks like imported ${t} is undefined or null inside ${e.metadata.moduleName}\n `)}}genericWrongPluggableError(t,e,n){if(t.metadata.type!==n){const r=t.metadata.type.charAt(0).toUpperCase()+t.metadata.type.slice(1),i=n.charAt(0).toUpperCase()+n.slice(1);throw new Error(`\n ${e.metadata.raw}\n -> @Module: '${e.metadata.moduleName}'\n -> @Module hash: '${e.metadata.moduleHash}'\n --\x3e @${r} '${t.metadata.moduleName}' provided, where expected class decorated with '@${i}' instead,\n -> @Hint: please provide class with @Service decorator or remove ${t.metadata.moduleName} class\n `)}}validateImports(t,e){if("module"!==t.metadata.type)throw new Error(`\n ${e.metadata.raw}\n -> @Module: '${e.metadata.moduleName}'\n -> @Module hash: '${e.metadata.moduleHash}'\n --\x3e @${t.metadata.type.charAt(0).toUpperCase()+t.metadata.type.slice(1)} '${t.originalName}' provided, where expected class decorated with '@Module' instead,\n -> @Hint: please provide class with @Module decorator or remove ${t.originalName} from imports\n `)}validateServices(t,e){this.validateEmpty(t,e,"service"),t.provide||this.genericWrongPluggableError(t,e,"service")}validatePlugin(t,e){this.validateEmpty(t,e,"plugin"),t.provide||this.genericWrongPluggableError(t,e,"plugin")}validateController(t,e){this.validateEmpty(t,e,"controller"),t.provide||this.genericWrongPluggableError(t,e,"controller")}validateEffect(t,e){this.validateEmpty(t,e,"effect"),t.provide||this.genericWrongPluggableError(t,e,"effect")}validateComponent(t,e){this.validateEmpty(t,e,"component"),t.provide||this.genericWrongPluggableError(t,e,"component")}};i=r([n(12).Service()],i),e.ModuleValidators=i},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});let i=class{constructor(){this.lazyFactories=new Map}setLazyFactory(t,e){return this.lazyFactories.set(t,e),this.getLazyFactory(t)}getLazyFactory(t){return this.lazyFactories.get(t)}};i=r([n(12).Service()],i),e.LazyFactory=i},function(t,e,n){"use strict";(function(t){var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});const o=n(12),s=n(85),c=n(55),u=n(19);let a=class{constructor(){this.errorHandler=new u.Subject}init(){}exitHandler(e,n){this.errorHandler.next(n),e.cleanup&&this.logger.logExitHandler("AppStopped"),n&&console.log(n.stack),e.exit&&this.logger.logExitHandler("Unhandled error rejection"),t.exit(0)}onExitApp(e){return new u.Observable(n=>e&&e.length&&e.forEach(e=>t.on(e,t=>n.next(t))))}};r([c.Injector(s.BootstrapLogger),i("design:type",s.BootstrapLogger)],a.prototype,"logger",void 0),a=r([o.Service()],a),e.ExitHandlerService=a}).call(this,n(84))},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(134)),r(n(83)),r(n(85)),r(n(132)),r(n(131)),r(n(130)),r(n(98)),r(n(129)),r(n(102)),r(n(123)),r(n(122)),r(n(121)),r(n(120)),r(n(119)),r(n(88))},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});const i=n(12),o=n(97);let s=class{constructor(){this.config=new o.ConfigModel}setConfig(t){Object.assign(this.config,t)}};s=r([i.Service()],s),e.ConfigService=s},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});class n{constructor(){this.logging="true"===t.env.LOGGING,this.hashes=!0,this.date=!0,this.exitHandler=!0,this.fileService=!0}}e.LoggerConfig=n;e.PrivateCryptoModel=class{};class r{}e.ExperimentalFeatures=r;class i{}e.InitOptionsConfig=i;e.ConfigModel=class{constructor(){this.init=!0,this.initOptions=new i,this.experimental=new r,this.logger=new n}}}).call(this,n(84))},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(97)),r(n(96))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(19),i=n(58);e.CacheLayer=class{constructor(t){this.items=new r.BehaviorSubject([]),this.map=new Map,this.name=t.name,this.config=t.config,this.initHook(t)}get(t){return this.map.get(t)}initHook(t){this.config.maxAge&&this.onExpireAll(t)}onExpireAll(t){t.items.forEach(t=>this.onExpire(t.key))}putItemHook(t){this.config.maxAge&&this.onExpire(t.key)}getItem(t){return this.map.has(t)?this.get(t):null}putItem(t){this.map.set(t.key,t);const e=this.get(t.key),n=this.items.getValue().filter(e=>e.key!==t.key);return this.items.next([...n,e]),this.putItemHook(t),t}onExpire(t){return new r.Observable(t=>t.next()).pipe(i.timeoutWith(this.config.maxAge,r.of(1)),i.skip(1),i.take(1)).subscribe(()=>this.removeItem(t))}removeItem(t){const e=this.items.getValue().filter(e=>e.key!==t);this.map.delete(t),this.items.next(e)}getItemObservable(t){return this.items.asObservable().pipe(i.filter(()=>!!this.map.has(t)),i.map(()=>this.map.get(t)))}flushCache(){return this.items.asObservable().pipe(i.map(t=>(t.forEach(t=>this.removeItem(t.key)),!0)))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(27),i=n(61),o=n(135),s=n(59),c=n(91),u=n(90),a=n(82),l=r.Container.get(s.BootstrapLogger),f=r.Container.get(c.ResolverService),h=r.Container.get(i.CacheService),p=r.Container.get(u.MetadataService),d=r.Container.get(a.ModuleService);function v(t){return e=>{t=t||{};const n=Object.assign(e),i=e.name||e.constructor.name,s=p.generateHashData(t,n),c=p.parseModuleTemplate(i,s,`${e}`),u=p.createUniqueHash(c);Object.defineProperty(n,"originalName",{value:n.name||n.constructor.name,writable:!1}),Object.defineProperty(n,"name",{value:u,writable:!0});const a=h.createLayer({name:u});n.metadata={moduleName:n.originalName,moduleHash:u,options:null,type:"module",raw:c};const v=function(...e){return l.log(`Bootstrap -> @Module('${n.originalName}')${l.logHashes(`(${n.name})`)}: loading...`),o.GenericConstruct(t,n,a)(n,e)};if(Object.assign(v,n),f.resolveDependencies(u,n,i).subscribe(()=>l.log(`Start -> @Module('${n.originalName}')${l.logHashes(`(${n.name})`)}: loaded!`)),Object.getOwnPropertyNames(n).filter(t=>"function"==typeof n[t]).map(t=>Object.defineProperty(v,t,{configurable:!0,writable:!0,value:n[t]})),n.forRoot){const t=v.forRoot;v.forRoot=function(...e){const r=t(...e);if(!r)throw new Error(`forRoot configuration inside ${v.name} is returning undefined or null`);return r.frameworkImports&&d.setImports(r.frameworkImports,n),r.services&&d.setServices(r.services,n,a),r.providers&&d.setServices(r.providers,n,a),r.components&&d.setComponents(r.components,n,a),r.effects&&d.setEffects(r.effects,n,a),r.controllers&&d.setControllers(r.controllers,n,a),r.beforePlugins&&d.setBeforePlugins(r.beforePlugins,n,a),r.plugins&&d.setPlugins(r.plugins,n,a),r.afterPlugins&&d.setAfterPlugins(r.afterPlugins,n,a),r.ngModule?r.ngModule:r.module?r.module:r}}const b={type:v};return r.Container.set(b),v}}e.Module=v,e.NgModule=v},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class r{constructor(){this._constructors=new Map}getConstructor(t){return this._constructors.get(t)}getByClass(t){return this._constructors.get(t.name).value}createConstructor(t,e){return this._constructors.has(t)?this.getConstructor(t):(this._constructors.set(t,e),this.getConstructor(t))}triggerOnInit(t){const e=this._constructors.get(t.name);e.value&&e.value.OnInit&&e.value.OnInit.bind(e.value)()}}e.ConstructorWatcherService=r,e.constructorWatcherService=new r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(101))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(42),i=n(139),o=n(138),s=n(41),c=n(102);e.ContainerInstance=class{constructor(t){this.services=new Map,this.id=t}has(t){return!!this.findService(t)}get(t){const e=r.Container.of(void 0),n=e.findService(t),i=this.findService(t);if(n&&!0===n.global)return this.getServiceValue(t,n);if(i)return this.getServiceValue(t,i);if(n&&this!==e){const e=Object.assign({},n);e.value=void 0;const r=this.getServiceValue(t,e);return this.set(t,r),r}return this.getServiceValue(t,n)}getMany(t){return this.filterServices(t).map(e=>this.getServiceValue(t,e))}set(t,e){if(t instanceof Array)return t.forEach(t=>this.set(t)),this;if("string"==typeof t||t instanceof s.Token)return this.set({id:t,value:e});if("object"==typeof t&&t.service)return this.set({id:t.service,value:e});if(t instanceof Function)return this.set({type:t,id:t,value:e});const n=t,r=this.services.get(n);return r&&!0!==r.multiple?Object.assign(r,n):this.services.set(n,n),this}remove(...t){return t.forEach(t=>{this.filterServices(t).forEach(t=>{this.services.delete(t)})}),this}reset(){return this.services.clear(),this}filterServices(t){return Array.from(this.services.values()).filter(e=>e.id?e.id===t:!!(e.type&&t instanceof Function)&&(e.type===t||t.prototype instanceof e.type))}findService(t){return Array.from(this.services.values()).find(e=>e.id?t instanceof Object&&e.id instanceof s.Token&&t.service instanceof s.Token?e.id===t.service:e.id===t:!!(e.type&&t instanceof Function)&&e.type===t)}getServiceValue(t,e){if(e&&void 0!==e.value)return e.value;if(!(e&&e.type||e&&e.factory)&&("string"==typeof t||t instanceof s.Token))throw new o.ServiceNotFoundError(t);let n=void 0;if(e&&e.type?n=e.type:e&&e.id instanceof Function?n=e.id:t instanceof Function&&(n=t),!e){if(!n)throw new i.MissingProvidedServiceTypeError(t);e={type:n},this.services.set(e,e)}const r=n&&Reflect&&Reflect.getMetadata?Reflect.getMetadata("design:paramtypes",n):void 0;let u,a=r?this.initializeParams(n,r):[];if(e.factory)a=a.filter(t=>void 0!==t),u=e.factory instanceof Array?this.get(e.factory[0])[e.factory[1]](...a):e.factory(...a,this);else{if(!n)throw new i.MissingProvidedServiceTypeError(t);a.unshift(null),a.push(this),n.prototype.OnBefore&&n.prototype.OnBefore.bind(n)(),u=new(n.bind.apply(n,a)),c.constructorWatcherService.createConstructor(n.name,{type:n,value:u}),u.OnInit&&u.OnInit.bind(u)()}return e&&!e.transient&&u&&(e.value=u),n&&this.applyPropertyHandlers(n,u),u}initializeParams(t,e){return e.map((e,n)=>{const i=Array.from(r.Container.handlers.values()).find(e=>e.object===t&&e.index===n);return i?i.value(this):e&&e.name&&!this.isTypePrimitive(e.name)?this.get(e):void 0})}isTypePrimitive(t){return-1!==["string","boolean","number","object"].indexOf(t.toLowerCase())}applyPropertyHandlers(t,e){r.Container.handlers.forEach(n=>{"number"!=typeof n.index&&(n.object.constructor===t||t.prototype instanceof n.object.constructor)&&(e[n.propertyName]=n.value(this))})}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class r{hash(t,e){const n=Object.assign({msgFormat:"string",outFormat:"hex"},e);switch(t=f(t),n.msgFormat){default:case"string":t=f(t);break;case"hex-bytes":t=function(t){const e=t.replace(" ","");return""==e?"":e.match(/.{2}/g).map(t=>String.fromCharCode(parseInt(t,16))).join("")}(t)}const r=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],i=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],o=(t+=String.fromCharCode(128)).length/4+2,s=Math.ceil(o/16),c=new Array(s);for(let e=0;e>>0;c[s-1][14]=Math.floor(u),c[s-1][15]=a;for(let t=0;t>>0;let n=i[0],o=i[1],s=i[2],u=i[3],a=i[4],l=i[5],f=i[6],h=i[7];for(let t=0;t<64;t++){const i=h+this.Σ1(a)+this.Ch(a,l,f)+r[t]+e[t],c=this.Σ0(n)+this.Maj(n,o,s);h=f,f=l,l=a,a=u+i>>>0,u=s,s=o,o=n,n=i+c>>>0}i[0]=i[0]+n>>>0,i[1]=i[1]+o>>>0,i[2]=i[2]+s>>>0,i[3]=i[3]+u>>>0,i[4]=i[4]+a>>>0,i[5]=i[5]+l>>>0,i[6]=i[6]+f>>>0,i[7]=i[7]+h>>>0}for(let t=0;tt+String.fromCharCode(e),"")}catch(e){return unescape(encodeURIComponent(t))}}}ROTR(t,e){return e>>>t|e<<32-t}"Σ0"(t){return this.ROTR(2,t)^this.ROTR(13,t)^this.ROTR(22,t)}"Σ1"(t){return this.ROTR(6,t)^this.ROTR(11,t)^this.ROTR(25,t)}"σ0"(t){return this.ROTR(7,t)^this.ROTR(18,t)^t>>>3}"σ1"(t){return this.ROTR(17,t)^this.ROTR(19,t)^t>>>10}Ch(t,e,n){return t&e^~t&n}Maj(t,e,n){return t&e^t&n^e&n}}e.Sha256=r,e.sha256=new r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(104);e.createUniqueHash=function(t){return r.sha256.hash(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(42),i=n(41),o=n(87);e.InjectMany=function(t){return function(e,n,s){o.isClient()&&t instanceof i.Token?Object.defineProperty(e,n,{get:()=>r.Container.getMany(o.getIdentifier(t,e,n))}):(t||(t=(()=>Reflect.getMetadata("design:type",e,n))),r.Container.registerHandler({object:e,propertyName:n,index:s,value:r=>r.getMany(o.getIdentifier(t,e,n))}))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(56);e.Component=function(t){return r.ReflectDecorator(t,{type:"component"})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(107))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(56);e.Plugin=function(t){return r.ReflectDecorator(t,{type:"plugin"})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(56);e.Effect=function(t){return r.ReflectDecorator(t,{type:"effect"})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(110))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(56);e.Controller=function(t){return r.ReflectDecorator(t,{type:"controller"})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(112))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class r extends Error{constructor(t,e){super(`Cannot inject value into '${t.constructor.name}.${e}'. `+"Please make sure you setup reflect-metadata properly and you don't use interfaces without service tokens as injection value."),this.name="ServiceNotFoundError",Object.setPrototypeOf(this,r.prototype)}}e.CannotInjectError=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(42),i=n(87);e.Inject=function(t){return function(e,n,o){i.isClient()&&t&&"function"==typeof t?Object.defineProperty(e,n,{get:()=>r.Container.get(t)}):(t||(t=(()=>Reflect.getMetadata("design:type",e,n))),r.Container.registerHandler({object:e,propertyName:n,index:o,value:r=>r.get(i.getIdentifier(t,e,n))}))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(27),i=n(82);e.InjectSoft=function(t){return r.Container.get(i.ModuleService).watcherService.getByClass(t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(116))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(55))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(77))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(78))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(79))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(81))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(80))},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});const r=n(94),i=n(27);e.exitHandlerInit=(()=>{const e=i.Container.get(r.ExitHandlerService);e.init(),t.on("exit",e.exitHandler.bind(e,{cleanup:!0})),t.on("SIGINT",e.exitHandler.bind(e,{exit:!0})),t.on("SIGUSR1",e.exitHandler.bind(e,{exit:!0})),t.on("SIGUSR2",e.exitHandler.bind(e,{exit:!0})),t.on("uncaughtException",e.exitHandler.bind(e,{exit:!0}))})}).call(this,n(84))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(42);e.logExtendedInjectables=((t,e)=>{r.Container.has(t)&&e&&console.log(`Warn: Injection Token '${t.name||t}' is extended after it has being declared! ${JSON.stringify(r.Container.get(t))}`)})},function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{u(r.next(t))}catch(t){o(t)}}function c(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):function(t){return t instanceof n?t:new n(function(e){e(t)})}(t.value).then(s,c)}u((r=r.apply(t,e||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0});const s=n(19),c=n(27),u=n(59),a=n(61),l=n(86),f=n(93),h=n(96),p=n(83),d=n(58),v=n(80),b=n(81),y=n(79),m=n(78),g=n(77),w=n(88),_=n(125);let x=class{constructor(t,e,n,r,i,o,s,c,u,a,f){this.logger=t,this.cacheService=e,this.lazyFactoriesService=n,this.configService=r,this.controllersService=i,this.effectsService=o,this.pluginService=s,this.componentsService=c,this.bootstrapsService=u,this.servicesService=a,this.afterStarterService=f,this.globalConfig=this.cacheService.createLayer({name:l.InternalLayers.globalConfig})}start(t,e){this.configService.setConfig(e),this.globalConfig.putItem({key:l.InternalEvents.config,data:e}),c.Container.get(t);const n=Array.from(this.lazyFactoriesService.lazyFactories.keys());return s.of(n).pipe(d.map(t=>this.prepareAsyncChainables(t)),d.switchMap(t=>s.combineLatest(t).pipe(d.take(1),d.map(t=>this.attachLazyLoadedChainables(n,t)),d.map(()=>this.validateSystem()),d.switchMap(()=>s.combineLatest(this.asyncChainableControllers())),d.switchMap(()=>s.combineLatest(this.asyncChainablePluginsBeforeRegister())),d.switchMap(()=>s.combineLatest(this.asyncChainablePluginsRegister())),d.switchMap(()=>s.combineLatest(this.asyncChainablePluginsAfterRegister())),d.switchMap(()=>s.combineLatest(this.asyncChainableServices())),d.switchMap(()=>s.combineLatest(this.asyncChainableEffects())),d.switchMap(()=>s.combineLatest(this.asyncChainableComponents())),d.map(()=>this.loadApplication()),d.switchMap(()=>s.combineLatest(this.asyncChainableBootstraps())),d.map(()=>this.final()))))}final(){return this.afterStarterService.appStarted.next(!0),this.configService.config.init||this.logger.log("Bootstrap -> press start!"),c.Container}asyncChainableComponents(){return[s.of(!0),...this.componentsService.getComponents().filter(t=>this.genericFilter(t,"components")).map(t=>o(this,void 0,void 0,function*(){return yield c.Container.get(t)}))]}asyncChainableBootstraps(){return[s.of(!0),...this.bootstrapsService.getBootstraps().map(t=>o(this,void 0,void 0,function*(){return yield c.Container.get(t)}))]}asyncChainableEffects(){return[s.of(!0),...this.effectsService.getEffects().filter(t=>this.genericFilter(t,"effects")).map(t=>o(this,void 0,void 0,function*(){return yield c.Container.get(t)}))]}asyncChainableServices(){return[s.of(!0),...this.servicesService.getServices().filter(t=>this.genericFilter(t,"services")).map(t=>o(this,void 0,void 0,function*(){return yield c.Container.get(t)}))]}asyncChainableControllers(){return[s.of(!0),...this.controllersService.getControllers().filter(t=>this.genericFilter(t,"controllers")).map(t=>o(this,void 0,void 0,function*(){return yield c.Container.get(t)}))]}asyncChainablePluginsRegister(){return[s.of(!0),...this.pluginService.getPlugins().filter(t=>this.genericFilter(t,"plugins")).map(t=>o(this,void 0,void 0,function*(){return yield this.registerPlugin(t)}))]}asyncChainablePluginsAfterRegister(){return[s.of(!0),...this.pluginService.getAfterPlugins().filter(t=>this.genericFilter(t,"pluginsAfter")).map(t=>o(this,void 0,void 0,function*(){return yield this.registerPlugin(t)}))]}asyncChainablePluginsBeforeRegister(){return[s.of(!0),...this.pluginService.getBeforePlugins().filter(t=>this.genericFilter(t,"pluginsBefore")).map(t=>o(this,void 0,void 0,function*(){return yield this.registerPlugin(t)}))]}genericFilter(t,e){return this.configService.config.initOptions[e]||t.metadata.options&&t.metadata.options.init||this.configService.config.init}registerPlugin(t){return o(this,void 0,void 0,function*(){const e=c.Container.get(t);return yield e.register(),e})}prepareAsyncChainables(t){const e=[s.of(!0)],n={},r=t=>t.name||t;return t.map(t=>{const i=Date.now();n[r(t)]={started:i,end:null},this.logger.log(`Bootstrap -> @Service('${r(t)}'): loading...`);const o=s.from(this.lazyFactoriesService.getLazyFactory(t)).pipe(d.shareReplay(1));e.push(o),o.subscribe(()=>{this.logger.log(`Bootstrap -> @Service('${r(t)}'): loading finished after ${Date.now()-n[r(t)].started}ms !`),delete n[r(t)]})}),e}validateSystem(){this.configService.config.strict&&this.cacheService.searchForDuplicateDependenciesInsideApp()}attachLazyLoadedChainables(t,e){e.splice(0,1);let n=0;return t.map(t=>{_.logExtendedInjectables(t,this.configService.config.experimental.logExtendedInjectables),c.Container.set(t,e[n++])}),!0}loadApplication(){return Array.from(this.cacheService.getLayer(l.InternalLayers.modules).map.keys()).forEach(t=>this.cacheService.getLayer(t).putItem({key:l.InternalEvents.load,data:this.configService.config.init})),!0}};x=r([n(12).Service(),i("design:paramtypes",[u.BootstrapLogger,a.CacheService,f.LazyFactory,h.ConfigService,b.ControllersService,v.EffectsService,p.PluginService,y.ComponentsService,m.BootstrapsServices,g.ServicesService,w.AfterStarterService])],x),e.BootstrapService=x},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=new WeakMap;function i(t,e,n,r){return l(t,e,n,r)}function o(t,e,n,r){if(0===t.length)throw new TypeError;return"function"==typeof e?function(t,e){return t.reverse().forEach(t=>{const n=t(e);n&&(e=n)}),e}(t,e):void 0!==n?function(t,e,n,r){return t.reverse().forEach(t=>{r=t(e,n,r)||r}),r}(t,e,n,r):void 0}function s(t,e){return function(n,r){l(t,e,n,r)}}function c(t,e,n){return function t(e,n,r){return f(e,n,r)?f(e,n,r):Object.getPrototypeOf(n)?t(e,Object.getPrototypeOf(n),r):void 0}(t,e,n)}function u(t,e,n){return f(t,e,n)}function a(t,e,n){return!!f(t,e,n)}function l(t,e,n,i){if(i&&!["string","symbol"].includes(typeof i))throw new TypeError;(h(n,i)||function(t,e){const n=r.get(t)||new Map;r.set(t,n);const i=n.get(e)||new Map;return n.set(e,i),i}(n,i)).set(t,e)}function f(t,e,n){if(void 0===e)throw new TypeError;const r=h(e,n);return r&&r.get(t)}function h(t,e){return r.get(t)&&r.get(t).get(e)}e.defineMetadata=i,e.decorate=o,e.metadata=s,e.getMetadata=c,e.getOwnMetadata=u,e.hasOwnMetadata=a,e.Reflection={decorate:o,defineMetadata:i,getMetadata:c,getOwnMetadata:u,hasOwnMetadata:a,metadata:s},Object.assign(Reflect,e.Reflection)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(127);const r=n(27),i=n(126);n(124).exitHandlerInit();const o=r.Container.get(i.BootstrapService);e.Bootstrap=((t,e)=>o.start(t,e)),e.BootstrapPromisify=((t,e)=>o.start(t,e).toPromise()),e.BootstrapFramework=((t,e,n)=>(o.configService.setConfig(n),e.map(t=>r.Container.get(t)),o.start(t,n))),e.setup=((t,r=[],i)=>{const o=n(100).Module;return e.BootstrapFramework(o({imports:t.imports||[],providers:t.providers||[],services:t.services||[],bootstrap:t.bootstrap||[],components:t.components||[],controllers:t.controllers||[],effects:t.effects||[],plugins:t.plugins||[],afterPlugins:t.afterPlugins||[],beforePlugins:t.beforePlugins||[]})(function(){}),r,i)}),e.createTestBed=e.setup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(90))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(91))},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(82)),r(n(92))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(94))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.CacheServiceConfigInterface=class{constructor(){this.deleteOnExpire="aggressive",this.cacheFlushInterval=36e5,this.maxAge=9e5,this.localStorage=!1}}},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(61)),r(n(99)),r(n(133))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(27),i=n(95),o=r.Container.get(i.ModuleService),s=r.Container.get(i.BootstrapLogger);e.GenericConstruct=function(t,e,n){return function(i,c){return t?(t.imports&&o.setImports(t.imports,e),t.services&&o.setServices(t.services,e,n),t.providers&&o.setServices(t.providers,e,n),t.controllers&&o.setControllers(t.controllers,e,n),t.effects&&o.setEffects(t.effects,e,n),t.components&&o.setComponents(t.components,e,n),t.beforePlugins&&o.setBeforePlugins(t.beforePlugins,e,n),t.plugins&&o.setPlugins(t.plugins,e,n),t.afterPlugins&&o.setAfterPlugins(t.afterPlugins,e,n),t.bootstrap&&o.setBootstraps(t.bootstrap,e,n),s.log(`Bootstrap -> @Module('${i.originalName}')${s.logHashes(`(${i.name})`)}: finished!`),r.Container.get(i)):new i}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n(100))},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(136)),r(n(118)),r(n(117)),r(n(115)),r(n(113)),r(n(111)),r(n(109)),r(n(12)),r(n(108)),r(n(106));var i=n(12);e.Injectable=i.Service},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(41);class i extends Error{constructor(t){super(),this.name="ServiceNotFoundError","string"==typeof t?this.message=`Service '${t}' was not found, looks like it was not registered in the container. `+`Register it by calling Container.set('${JSON.stringify(t)}', ...) before using service.`:t instanceof r.Token&&t.name?this.message=`Service '${t.name}' was not found, looks like it was not registered in the container. `+"Register it by calling Container.set before using service.":t instanceof r.Token&&(this.message="Service with a given token was not found, looks like it was not registered in the container. Register it by calling Container.set before using service."),Object.setPrototypeOf(this,i.prototype)}}e.ServiceNotFoundError=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class r extends Error{constructor(t){super(`Cannot determine a class of the requesting service '${JSON.stringify(t)}'`),this.name="ServiceNotFoundError",Object.setPrototypeOf(this,r.prototype)}}e.MissingProvidedServiceTypeError=r},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(27)),r(n(137)),r(n(89)),r(n(95))}]); +//# sourceMappingURL=main.bundle.js.map \ No newline at end of file diff --git a/dist/main.bundle.js.map b/dist/main.bundle.js.map new file mode 100644 index 0000000..d39a5c7 --- /dev/null +++ b/dist/main.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.bundle.js","sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/tslib/tslib.es6.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 140);\n","/*! *****************************************************************************\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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\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 __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\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"],"mappings":"AACA;;;;;;;;;;;;;;;ACeA","sourceRoot":""} \ No newline at end of file diff --git a/dist/services/external-importer/external-importer.js b/dist/services/external-importer/external-importer.js index 004395c..1632b18 100644 --- a/dist/services/external-importer/external-importer.js +++ b/dist/services/external-importer/external-importer.js @@ -13,11 +13,12 @@ const Service_1 = require("../../decorators/service/Service"); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); const request_1 = require("../request"); -const file_1 = require("../file"); +// import { FileService } from '../file'; const bootstrap_logger_1 = require("../bootstrap-logger/bootstrap-logger"); const injector_decorator_1 = require("../../decorators/injector/injector.decorator"); const compression_service_1 = require("../compression/compression.service"); const npm_service_1 = require("../npm-service/npm.service"); +// import { PackagesConfig } from '../../bin/root'; const providers_1 = require("./providers"); const SystemJS = require("systemjs"); let ExternalImporter = class ExternalImporter { @@ -362,10 +363,6 @@ __decorate([ injector_decorator_1.Injector(request_1.RequestService), __metadata("design:type", request_1.RequestService) ], ExternalImporter.prototype, "requestService", void 0); -__decorate([ - injector_decorator_1.Injector(file_1.FileService), - __metadata("design:type", file_1.FileService) -], ExternalImporter.prototype, "fileService", void 0); __decorate([ injector_decorator_1.Injector(bootstrap_logger_1.BootstrapLogger), __metadata("design:type", bootstrap_logger_1.BootstrapLogger) diff --git a/dist/services/external-importer/external-importer.spec-delayed.d.ts b/dist/services/external-importer/external-importer.spec-delayed.d.ts new file mode 100644 index 0000000..d73a958 --- /dev/null +++ b/dist/services/external-importer/external-importer.spec-delayed.d.ts @@ -0,0 +1 @@ +import 'jest'; diff --git a/dist/services/external-importer/external-importer.spec-delayed.js b/dist/services/external-importer/external-importer.spec-delayed.js new file mode 100644 index 0000000..14e76bc --- /dev/null +++ b/dist/services/external-importer/external-importer.spec-delayed.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Container_1 = require("../../container/Container"); +const external_importer_1 = require("./external-importer"); +const operators_1 = require("rxjs/operators"); +require("jest"); +const externalImporterService = Container_1.Container.get(external_importer_1.ExternalImporter); +describe('Service: ExternalImporter', () => { + it('Should import external IPFS module and add it to node_modules folder from where should be depend', (done) => { + const module = externalImporterService.importModule({ + fileName: 'createUniqueHash', + namespace: '@helpers', + extension: 'js', + typings: '', + outputFolder: '/node_modules/', + link: 'https://ipfs.io/ipfs/QmdQtC3drfQ6M6GFpDdrhYRKoky8BycKzWbTkc4NEzGLug' + }, 'createUniqueHash'); + module.pipe(operators_1.tap((res) => { + expect(res.testKey.constructor).toBe(Function); + expect(res.testKey()).toBe('TestKey'); + }), operators_1.tap(() => done())).subscribe(); + }); + // it('Should import external IPFS module and load it from browser cache', (done) => { + // spyOn(externalImporterService, 'isWeb').and.returnValue(true); + // const module: Observable = from(externalImporterService.importModule({ + // link: 'https://ipfs.infura.io/ipfs/QmdQtC3drfQ6M6GFpDdrhYRKoky8BycKzWbTkc4NEzGLug' + // }, 'createUniqueHash')); + // module.pipe( + // tap((res: { testKey: () => string; }) => { + // expect(res.testKey.constructor).toBe(Function); + // expect(res.testKey()).toBe('TestKey'); + // }), + // tap(() => done()) + // ).subscribe(); + // }); +}); diff --git a/dist/services/file/file.service.d.ts b/dist/services/file/file.service.d.ts index b1d55d3..e69de29 100644 --- a/dist/services/file/file.service.d.ts +++ b/dist/services/file/file.service.d.ts @@ -1,13 +0,0 @@ -import { Observable } from 'rxjs'; -export declare class FileService { - private logger; - writeFile(folder: string, fileName: any, moduleName: any, file: any): Observable; - writeFileAsync(folder: string, fileName: any, moduleName: any, file: any): Observable; - writeFileSync(folder: any, file: any): any; - readFile(file: string): any; - isPresent(path: string): boolean; - writeFileAsyncP(folder: any, fileName: any, content: any): Observable; - mkdirp(folder: any): Observable; - fileWalker(dir: string, exclude?: string): Observable; - private filewalker; -} diff --git a/dist/services/file/file.service.js b/dist/services/file/file.service.js index a1b9e73..1ca8816 100644 --- a/dist/services/file/file.service.js +++ b/dist/services/file/file.service.js @@ -1,117 +1,135 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - 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; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Service_1 = require("../../decorators/service/Service"); -const fs_1 = require("fs"); -const rxjs_1 = require("rxjs"); -const operators_1 = require("rxjs/operators"); -const bootstrap_logger_1 = require("../bootstrap-logger"); -const injector_decorator_1 = require("../../decorators/injector/injector.decorator"); -const path_1 = require("path"); -const dist_1 = require("./dist"); -let FileService = class FileService { - writeFile(folder, fileName, moduleName, file) { - return this.mkdirp(folder).pipe(operators_1.tap(() => { - this.logger.logFileService(`Bootstrap: @Service('${moduleName}'): Saved inside ${folder}`); - }), operators_1.switchMap(() => this.writeFileAsyncP(folder, fileName, file))); - } - writeFileAsync(folder, fileName, moduleName, file) { - return this.mkdirp(folder).pipe(operators_1.switchMap(() => this.writeFileAsyncP(folder, fileName, file)), operators_1.map(() => { - this.logger.logFileService(`Bootstrap: external @Module('${moduleName}') namespace: Saved inside ${folder}`); - return `${folder}/${fileName}`; - })); - } - writeFileSync(folder, file) { - return fs_1.writeFileSync.bind(null)(folder, JSON.stringify(file, null, 2) + '\n', { encoding: 'utf-8' }); - } - readFile(file) { - return JSON.parse(fs_1.readFileSync.bind(null)(file, { encoding: 'utf-8' })); - } - isPresent(path) { - return fs_1.existsSync(path); - } - writeFileAsyncP(folder, fileName, content) { - return new rxjs_1.Observable(o => fs_1.writeFile(`${folder}/${fileName}`, content, () => o.next(true))); - } - mkdirp(folder) { - return new rxjs_1.Observable(observer => { - dist_1.mkdirp(folder, err => { - if (err) { - console.error(err); - observer.error(false); - } - else { - observer.next(true); - } - observer.complete(); - }); - }); - } - fileWalker(dir, exclude = 'node_modules') { - return new rxjs_1.Observable(observer => { - this.filewalker(dir, (err, result) => { - if (err) { - observer.error(err); - } - else { - observer.next(result); - } - observer.complete(); - }, exclude); - }); - } - filewalker(dir, done, exclude = 'node_modules') { - let results = []; - const fileWalker = this.filewalker.bind(this); - fs_1.readdir(dir, (err, list) => { - if (err) { - return done(err); - } - let pending = list.length; - if (!pending) { - return done(null, results); - } - list.forEach(file => { - file = path_1.resolve(dir, file); - fs_1.stat(file, (err, stat) => { - if (stat && stat.isDirectory()) { - results.push(file); - if (!file.includes(exclude)) { - fileWalker(file, (err, res) => { - results = results.concat(res); - if (!--pending) { - done(null, results); - } - }, exclude); - } - else if (!--pending) { - done(null, results); - } - } - else { - results.push(file); - if (!--pending) { - done(null, results); - } - } - }); - }); - }); - } -}; -__decorate([ - injector_decorator_1.Injector(bootstrap_logger_1.BootstrapLogger), - __metadata("design:type", bootstrap_logger_1.BootstrapLogger) -], FileService.prototype, "logger", void 0); -FileService = __decorate([ - Service_1.Service() -], FileService); -exports.FileService = FileService; +// import { Service } from '../../decorators/service/Service'; +// import { +// writeFileSync, +// existsSync, +// readdir, +// stat, +// writeFile, +// readFileSync, +// readFile +// } from 'fs'; +// import { Observable } from 'rxjs'; +// import { map, switchMap, tap } from 'rxjs/operators'; +// import { BootstrapLogger } from '../bootstrap-logger'; +// import { Injector } from '../../decorators/injector/injector.decorator'; +// import { resolve } from 'path'; +// import { mkdirp } from './dist'; +// @Service() +// export class FileService { +// @Injector(BootstrapLogger) private logger: BootstrapLogger; +// writeFile(folder: string, fileName, moduleName, file) { +// return this.mkdirp(folder).pipe( +// tap(() => { +// this.logger.logFileService( +// `Bootstrap: @Service('${moduleName}'): Saved inside ${folder}` +// ); +// }), +// switchMap(() => this.writeFileAsyncP(folder, fileName, file)) +// ); +// } +// writeFileAsync(folder: string, fileName, moduleName, file) { +// return this.mkdirp(folder).pipe( +// switchMap(() => this.writeFileAsyncP(folder, fileName, file)), +// map(() => { +// this.logger.logFileService( +// `Bootstrap: external @Module('${moduleName}') namespace: Saved inside ${folder}` +// ); +// return `${folder}/${fileName}`; +// }) +// ); +// } +// writeFileSync(folder, file) { +// return writeFileSync.bind(null)( +// folder, +// JSON.stringify(file, null, 2) + '\n', +// { encoding: 'utf-8' } +// ); +// } +// readFile(file: string) { +// return JSON.parse(readFileSync.bind(null)(file, { encoding: 'utf-8' })); +// } +// isPresent(path: string) { +// return existsSync(path); +// } +// writeFileAsyncP(folder, fileName, content) { +// return new Observable(o => +// writeFile(`${folder}/${fileName}`, content, () => o.next(true)) +// ); +// } +// mkdirp(folder): Observable { +// return new Observable(observer => { +// mkdirp(folder, err => { +// if (err) { +// console.error(err); +// observer.error(false); +// } else { +// observer.next(true); +// } +// observer.complete(); +// }); +// }); +// } +// public fileWalker( +// dir: string, +// exclude: string = 'node_modules' +// ): Observable { +// return new Observable(observer => { +// this.filewalker( +// dir, +// (err, result) => { +// if (err) { +// observer.error(err); +// } else { +// observer.next(result); +// } +// observer.complete(); +// }, +// exclude +// ); +// }); +// } +// private filewalker( +// dir: string, +// done: (err: NodeJS.ErrnoException, data?: any) => void, +// exclude = 'node_modules' +// ) { +// let results = []; +// const fileWalker = this.filewalker.bind(this); +// readdir(dir, (err, list) => { +// if (err) { +// return done(err); +// } +// let pending = list.length; +// if (!pending) { +// return done(null, results); +// } +// list.forEach(file => { +// file = resolve(dir, file); +// stat(file, (err, stat) => { +// if (stat && stat.isDirectory()) { +// results.push(file); +// if (!file.includes(exclude)) { +// fileWalker( +// file, +// (err, res) => { +// results = results.concat(res); +// if (!--pending) { +// done(null, results); +// } +// }, +// exclude +// ); +// } else if (!--pending) { +// done(null, results); +// } +// } else { +// results.push(file); +// if (!--pending) { +// done(null, results); +// } +// } +// }); +// }); +// }); +// } +// } diff --git a/dist/services/file/index.d.ts b/dist/services/file/index.d.ts index 3c44127..e69de29 100644 --- a/dist/services/file/index.d.ts +++ b/dist/services/file/index.d.ts @@ -1 +0,0 @@ -export * from './file.service'; diff --git a/dist/services/file/index.js b/dist/services/file/index.js index da41249..8b02614 100644 --- a/dist/services/file/index.js +++ b/dist/services/file/index.js @@ -1,6 +1 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("./file.service")); +// export * from './file.service'; diff --git a/dist/services/index.d.ts b/dist/services/index.d.ts index 053bf0e..d053ffd 100644 --- a/dist/services/index.d.ts +++ b/dist/services/index.d.ts @@ -6,13 +6,10 @@ export * from './module/index'; export * from './resolver/index'; export * from './config/index'; export * from './metadata/index'; -export * from './compression/index'; -export * from './file/index'; export * from './constructor-watcher/index'; export * from './effect/index'; export * from './controllers/index'; export * from './components/index'; export * from './bootstraps/index'; export * from './services/index'; -export * from './plugin-manager/plugin-manager'; export * from './after-starter/after-starter.service'; diff --git a/dist/services/index.js b/dist/services/index.js index 59f469e..ef284ed 100644 --- a/dist/services/index.js +++ b/dist/services/index.js @@ -12,13 +12,13 @@ __export(require("./module/index")); __export(require("./resolver/index")); __export(require("./config/index")); __export(require("./metadata/index")); -__export(require("./compression/index")); -__export(require("./file/index")); +// export * from './compression/index'; +// export * from './file/index'; __export(require("./constructor-watcher/index")); __export(require("./effect/index")); __export(require("./controllers/index")); __export(require("./components/index")); __export(require("./bootstraps/index")); __export(require("./services/index")); -__export(require("./plugin-manager/plugin-manager")); +// export * from './plugin-manager/plugin-manager'; __export(require("./after-starter/after-starter.service")); diff --git a/package.json b/package.json index 6e91793..cedc841 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ "scripts": { "postpublish": "git push -f ssh://git@gitlab.youvolio.com:522/rxdi/core.git && git push --tags && git push ssh://git@gitlab.youvolio.com:522/rxdi/core.git --tags", "start": "gapi start --local --path=./src/testing-app/main.ts", + "start2": "webpack-dev-server --port 9000 --inline --progress --profile --colors --watch --content-base src/ --mode development", + "build2": "webpack --config webpack.config.js --mode production", "build": "gapi module build-node", "lint": "tslint -c tslint.json 'src/**/*.{ts,tsx}'", "pretest": "npm run lint", @@ -34,6 +36,18 @@ "devDependencies": { "@rxdi/dts-merge": "^0.7.23", "@types/jest": "^23.3.2", + "webpack": "4.12.0", + "webpack-cli": "3.0.8", + "webpack-dev-server": "3.1.4", + "@babel/cli": "^7.2.3", + "@babel/core": "^7.4.0", + "@babel/plugin-proposal-class-properties": "^7.4.0", + "@babel/plugin-proposal-object-rest-spread": "^7.4.0", + "@babel/preset-env": "^7.4.1", + "@babel/preset-typescript": "^7.3.3", + "awesome-typescript-loader": "5.2.0", + "source-map-loader": "0.2.3", + "tslint-loader": "3.6.0", "@types/node": "^10.11.0", "@types/systemjs": "^0.20.6", "jest": "^23.4.2", diff --git a/src/bin/root.ts b/src/bin/root.ts index 1c4213a..dab200e 100644 --- a/src/bin/root.ts +++ b/src/bin/root.ts @@ -1,159 +1,159 @@ -#!/usr/bin/env node -import { Container } from '../container/Container'; -import { ExternalImporter } from '../services/external-importer/external-importer'; -import { FileService } from '../services/file/file.service'; -import { ExternalImporterIpfsConfig } from '../services/external-importer/external-importer-config'; -import { ConfigService } from '../services/config/config.service'; -import { Observable, combineLatest, pipe } from 'rxjs'; -import { tap, switchMap } from 'rxjs/operators'; -import { writeFileSync } from 'fs'; -import { mkdirp } from '../services/file/dist'; - -const includes = (i: string) => process.argv.toString().includes(i); - -const externalImporter = Container.get(ExternalImporter); -const fileService = Container.get(FileService); -let p = null; - -if (includes('--local-node')) { - p = externalImporter.getProvider('local'); -} - -if (includes('--cloudflare')) { - p = externalImporter.getProvider('cloudflare'); -} - -if (includes('--infura')) { - p = externalImporter.getProvider('infura'); -} - -if (includes('--ipfs')) { - p = externalImporter.getProvider('main-ipfs-node'); -} - -externalImporter.defaultProvider = p || externalImporter.defaultProvider; -let provider = externalImporter.defaultProvider; -let hash = ''; -let modulesToDownload = []; -let customConfigFile; -let packageJsonConfigFile; -let rxdiConfigFile; -let json: PackagesConfig[]; -// let interval; - -export interface PackagesConfig { - dependencies: string[]; - provider: string; -} - -export const loadDeps = (jsonIpfs: PackagesConfig) => { - if (!jsonIpfs) { - throw new Error('Missing ipfs config!'); - } - if (!jsonIpfs.provider) { - throw new Error('Missing ipfsProvider package.json'); - } - jsonIpfs.dependencies = jsonIpfs.dependencies || []; - - return jsonIpfs.dependencies.map(hash => { - return { hash, provider: jsonIpfs.provider }; - }).filter(res => !!res); -}; - -export const DownloadDependencies = (dependencies: ExternalImporterIpfsConfig[]): Observable => { - return Container.get(ExternalImporter).downloadIpfsModules(dependencies); -}; - -if (process.argv.toString().includes('-v') || process.argv.toString().includes('--verbose')) { - Container.get(ConfigService).setConfig({ logger: { logging: true, hashes: true, date: true, exitHandler: true, fileService: true } }); -} -console.log(''); -if (process.argv[2] === 'install' || process.argv[2] === 'i') { - - process.argv.forEach((val, index) => { - if (index === 3) { - if (val.length === 46) { - hash = val; - } else if (val.includes('--hash=')) { - hash = val.split('--hash=')[1]; - } else if (val.includes('-h=')) { - hash = val.split('-h=')[1]; - } - } - if (index === 4) { - if (val.includes('--provider=')) { - provider = val.split('--provider=')[1]; - } else if (val.includes('http')) { - provider = val; - } else if (val.includes('-p=')) { - provider = val.split('-p=')[1]; - } - } - }); - - customConfigFile = `${process.cwd()}/${process.argv[3]}`; - packageJsonConfigFile = `${process.cwd()}/package.json`; - rxdiConfigFile = `${process.cwd()}/reactive.json`; - - if (!hash && fileService.isPresent(customConfigFile)) { - json = require(customConfigFile).ipfs; - externalImporter.defaultJsonFolder = customConfigFile; - } - - if (fileService.isPresent(packageJsonConfigFile)) { - json = require(packageJsonConfigFile).ipfs; - externalImporter.defaultJsonFolder = packageJsonConfigFile; - } - - if (fileService.isPresent(rxdiConfigFile)) { - json = require(rxdiConfigFile).ipfs; - externalImporter.defaultJsonFolder = rxdiConfigFile; - } - console.log(`Loaded config ${externalImporter.defaultJsonFolder}`); - console.log('Reactive ipfs modules installing...'); - if (hash) { - modulesToDownload = [DownloadDependencies(loadDeps({ provider: p || provider, dependencies: [hash] }))]; - } - if (!hash) { - json = json || []; - modulesToDownload = [...modulesToDownload, ...json.map(json => { - json.provider = p || json.provider; - return DownloadDependencies(loadDeps(json)); - })]; - } - combineLatest(modulesToDownload) - .pipe( - tap(() => hash ? externalImporter.addPackageToJson(hash) : null), - tap(() => externalImporter.filterUniquePackages()) - ).subscribe( - (res) => { - console.log('Default ipfs provider: ', p || externalImporter.defaultProvider); - console.log(`Inside package.json default provider is ${externalImporter.defaultProvider}`); - console.log(JSON.stringify(res, null, 2), '\nReactive ipfs modules installed!'); - // clearInterval(interval); - }, - (e) => { - throw new Error(e); - } - ); -} - - -if (process.argv[2] === '--ng-compat') { - const fileService = Container.get(FileService); - const AngularCoreFolder = './node_modules/@angular/core/'; - const template = ` -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -__export(require("@rxdi/core")); -exports.NgModule = require("@rxdi/core").Module; - `; - fileService.mkdirp(AngularCoreFolder) - .pipe( - switchMap(() => fileService.writeFileAsyncP(AngularCoreFolder, 'index.js', template)) - ).subscribe( - () => console.log('@angular/core folder created with fake index.js exporting @rxdi/core'), - console.log.bind(console) - ); -} +// #!/usr/bin/env node +// import { Container } from '../container/Container'; +// import { ExternalImporter } from '../services/external-importer/external-importer'; +// import { FileService } from '../services/file/file.service'; +// import { ExternalImporterIpfsConfig } from '../services/external-importer/external-importer-config'; +// import { ConfigService } from '../services/config/config.service'; +// import { Observable, combineLatest, pipe } from 'rxjs'; +// import { tap, switchMap } from 'rxjs/operators'; +// import { writeFileSync } from 'fs'; +// import { mkdirp } from '../services/file/dist'; + +// const includes = (i: string) => process.argv.toString().includes(i); + +// const externalImporter = Container.get(ExternalImporter); +// const fileService = Container.get(FileService); +// let p = null; + +// if (includes('--local-node')) { +// p = externalImporter.getProvider('local'); +// } + +// if (includes('--cloudflare')) { +// p = externalImporter.getProvider('cloudflare'); +// } + +// if (includes('--infura')) { +// p = externalImporter.getProvider('infura'); +// } + +// if (includes('--ipfs')) { +// p = externalImporter.getProvider('main-ipfs-node'); +// } + +// externalImporter.defaultProvider = p || externalImporter.defaultProvider; +// let provider = externalImporter.defaultProvider; +// let hash = ''; +// let modulesToDownload = []; +// let customConfigFile; +// let packageJsonConfigFile; +// let rxdiConfigFile; +// let json: PackagesConfig[]; +// // let interval; + +// export interface PackagesConfig { +// dependencies: string[]; +// provider: string; +// } + +// export const loadDeps = (jsonIpfs: PackagesConfig) => { +// if (!jsonIpfs) { +// throw new Error('Missing ipfs config!'); +// } +// if (!jsonIpfs.provider) { +// throw new Error('Missing ipfsProvider package.json'); +// } +// jsonIpfs.dependencies = jsonIpfs.dependencies || []; + +// return jsonIpfs.dependencies.map(hash => { +// return { hash, provider: jsonIpfs.provider }; +// }).filter(res => !!res); +// }; + +// export const DownloadDependencies = (dependencies: ExternalImporterIpfsConfig[]): Observable => { +// return Container.get(ExternalImporter).downloadIpfsModules(dependencies); +// }; + +// if (process.argv.toString().includes('-v') || process.argv.toString().includes('--verbose')) { +// Container.get(ConfigService).setConfig({ logger: { logging: true, hashes: true, date: true, exitHandler: true, fileService: true } }); +// } +// console.log(''); +// if (process.argv[2] === 'install' || process.argv[2] === 'i') { + +// process.argv.forEach((val, index) => { +// if (index === 3) { +// if (val.length === 46) { +// hash = val; +// } else if (val.includes('--hash=')) { +// hash = val.split('--hash=')[1]; +// } else if (val.includes('-h=')) { +// hash = val.split('-h=')[1]; +// } +// } +// if (index === 4) { +// if (val.includes('--provider=')) { +// provider = val.split('--provider=')[1]; +// } else if (val.includes('http')) { +// provider = val; +// } else if (val.includes('-p=')) { +// provider = val.split('-p=')[1]; +// } +// } +// }); + +// customConfigFile = `${process.cwd()}/${process.argv[3]}`; +// packageJsonConfigFile = `${process.cwd()}/package.json`; +// rxdiConfigFile = `${process.cwd()}/reactive.json`; + +// if (!hash && fileService.isPresent(customConfigFile)) { +// json = require(customConfigFile).ipfs; +// externalImporter.defaultJsonFolder = customConfigFile; +// } + +// if (fileService.isPresent(packageJsonConfigFile)) { +// json = require(packageJsonConfigFile).ipfs; +// externalImporter.defaultJsonFolder = packageJsonConfigFile; +// } + +// if (fileService.isPresent(rxdiConfigFile)) { +// json = require(rxdiConfigFile).ipfs; +// externalImporter.defaultJsonFolder = rxdiConfigFile; +// } +// console.log(`Loaded config ${externalImporter.defaultJsonFolder}`); +// console.log('Reactive ipfs modules installing...'); +// if (hash) { +// modulesToDownload = [DownloadDependencies(loadDeps({ provider: p || provider, dependencies: [hash] }))]; +// } +// if (!hash) { +// json = json || []; +// modulesToDownload = [...modulesToDownload, ...json.map(json => { +// json.provider = p || json.provider; +// return DownloadDependencies(loadDeps(json)); +// })]; +// } +// combineLatest(modulesToDownload) +// .pipe( +// tap(() => hash ? externalImporter.addPackageToJson(hash) : null), +// tap(() => externalImporter.filterUniquePackages()) +// ).subscribe( +// (res) => { +// console.log('Default ipfs provider: ', p || externalImporter.defaultProvider); +// console.log(`Inside package.json default provider is ${externalImporter.defaultProvider}`); +// console.log(JSON.stringify(res, null, 2), '\nReactive ipfs modules installed!'); +// // clearInterval(interval); +// }, +// (e) => { +// throw new Error(e); +// } +// ); +// } + + +// if (process.argv[2] === '--ng-compat') { +// const fileService = Container.get(FileService); +// const AngularCoreFolder = './node_modules/@angular/core/'; +// const template = ` +// function __export(m) { +// for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +// } +// __export(require("@rxdi/core")); +// exports.NgModule = require("@rxdi/core").Module; +// `; +// fileService.mkdirp(AngularCoreFolder) +// .pipe( +// switchMap(() => fileService.writeFileAsyncP(AngularCoreFolder, 'index.js', template)) +// ).subscribe( +// () => console.log('@angular/core folder created with fake index.js exporting @rxdi/core'), +// console.log.bind(console) +// ); +// } diff --git a/src/services/external-importer/external-importer.ts b/src/services/external-importer/external-importer.ts index 840c18a..cccaa3f 100644 --- a/src/services/external-importer/external-importer.ts +++ b/src/services/external-importer/external-importer.ts @@ -14,12 +14,12 @@ import { } from 'rxjs'; import { map, switchMap, take, filter, tap, takeUntil } from 'rxjs/operators'; import { RequestService } from '../request'; -import { FileService } from '../file'; +// import { FileService } from '../file'; import { BootstrapLogger } from '../bootstrap-logger/bootstrap-logger'; import { Injector } from '../../decorators/injector/injector.decorator'; import { CompressionService } from '../compression/compression.service'; import { NpmService } from '../npm-service/npm.service'; -import { PackagesConfig } from '../../bin/root'; +// import { PackagesConfig } from '../../bin/root'; import { IPFS_PROVIDERS } from './providers'; import SystemJS = require('systemjs'); @@ -29,7 +29,7 @@ export class ExternalImporter { defaultTypescriptConfigJsonFolder: string = `${process.cwd()}/tsconfig.json`; @Injector(RequestService) private requestService: RequestService; - @Injector(FileService) private fileService: FileService; + private fileService; @Injector(BootstrapLogger) private logger: BootstrapLogger; @Injector(CompressionService) compressionService: CompressionService; @Injector(NpmService) private npmService: NpmService; @@ -160,7 +160,7 @@ export class ExternalImporter { isModulePresent(hash) { const file = this.loadPackageJson(); - let ipfsConfig: PackagesConfig[] = file.ipfs; + let ipfsConfig: any[] = file.ipfs; const found = []; if (!ipfsConfig) { ipfsConfig = this.defaultIpfsConfig(); @@ -176,7 +176,7 @@ export class ExternalImporter { filterUniquePackages() { const file = this.loadPackageJson(); - let ipfsConfig: PackagesConfig[] = file.ipfs; + let ipfsConfig: any[] = file.ipfs; let dups = []; if (!ipfsConfig) { ipfsConfig = this.defaultIpfsConfig(); @@ -211,7 +211,7 @@ export class ExternalImporter { addPackageToJson(hash: string) { const file = this.loadPackageJson(); - let ipfsConfig: PackagesConfig[] = file.ipfs; + let ipfsConfig: any[] = file.ipfs; if (!ipfsConfig) { ipfsConfig = this.defaultIpfsConfig(); } diff --git a/src/services/file/file.service.ts b/src/services/file/file.service.ts index 34d6d03..26d6fd8 100644 --- a/src/services/file/file.service.ts +++ b/src/services/file/file.service.ts @@ -1,145 +1,145 @@ -import { Service } from '../../decorators/service/Service'; -import { - writeFileSync, - existsSync, - readdir, - stat, - writeFile, - readFileSync, - readFile -} from 'fs'; -import { Observable } from 'rxjs'; -import { map, switchMap, tap } from 'rxjs/operators'; -import { BootstrapLogger } from '../bootstrap-logger'; -import { Injector } from '../../decorators/injector/injector.decorator'; -import { resolve } from 'path'; -import { mkdirp } from './dist'; +// import { Service } from '../../decorators/service/Service'; +// import { +// writeFileSync, +// existsSync, +// readdir, +// stat, +// writeFile, +// readFileSync, +// readFile +// } from 'fs'; +// import { Observable } from 'rxjs'; +// import { map, switchMap, tap } from 'rxjs/operators'; +// import { BootstrapLogger } from '../bootstrap-logger'; +// import { Injector } from '../../decorators/injector/injector.decorator'; +// import { resolve } from 'path'; +// import { mkdirp } from './dist'; -@Service() -export class FileService { - @Injector(BootstrapLogger) private logger: BootstrapLogger; +// @Service() +// export class FileService { +// @Injector(BootstrapLogger) private logger: BootstrapLogger; - writeFile(folder: string, fileName, moduleName, file) { - return this.mkdirp(folder).pipe( - tap(() => { - this.logger.logFileService( - `Bootstrap: @Service('${moduleName}'): Saved inside ${folder}` - ); - }), - switchMap(() => this.writeFileAsyncP(folder, fileName, file)) - ); - } +// writeFile(folder: string, fileName, moduleName, file) { +// return this.mkdirp(folder).pipe( +// tap(() => { +// this.logger.logFileService( +// `Bootstrap: @Service('${moduleName}'): Saved inside ${folder}` +// ); +// }), +// switchMap(() => this.writeFileAsyncP(folder, fileName, file)) +// ); +// } - writeFileAsync(folder: string, fileName, moduleName, file) { - return this.mkdirp(folder).pipe( - switchMap(() => this.writeFileAsyncP(folder, fileName, file)), - map(() => { - this.logger.logFileService( - `Bootstrap: external @Module('${moduleName}') namespace: Saved inside ${folder}` - ); - return `${folder}/${fileName}`; - }) - ); - } +// writeFileAsync(folder: string, fileName, moduleName, file) { +// return this.mkdirp(folder).pipe( +// switchMap(() => this.writeFileAsyncP(folder, fileName, file)), +// map(() => { +// this.logger.logFileService( +// `Bootstrap: external @Module('${moduleName}') namespace: Saved inside ${folder}` +// ); +// return `${folder}/${fileName}`; +// }) +// ); +// } - writeFileSync(folder, file) { - return writeFileSync.bind(null)( - folder, - JSON.stringify(file, null, 2) + '\n', - { encoding: 'utf-8' } - ); - } +// writeFileSync(folder, file) { +// return writeFileSync.bind(null)( +// folder, +// JSON.stringify(file, null, 2) + '\n', +// { encoding: 'utf-8' } +// ); +// } - readFile(file: string) { - return JSON.parse(readFileSync.bind(null)(file, { encoding: 'utf-8' })); - } +// readFile(file: string) { +// return JSON.parse(readFileSync.bind(null)(file, { encoding: 'utf-8' })); +// } - isPresent(path: string) { - return existsSync(path); - } +// isPresent(path: string) { +// return existsSync(path); +// } - writeFileAsyncP(folder, fileName, content) { - return new Observable(o => - writeFile(`${folder}/${fileName}`, content, () => o.next(true)) - ); - } +// writeFileAsyncP(folder, fileName, content) { +// return new Observable(o => +// writeFile(`${folder}/${fileName}`, content, () => o.next(true)) +// ); +// } - mkdirp(folder): Observable { - return new Observable(observer => { - mkdirp(folder, err => { - if (err) { - console.error(err); - observer.error(false); - } else { - observer.next(true); - } - observer.complete(); - }); - }); - } +// mkdirp(folder): Observable { +// return new Observable(observer => { +// mkdirp(folder, err => { +// if (err) { +// console.error(err); +// observer.error(false); +// } else { +// observer.next(true); +// } +// observer.complete(); +// }); +// }); +// } - public fileWalker( - dir: string, - exclude: string = 'node_modules' - ): Observable { - return new Observable(observer => { - this.filewalker( - dir, - (err, result) => { - if (err) { - observer.error(err); - } else { - observer.next(result); - } - observer.complete(); - }, - exclude - ); - }); - } +// public fileWalker( +// dir: string, +// exclude: string = 'node_modules' +// ): Observable { +// return new Observable(observer => { +// this.filewalker( +// dir, +// (err, result) => { +// if (err) { +// observer.error(err); +// } else { +// observer.next(result); +// } +// observer.complete(); +// }, +// exclude +// ); +// }); +// } - private filewalker( - dir: string, - done: (err: NodeJS.ErrnoException, data?: any) => void, - exclude = 'node_modules' - ) { - let results = []; - const fileWalker = this.filewalker.bind(this); - readdir(dir, (err, list) => { - if (err) { - return done(err); - } - let pending = list.length; - if (!pending) { - return done(null, results); - } - list.forEach(file => { - file = resolve(dir, file); - stat(file, (err, stat) => { - if (stat && stat.isDirectory()) { - results.push(file); - if (!file.includes(exclude)) { - fileWalker( - file, - (err, res) => { - results = results.concat(res); - if (!--pending) { - done(null, results); - } - }, - exclude - ); - } else if (!--pending) { - done(null, results); - } - } else { - results.push(file); - if (!--pending) { - done(null, results); - } - } - }); - }); - }); - } -} +// private filewalker( +// dir: string, +// done: (err: NodeJS.ErrnoException, data?: any) => void, +// exclude = 'node_modules' +// ) { +// let results = []; +// const fileWalker = this.filewalker.bind(this); +// readdir(dir, (err, list) => { +// if (err) { +// return done(err); +// } +// let pending = list.length; +// if (!pending) { +// return done(null, results); +// } +// list.forEach(file => { +// file = resolve(dir, file); +// stat(file, (err, stat) => { +// if (stat && stat.isDirectory()) { +// results.push(file); +// if (!file.includes(exclude)) { +// fileWalker( +// file, +// (err, res) => { +// results = results.concat(res); +// if (!--pending) { +// done(null, results); +// } +// }, +// exclude +// ); +// } else if (!--pending) { +// done(null, results); +// } +// } else { +// results.push(file); +// if (!--pending) { +// done(null, results); +// } +// } +// }); +// }); +// }); +// } +// } diff --git a/src/services/file/index.ts b/src/services/file/index.ts index b9b821a..648abb0 100644 --- a/src/services/file/index.ts +++ b/src/services/file/index.ts @@ -1 +1 @@ -export * from './file.service'; \ No newline at end of file +// export * from './file.service'; \ No newline at end of file diff --git a/src/services/index.ts b/src/services/index.ts index bd913cd..8024790 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -7,13 +7,13 @@ export * from './module/index'; export * from './resolver/index'; export * from './config/index'; export * from './metadata/index'; -export * from './compression/index'; -export * from './file/index'; +// export * from './compression/index'; +// export * from './file/index'; export * from './constructor-watcher/index'; export * from './effect/index'; export * from './controllers/index'; export * from './components/index'; export * from './bootstraps/index'; export * from './services/index'; -export * from './plugin-manager/plugin-manager'; +// export * from './plugin-manager/plugin-manager'; export * from './after-starter/after-starter.service'; \ No newline at end of file diff --git a/src/services/plugin-manager/plugin-manager.ts b/src/services/plugin-manager/plugin-manager.ts deleted file mode 100644 index 87241fb..0000000 --- a/src/services/plugin-manager/plugin-manager.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { PluginService } from '../plugin/plugin.service'; -import { ServiceArgumentsInternal } from '../../decorators/module/module.interfaces'; -import { Service } from '../../decorators/service/Service'; - -@Service() -export class PluginManager { - constructor(private pluginService: PluginService) {} - - listPlugins(): Array { - return this.pluginService.getPlugins(); - } - - getPlugin(pluginClass: Function): ServiceArgumentsInternal { - return this.pluginService - .getPlugins() - .filter(p => p.name === pluginClass.name)[0]; - } -} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..11e79ab --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,57 @@ +const path = require('path'); +const webpack = require('webpack'); + +const ROOT = path.resolve( __dirname); +const DESTINATION = path.resolve( __dirname, 'dist' ); + +module.exports = { + context: ROOT, + + entry: { + 'main': './src/index.ts' + }, + + output: { + filename: '[name].bundle.js', + path: DESTINATION + }, + + resolve: { + extensions: ['.ts', '.js'], + modules: [ + ROOT, + 'node_modules' + ] + }, + + module: { + rules: [ + /**************** + * PRE-LOADERS + *****************/ + { + enforce: 'pre', + test: /\.js$/, + use: 'source-map-loader' + }, + { + enforce: 'pre', + test: /\.ts$/, + exclude: /node_modules/, + use: 'tslint-loader' + }, + + /**************** + * LOADERS + *****************/ + { + test: /\.ts$/, + exclude: [ /node_modules/ ], + use: 'awesome-typescript-loader' + } + ] + }, + + devtool: 'cheap-module-source-map', + devServer: {} +}; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7844a34..b9b631b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,22 @@ # yarn lockfile v1 +"@babel/cli@^7.2.3": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.0.tgz#8d10c9acb2acb362d7614a9493e1791c69100d89" + integrity sha512-jECEqAq6Ngf3pOhLSg7od9WKyrIacyh1oNNYtRXNn+ummSHCTXBamGywOAtiae34Vk7zKuQNnLvo2BKTMCoV4A== + dependencies: + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.0.0" + lodash "^4.17.13" + make-dir "^2.1.0" + slash "^2.0.0" + source-map "^0.5.0" + optionalDependencies: + chokidar "^2.1.8" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" @@ -9,6 +25,26 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/core@^7.4.0": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" + integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.2" + "@babel/helpers" "^7.7.0" + "@babel/parser" "^7.7.2" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.7.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7.4.4": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" @@ -39,6 +75,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" + integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== + dependencies: + "@babel/types" "^7.7.2" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" @@ -46,6 +92,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-annotate-as-pure@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" + integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" @@ -71,6 +124,26 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" +"@babel/helper-create-class-features-plugin@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz#bcdc223abbfdd386f94196ae2544987f8df775e8" + integrity sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA== + dependencies: + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-member-expression-to-functions" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + +"@babel/helper-create-regexp-features-plugin@^7.7.0": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz#6f20443778c8fce2af2ff4206284afc0ced65db6" + integrity sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ== + dependencies: + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + "@babel/helper-define-map@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" @@ -80,6 +153,15 @@ "@babel/types" "^7.5.5" lodash "^4.17.13" +"@babel/helper-define-map@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" + integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== + dependencies: + "@babel/helper-function-name" "^7.7.0" + "@babel/types" "^7.7.0" + lodash "^4.17.13" + "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" @@ -97,6 +179,15 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" + integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== + dependencies: + "@babel/helper-get-function-arity" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -104,6 +195,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" + integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" @@ -111,6 +209,13 @@ dependencies: "@babel/types" "^7.4.4" +"@babel/helper-hoist-variables@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" + integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-member-expression-to-functions@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" @@ -118,6 +223,13 @@ dependencies: "@babel/types" "^7.5.5" +"@babel/helper-member-expression-to-functions@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" + integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" @@ -125,6 +237,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-module-imports@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" + integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" @@ -137,6 +256,18 @@ "@babel/types" "^7.5.5" lodash "^4.17.13" +"@babel/helper-module-transforms@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" + integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/helper-simple-access" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + lodash "^4.17.13" + "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" @@ -144,6 +275,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-optimise-call-expression@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" + integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" @@ -167,6 +305,17 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-remap-async-to-generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" + integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.7.0" + "@babel/helper-wrap-function" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-replace-supers@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" @@ -177,6 +326,16 @@ "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" +"@babel/helper-replace-supers@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" + integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-simple-access@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" @@ -185,6 +344,14 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-simple-access@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" + integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== + dependencies: + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" @@ -192,6 +359,13 @@ dependencies: "@babel/types" "^7.4.4" +"@babel/helper-split-export-declaration@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" + integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== + dependencies: + "@babel/types" "^7.7.0" + "@babel/helper-wrap-function@^7.1.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" @@ -202,6 +376,16 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" +"@babel/helper-wrap-function@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" + integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== + dependencies: + "@babel/helper-function-name" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/helpers@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" @@ -211,6 +395,15 @@ "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" +"@babel/helpers@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" + integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== + dependencies: + "@babel/template" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/highlight@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" @@ -225,6 +418,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== +"@babel/parser@^7.7.0", "@babel/parser@^7.7.2": + version "7.7.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" + integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -234,6 +432,23 @@ "@babel/helper-remap-async-to-generator" "^7.1.0" "@babel/plugin-syntax-async-generators" "^7.2.0" +"@babel/plugin-proposal-async-generator-functions@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" + integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.7.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-class-properties@^7.4.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917" + integrity sha512-tufDcFA1Vj+eWvwHN+jvMN6QsV5o+vUlytNKrbMiCeDL0F2j92RURzUsUMWE5EJkLyWxjdUslCsMQa9FWth16A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-dynamic-import@^7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" @@ -242,6 +457,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" +"@babel/plugin-proposal-dynamic-import@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" + integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-proposal-json-strings@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" @@ -250,7 +473,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.6.2": +"@babel/plugin-proposal-object-rest-spread@^7.4.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== @@ -275,6 +498,14 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.6.0" +"@babel/plugin-proposal-unicode-property-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" + integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" @@ -324,6 +555,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-top-level-await@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" + integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-typescript@^7.2.0": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991" + integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" @@ -340,6 +585,15 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" +"@babel/plugin-transform-async-to-generator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" + integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.7.0" + "@babel/plugin-transform-block-scoped-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" @@ -355,6 +609,14 @@ "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" +"@babel/plugin-transform-block-scoping@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" + integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + "@babel/plugin-transform-classes@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" @@ -369,6 +631,20 @@ "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" + integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.7.0" + "@babel/helper-define-map" "^7.7.0" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-optimise-call-expression" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" @@ -392,6 +668,14 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.6.0" +"@babel/plugin-transform-dotall-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" + integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-duplicate-keys@^7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" @@ -430,6 +714,14 @@ "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-function-name@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" + integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== + dependencies: + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-literals@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" @@ -463,6 +755,16 @@ "@babel/helper-simple-access" "^7.1.0" babel-plugin-dynamic-import-node "^2.3.0" +"@babel/plugin-transform-modules-commonjs@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" + integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== + dependencies: + "@babel/helper-module-transforms" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.7.0" + babel-plugin-dynamic-import-node "^2.3.0" + "@babel/plugin-transform-modules-systemjs@^7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" @@ -472,6 +774,15 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" +"@babel/plugin-transform-modules-systemjs@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" + integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== + dependencies: + "@babel/helper-hoist-variables" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + "@babel/plugin-transform-modules-umd@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" @@ -480,6 +791,14 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-modules-umd@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" + integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== + dependencies: + "@babel/helper-module-transforms" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b" @@ -487,6 +806,13 @@ dependencies: regexpu-core "^4.6.0" +"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" + integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" + "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" @@ -534,6 +860,13 @@ dependencies: regenerator-transform "^0.14.0" +"@babel/plugin-transform-regenerator@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" + integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== + dependencies: + regenerator-transform "^0.14.0" + "@babel/plugin-transform-reserved-words@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" @@ -578,6 +911,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-typescript@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.7.2.tgz#eb9f14c516b5d36f4d6f3a9d7badae6d0fc313d4" + integrity sha512-UWhDaJRqdPUtdK1s0sKYdoRuqK0NepjZto2UZltvuCgMoMZmdjhgz5hcRokie/3aYEaSz3xvusyoayVaq4PjRg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.2.0" + "@babel/plugin-transform-unicode-regex@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" @@ -587,6 +929,71 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.6.0" +"@babel/plugin-transform-unicode-regex@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" + integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/preset-env@^7.4.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" + integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.7.0" + "@babel/plugin-proposal-dynamic-import" "^7.7.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.6.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-syntax-top-level-await" "^7.7.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.7.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.6.3" + "@babel/plugin-transform-classes" "^7.7.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.6.0" + "@babel/plugin-transform-dotall-regex" "^7.7.0" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.7.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.7.0" + "@babel/plugin-transform-modules-systemjs" "^7.7.0" + "@babel/plugin-transform-modules-umd" "^7.7.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.7.0" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.6.2" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.7.0" + "@babel/types" "^7.7.1" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + "@babel/preset-env@^7.4.4": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3" @@ -643,6 +1050,14 @@ js-levenshtein "^1.1.3" semver "^5.5.0" +"@babel/preset-typescript@^7.3.3": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.7.2.tgz#f71c8bba2ae02f11b29dbf7d6a35f47bbe011632" + integrity sha512-1B4HthAelaLGfNRyrWqJtBEjXX1ulThCrLQ5B2VOtEAznWFIFXFJahgXImqppy66lx/Oh+cOSCQdJzZqh2Jh5g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.7.2" + "@babel/runtime@^7.4.4": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd" @@ -659,6 +1074,15 @@ "@babel/parser" "^7.6.0" "@babel/types" "^7.6.0" +"@babel/template@^7.7.0": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" + integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/types" "^7.7.0" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" @@ -674,6 +1098,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" + integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.7.2" + "@babel/helper-function-name" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/parser" "^7.7.2" + "@babel/types" "^7.7.2" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": version "7.6.1" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" @@ -683,6 +1122,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" + integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@iarna/toml@^2.2.0": version "2.2.3" resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" @@ -773,6 +1221,160 @@ resolved "https://registry.yarnpkg.com/@types/systemjs/-/systemjs-0.20.6.tgz#79838d2b4bce9c014330efa0b4c7b9345e830a72" integrity sha512-p3yv9sBBJXi3noUG216BpUI7VtVBUAvBIfZNTiDROUY31YBfsFHM4DreS7XMekN8IjtX0ysvCnm6r3WnirnNeA== +"@webassemblyjs/ast@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.12.tgz#a9acbcb3f25333c4edfa1fdf3186b1ccf64e6664" + integrity sha512-bmTBEKuuhSU6dC95QIW250xO769cdYGx9rWn3uBLTw2pUpud0Z5kVuMw9m9fqbNzGeuOU2HpyuZa+yUt2CTEDA== + dependencies: + "@webassemblyjs/helper-module-context" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/wast-parser" "1.5.12" + debug "^3.1.0" + mamacro "^0.0.3" + +"@webassemblyjs/floating-point-hex-parser@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.12.tgz#0f36044ffe9652468ce7ae5a08716a4eeff9cd9c" + integrity sha512-epTvkdwOIPpTE9edHS+V+shetYzpTbd91XOzUli1zAS0+NSgSe6ZsNggIqUNzhma1s4bN2f/m8c6B1NMdCERAg== + +"@webassemblyjs/helper-api-error@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.12.tgz#05466833ff2f9d8953a1a327746e1d112ea62aaf" + integrity sha512-Goxag86JvLq8ucHLXFNSLYzf9wrR+CJr37DsESTAzSnGoqDTgw5eqiXSQVd/D9Biih7+DIn8UIQCxMs8emRRwg== + +"@webassemblyjs/helper-buffer@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.12.tgz#1f0de5aaabefef89aec314f7f970009cd159c73d" + integrity sha512-tJNUjttL5CxiiS/KLxT4/Zk0Nbl/poFhztFxktb46zoQEUWaGHR9ZJ0SnvE7DbFX5PY5JNJDMZ0Li4lm246fWw== + dependencies: + debug "^3.1.0" + +"@webassemblyjs/helper-code-frame@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.12.tgz#3cdc1953093760d1c0f0caf745ccd62bdb6627c7" + integrity sha512-0FrJgiST+MQDMvPigzs+UIk1vslLIqGadkEWdn53Lr0NsUC2JbheG9QaO3Zf6ycK2JwsHiUpGaMFcHYXStTPMA== + dependencies: + "@webassemblyjs/wast-printer" "1.5.12" + +"@webassemblyjs/helper-fsm@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.12.tgz#6bc1442b037f8e30f2e57b987cee5c806dd15027" + integrity sha512-QBHZ45VPUJ7UyYKvUFoaxrSS9H5hbkC9U7tdWgFHmnTMutkXSEgDg2gZg3I/QTsiKOCIwx4qJUJwPd7J4D5CNQ== + +"@webassemblyjs/helper-module-context@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.12.tgz#b5588ca78b33b8a0da75f9ab8c769a3707baa861" + integrity sha512-SCXR8hPI4JOG3cdy9HAO8W5/VQ68YXG/Hfs7qDf1cd64zWuMNshyEour5NYnLMVkrrtc0XzfVS/MdeV94woFHA== + dependencies: + debug "^3.1.0" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.12.tgz#d12a3859db882a448891a866a05d0be63785b616" + integrity sha512-0Gz5lQcyvElNVbOTKwjEmIxGwdWf+zpAW/WGzGo95B7IgMEzyyfZU+PrGHDwiSH9c0knol9G7smQnY0ljrSA6g== + +"@webassemblyjs/helper-wasm-section@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.12.tgz#ff9fe1507d368ad437e7969d25e8c1693dac1884" + integrity sha512-ge/CKVKBGpiJhFN9PIOQ7sPtGYJhxm/mW1Y3SpG1L6XBunfRz0YnLjW3TmhcOEFozIVyODPS1HZ9f7VR3GBGow== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-buffer" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/wasm-gen" "1.5.12" + debug "^3.1.0" + +"@webassemblyjs/ieee754@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.12.tgz#ee9574bc558888f13097ce3e7900dff234ea19a4" + integrity sha512-F+PEv9QBzPi1ThLBouUJbuxhEr+Sy/oua1ftXFKHiaYYS5Z9tKPvK/hgCxlSdq+RY4MSG15jU2JYb/K5pkoybg== + dependencies: + ieee754 "^1.1.11" + +"@webassemblyjs/leb128@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.12.tgz#0308eec652765ee567d8a5fa108b4f0b25b458e1" + integrity sha512-cCOx/LVGiWyCwVrVlvGmTdnwHzIP4+zflLjGkZxWpYCpdNax9krVIJh1Pm7O86Ox/c5PrJpbvZU1cZLxndlPEw== + dependencies: + leb "^0.3.0" + +"@webassemblyjs/utf8@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.12.tgz#d5916222ef314bf60d6806ed5ac045989bfd92ce" + integrity sha512-FX8NYQMiTRU0TfK/tJVntsi9IEKsedSsna8qtsndWVE0x3zLndugiApxdNMIOoElBV9o4j0BUqR+iwU58QfPxQ== + +"@webassemblyjs/wasm-edit@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.12.tgz#821c9358e644a166f2c910e5af1b46ce795a17aa" + integrity sha512-r/oZAyC4EZl0ToOYJgvj+b0X6gVEKQMLT34pNNbtvWBehQOnaSXvVUA5FIYlH8ubWjFNAFqYaVGgQTjR1yuJdQ== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-buffer" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/helper-wasm-section" "1.5.12" + "@webassemblyjs/wasm-gen" "1.5.12" + "@webassemblyjs/wasm-opt" "1.5.12" + "@webassemblyjs/wasm-parser" "1.5.12" + "@webassemblyjs/wast-printer" "1.5.12" + debug "^3.1.0" + +"@webassemblyjs/wasm-gen@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.12.tgz#0b7ccfdb93dab902cc0251014e2e18bae3139bcb" + integrity sha512-LTu+cr1YRxGGiVIXWhei/35lXXEwTnQU18x4V/gE+qCSJN21QcVTMjJuasTUh8WtmBZtOlqJbOQIeN7fGnHWhg== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/ieee754" "1.5.12" + "@webassemblyjs/leb128" "1.5.12" + "@webassemblyjs/utf8" "1.5.12" + +"@webassemblyjs/wasm-opt@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.12.tgz#bd758a8bc670f585ff1ae85f84095a9e0229cbc9" + integrity sha512-LBwG5KPA9u/uigZVyTsDpS3CVxx3AePCnTItVL+OPkRCp5LqmLsOp4a3/c5CQE0Lecm0Ss9hjUTDcbYFZkXlfQ== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-buffer" "1.5.12" + "@webassemblyjs/wasm-gen" "1.5.12" + "@webassemblyjs/wasm-parser" "1.5.12" + debug "^3.1.0" + +"@webassemblyjs/wasm-parser@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.12.tgz#7b10b4388ecf98bd7a22e702aa62ec2f46d0c75e" + integrity sha512-xset3+1AtoFYEfMg30nzCGBnhKmTBzbIKvMyLhqJT06TvYV+kA884AOUpUvhSmP6XPF3G+HVZPm/PbCGxH4/VQ== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-api-error" "1.5.12" + "@webassemblyjs/helper-wasm-bytecode" "1.5.12" + "@webassemblyjs/ieee754" "1.5.12" + "@webassemblyjs/leb128" "1.5.12" + "@webassemblyjs/utf8" "1.5.12" + +"@webassemblyjs/wast-parser@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.12.tgz#9cf5ae600ecae0640437b5d4de5dd6b6088d0d8b" + integrity sha512-QWUtzhvfY7Ue9GlJ3HeOB6w5g9vNYUUnG+Y96TWPkFHJTxZlcvGfNrUoACCw6eDb9gKaHrjt77aPq41a7y8svg== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/floating-point-hex-parser" "1.5.12" + "@webassemblyjs/helper-api-error" "1.5.12" + "@webassemblyjs/helper-code-frame" "1.5.12" + "@webassemblyjs/helper-fsm" "1.5.12" + long "^3.2.0" + mamacro "^0.0.3" + +"@webassemblyjs/wast-printer@1.5.12": + version "1.5.12" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.12.tgz#563ca4d01b22d21640b2463dc5e3d7f7d9dac520" + integrity sha512-XF9RTeckFgDyl196uRKZWHFFfbkzsMK96QTXp+TC0R9gsV9DMiDGMSIllgy/WdrZ3y3dsQp4fTA5r4GoaOBchA== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/wast-parser" "1.5.12" + long "^3.2.0" + abab@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" @@ -783,6 +1385,21 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== + dependencies: + acorn "^5.0.0" + acorn-globals@^4.1.0, acorn-globals@^4.3.0: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" @@ -796,7 +1413,7 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== -acorn@^5.0.0, acorn@^5.5.3: +acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== @@ -806,7 +1423,12 @@ acorn@^6.0.1, acorn@^6.0.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== -ajv@^6.5.5: +ajv-keywords@^3.1.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^6.1.0, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -821,11 +1443,16 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -ansi-escapes@^3.0.0: +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -836,6 +1463,11 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -870,7 +1502,7 @@ append-transform@^0.4.0: dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== @@ -917,6 +1549,41 @@ array-equal@^1.0.0: resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/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.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -981,7 +1648,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.1.4: +async@^2.1.4, async@^2.5.0, async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -998,6 +1665,20 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +awesome-typescript-loader@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-5.2.0.tgz#d7bccf4823c45096ec24da4c12a1507d276ba15a" + integrity sha512-3v5MEUgRz1n90u61UGYbhFxiFq1tK/HBdoY/ScBX1srOiZVo4iF9b6hyP2ZsRp1ewHKYwlEo0OaHUXJVQHv6dw== + dependencies: + chalk "^2.4.1" + enhanced-resolve "^4.0.0" + loader-utils "^1.1.0" + lodash "^4.17.5" + micromatch "^3.1.9" + mkdirp "^0.5.1" + source-map-support "^0.5.3" + webpack-log "^1.2.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1208,6 +1889,11 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -1215,6 +1901,16 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -1235,6 +1931,34 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -1392,6 +2116,11 @@ buffer-from@1.x, buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1416,6 +2145,35 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1462,6 +2220,19 @@ callsites@^2.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -1514,7 +2285,12 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chokidar@^2.1.5: +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.1.5, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -1533,11 +2309,18 @@ chokidar@^2.1.5: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1: +chownr@^1.0.1, chownr@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== +chrome-trace-event@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -1573,6 +2356,11 @@ cli-spinners@^1.1.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -1669,17 +2457,52 @@ commander@^2.11.0, commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, comm resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.5.2: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@~1.6.0: +concat-stream@^1.5.0, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1689,6 +2512,11 @@ concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +connect-history-api-fallback@^1.3.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1706,6 +2534,18 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" @@ -1713,6 +2553,35 @@ convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: dependencies: safe-buffer "~5.1.1" +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -1777,7 +2646,16 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@^6.0.0, cross-spawn@^6.0.4: +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-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, cross-spawn@^6.0.4, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -1982,6 +2860,26 @@ cssstyle@^1.0.0, cssstyle@^1.1.1: dependencies: cssom "0.3.x" +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -2011,14 +2909,14 @@ deasync@^0.1.14: bindings "~1.2.1" node-addon-api "^1.6.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -2032,7 +2930,7 @@ debug@^4.1.0: dependencies: ms "^2.1.1" -decamelize@^1.1.1: +decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -2042,6 +2940,18 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2095,6 +3005,18 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/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.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2140,6 +3062,11 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +detect-node@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -2155,9 +3082,29 @@ diffie-hellman@^5.0.0: resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" dom-serializer@0: version "0.2.1" @@ -2228,6 +3175,16 @@ duplexer2@~0.1.4: dependencies: readable-stream "^2.0.2" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2259,18 +3216,32 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +enhanced-resolve@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -2286,6 +3257,13 @@ envinfo@^7.3.1: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.4.0.tgz#bef4ece9e717423aaf0c3584651430b735ad6630" integrity sha512-FdDfnWnCVjxTTpWE3d6Jgh5JDIA3Cw7LCgpM/pI7kK1ORkjaqI2r6NqQ+ln2j0dfpgxY00AWieSvtkiZQKIItA== +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2309,6 +3287,22 @@ es-abstract@^1.12.0, es-abstract@^1.5.1: string.prototype.trimleft "^2.1.0" string.prototype.trimright "^2.1.0" +es-abstract@^1.7.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" + integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" @@ -2318,6 +3312,32 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.52" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.52.tgz#bb21777e919a04263736ded120a9d665f10ea63f" + integrity sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.2" + next-tick "~1.0.0" + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2352,6 +3372,14 @@ escodegen@~1.9.0: optionalDependencies: source-map "~0.6.1" +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -2362,7 +3390,14 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estraverse@^4.2.0: +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -2377,11 +3412,23 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + integrity sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI= + dependencies: + original ">=0.0.5" + evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -2397,6 +3444,19 @@ exec-sh@^0.2.0: dependencies: merge "^1.2.0" +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/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.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -2454,6 +3514,49 @@ expect@^23.6.0: jest-message-util "^23.4.0" jest-regex-util "^23.3.0" +express@^4.16.2: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.2.0.tgz#8dd8d2dd21bcced3045be09621fa0cbf73908ba4" + integrity sha512-0ccUQK/9e3NreLFg6K6np8aPyRgwycx+oFGtfx1dSp7Wj00Ozw9r05FgBRlzjf2XBM7LAzwgLyDscRrtSU91hA== + dependencies: + type "^2.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -2474,6 +3577,15 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -2547,6 +3659,20 @@ fastparse@^1.1.1: resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" @@ -2554,6 +3680,13 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/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.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -2593,6 +3726,28 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -2608,6 +3763,21 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" + integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== + dependencies: + debug "^3.0.0" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2639,6 +3809,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -2651,6 +3826,14 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -2658,6 +3841,21 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.6.0" +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2705,6 +3903,16 @@ get-port@^3.2.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -2752,6 +3960,18 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob@^7.0.0: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -2764,6 +3984,11 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +global-modules-path@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931" + integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg== + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -2774,6 +3999,17 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/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: version "4.2.2" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" @@ -2792,6 +4028,11 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ= + handlebars@^4.0.3: version "4.4.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.2.tgz#8810a9821a9d6d52cb2f57d326d6ce7c3dfe741d" @@ -2924,6 +4165,16 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + hsl-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" @@ -2946,6 +4197,11 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + html-tags@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.2.0.tgz#c78de65b5663aa597989dd2b7ab49200d7e4db98" @@ -2977,6 +4233,32 @@ htmlparser2@^3.9.2: inherits "^2.0.1" readable-stream "^3.1.1" +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -2988,6 +4270,30 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" + integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q== + dependencies: + http-proxy "^1.16.2" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" + +http-proxy@^1.16.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -3002,7 +4308,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3014,11 +4320,16 @@ icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= -ieee754@^1.1.4: +ieee754@^1.1.11, ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + ignore-walk@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" @@ -3047,6 +4358,13 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -3080,6 +4398,37 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +inquirer@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-ip@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + integrity sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w= + dependencies: + meow "^3.3.0" + +interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -3087,11 +4436,26 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -3116,6 +4480,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3314,6 +4683,25 @@ is-obj@^1.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/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.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3331,6 +4719,11 @@ is-primitive@^2.0.0: resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3913,7 +5306,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.1: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -3933,6 +5326,11 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + json5@2.x, json5@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" @@ -3940,7 +5338,7 @@ json5@2.x, json5@^2.1.0: dependencies: minimist "^1.2.0" -json5@^0.5.1: +json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= @@ -3962,6 +5360,11 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +killable@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3991,6 +5394,13 @@ kleur@^2.0.1: resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -3998,6 +5408,11 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +leb@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3" + integrity sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM= + left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" @@ -4027,6 +5442,30 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +loader-runner@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@~0.2.2: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -4055,18 +5494,36 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@^2.2.0: +log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" +loglevel@^1.4.1: + version "1.6.6" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" + integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== + +loglevelnext@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" + integrity sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A== + dependencies: + es6-symbol "^3.1.1" + object.assign "^4.1.0" + +long@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + integrity sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s= + loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -4074,6 +5531,22 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +loud-rejection@^1.0.0, loud-rejection@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + magic-string@^0.22.4: version "0.22.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" @@ -4081,6 +5554,21 @@ magic-string@^0.22.4: dependencies: vlq "^0.2.2" +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + make-error@1.x: version "1.3.5" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" @@ -4093,6 +5581,11 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -4105,6 +5598,11 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -4136,6 +5634,18 @@ mdn-data@~1.1.0: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + mem@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" @@ -4145,6 +5655,43 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + merge-source-map@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" @@ -4169,6 +5716,11 @@ merge@^1.2.0: resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -4188,7 +5740,7 @@ micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -4220,6 +5772,11 @@ mime-db@1.40.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== +mime-db@1.42.0, "mime-db@>= 1.40.0 < 2": + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" @@ -4227,11 +5784,23 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.40.0" +mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.25" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437" + integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg== + dependencies: + mime-db "1.42.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.1.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -4289,6 +5858,22 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -4297,7 +5882,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -4311,6 +5896,18 @@ mock-require@^2.0.2: dependencies: caller-id "^0.1.0" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4326,6 +5923,24 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + nan@^2.12.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -4362,11 +5977,21 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" -neo-async@^2.6.0: +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -4377,6 +6002,11 @@ node-addon-api@^1.6.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.1.tgz#cf813cd69bb8d9100f6bdca6755fc268f54ac492" integrity sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ== +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + node-forge@^0.7.1: version "0.7.6" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" @@ -4463,7 +6093,7 @@ normalize-html-whitespace@^1.0.0: resolved "https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34" integrity sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA== -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -4566,6 +6196,11 @@ object-inspect@~1.4.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -4621,6 +6256,11 @@ object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -4628,6 +6268,11 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -4681,6 +6326,13 @@ ora@^2.1.0: strip-ansi "^4.0.0" wcwidth "^1.0.1" +original@>=0.0.5: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -4691,6 +6343,15 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -4700,7 +6361,7 @@ os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -4742,6 +6403,11 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -4757,6 +6423,15 @@ pako@~1.0.5: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + parcel-bundler@^1.9.7: version "1.12.4" resolved "https://registry.yarnpkg.com/parcel-bundler/-/parcel-bundler-1.12.4.tgz#31223f4ab4d00323a109fce28d5e46775409a9ee" @@ -4869,7 +6544,7 @@ parse5@5.1.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== -parseurl@~1.3.3: +parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -4906,6 +6581,11 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/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.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -4916,6 +6596,11 @@ path-parse@^1.0.5, path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -4951,6 +6636,16 @@ pify@^2.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -4975,6 +6670,15 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +portfinder@^1.0.9: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -5372,6 +7076,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + prompts@^0.1.9: version "0.1.14" resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" @@ -5380,6 +7089,24 @@ prompts@^0.1.9: kleur "^2.0.1" sisteransi "^0.1.1" +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + psl@^1.1.24, psl@^1.1.28: version "1.4.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" @@ -5397,6 +7124,14 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -5405,6 +7140,15 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -5425,6 +7169,11 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -5440,6 +7189,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + quote-stream@^1.0.1, quote-stream@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" @@ -5473,11 +7227,21 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@~1.2.1: +range-parser@^1.0.3, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -5505,7 +7269,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -5543,6 +7307,14 @@ realpath-native@^1.0.0: dependencies: util.promisify "^1.0.0" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" @@ -5587,6 +7359,13 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + dependencies: + define-properties "^1.1.2" + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -5706,6 +7485,11 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -5758,7 +7542,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -5778,6 +7562,20 @@ rsvp@^3.3.3: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + rxjs@6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" @@ -5785,16 +7583,23 @@ rxjs@6.5.2: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +rxjs@^6.4.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" -safe-buffer@~5.1.0, 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.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -5835,7 +7640,27 @@ saxes@^3.1.9: dependencies: xmlchars "^2.1.1" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0: +schema-utils@^0.4.4, schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.9.1: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -5864,12 +7689,30 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-javascript@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== + serialize-to-js@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/serialize-to-js/-/serialize-to-js-3.0.0.tgz#1fd8736744819a4df29dc85e9d04a44a4984edc3" integrity sha512-WdGgi0jGnWCQXph2p3vkxceDnTfvfyXfYxherQMRcZjSaJzMQdMBAW6i0nojsBKIZ3fFOztZKKVbbm05VbIdRA== -serve-static@^1.12.4: +serve-index@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1, serve-static@^1.12.4: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== @@ -5899,6 +7742,11 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" @@ -5956,6 +7804,11 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5986,6 +7839,40 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + integrity sha1-W6vjhrd15M8U51IJEUUmVAFsixI= + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-loader@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521" + integrity sha512-MYbFX9DYxmTQFfy2v8FC1XZwpwHKYxg3SK8Wb7VPBKuhDjz8gi9re2819MsG4p49HDyiOSUKlmZ+nQBArW5CGw== + dependencies: + async "^2.5.0" + loader-utils "~0.2.2" + source-map "~0.6.1" + source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" @@ -6004,6 +7891,14 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" +source-map-support@^0.5.3: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -6053,6 +7948,31 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== +spdy-transport@^2.0.18: + version "2.1.1" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b" + integrity sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q== + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw= + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -6080,6 +8000,13 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -6130,7 +8057,7 @@ static-module@^2.2.0: static-eval "^2.0.0" through2 "~2.0.3" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -6148,6 +8075,14 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -6159,6 +8094,11 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -6176,7 +8116,7 @@ string-width@^1.0.1: 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: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -6228,6 +8168,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6245,6 +8192,13 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -6271,7 +8225,7 @@ supports-color@^3.1.2, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -6309,6 +8263,11 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + tar@^4: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -6364,6 +8323,16 @@ through2@^2.0.0, through2@~2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + timers-browserify@^2.0.4: version "2.0.11" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" @@ -6381,6 +8350,13 @@ tiny-inflate@^1.0.0: resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" integrity sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c= +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -6454,6 +8430,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -6486,6 +8467,17 @@ tslint-language-service@^0.9.9: dependencies: mock-require "^2.0.2" +tslint-loader@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/tslint-loader/-/tslint-loader-3.6.0.tgz#12ed4d5ef57d68be25cd12692fb2108b66469d76" + integrity sha512-Me9Qf/87BOfCY8uJJw+J7VMF4U8WiMXKLhKKKugMydF0xMhMOt9wo2mjYTNhwbF9H7SHh8PAIwRG8roisTNekQ== + dependencies: + loader-utils "^1.0.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + rimraf "^2.4.4" + semver "^5.3.0" + tslint@^5.11.0: version "5.20.0" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.0.tgz#fac93bfa79568a5a24e7be9cdde5e02b02d00ec1" @@ -6536,6 +8528,24 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -6546,6 +8556,14 @@ typescript@^3.0.1, typescript@^3.4.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da" integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + uglify-js@^3.1.4: version "3.6.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" @@ -6554,6 +8572,20 @@ uglify-js@^3.1.4: commander "~2.20.0" source-map "~0.6.1" +uglifyjs-webpack-plugin@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" + integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw== + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + uncss@^0.17.0: version "0.17.2" resolved "https://registry.yarnpkg.com/uncss/-/uncss-0.17.2.tgz#fac1c2429be72108e8a47437c647d58cf9ea66f1" @@ -6620,6 +8652,25 @@ uniqs@^2.0.0: resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= +unique-filename@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" @@ -6650,6 +8701,19 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +url-join@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== + +url-parse@^1.1.8, url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -6690,7 +8754,12 @@ util@^0.11.0: dependencies: inherits "2.0.3" -uuid@^3.3.2: +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== @@ -6708,6 +8777,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + vendors@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" @@ -6763,6 +8837,22 @@ watch@~0.18.0: exec-sh "^0.2.0" minimist "^1.2.0" +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -6775,6 +8865,133 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webpack-cli@3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.0.8.tgz#90eddcf04a4bfc31aa8c0edc4c76785bc4f1ccd9" + integrity sha512-KnRLJ0BUaYRqrhAMb9dv3gzdmhmgIMKo0FmdsnmfqbPGtLnnZ6tORZAvmmKfr+A0VgiVpqC60Gv7Ofg0R2CHtQ== + dependencies: + chalk "^2.4.1" + cross-spawn "^6.0.5" + enhanced-resolve "^4.0.0" + global-modules-path "^2.1.0" + import-local "^1.0.0" + inquirer "^6.0.0" + interpret "^1.1.0" + loader-utils "^1.1.0" + supports-color "^5.4.0" + v8-compile-cache "^2.0.0" + yargs "^11.1.0" + +webpack-dev-middleware@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz#8b32aa43da9ae79368c1bf1183f2b6cf5e1f39ed" + integrity sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ== + dependencies: + loud-rejection "^1.6.0" + memory-fs "~0.4.1" + mime "^2.1.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + url-join "^4.0.0" + webpack-log "^1.0.1" + +webpack-dev-server@3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz#9a08d13c4addd1e3b6d8ace116e86715094ad5b4" + integrity sha512-itcIUDFkHuj1/QQxzUFOEXXmxOj5bku2ScLEsOFPapnq2JRTm58gPdtnBphBJOKL2+M3p6+xygL64bI+3eyzzw== + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^2.0.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" + html-entities "^1.2.0" + http-proxy-middleware "~0.18.0" + import-local "^1.0.0" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.19" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "3.1.3" + webpack-log "^1.1.2" + yargs "11.0.0" + +webpack-log@^1.0.1, webpack-log@^1.1.2, webpack-log@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" + integrity sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA== + dependencies: + chalk "^2.1.0" + log-symbols "^2.1.0" + loglevelnext "^1.0.1" + uuid "^3.1.0" + +webpack-sources@^1.0.1, webpack-sources@^1.1.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.12.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.12.0.tgz#14758e035ae69747f68dd0edf3c5a572a82bdee9" + integrity sha512-EJj2FfhgtjrTbJbJaNulcVpDxi9vsQVvTahHN7xJvIv6W+k4r/E6Hxy4eyOrj+IAFWqYgaUtnpxmSGYP8MSZJw== + dependencies: + "@webassemblyjs/ast" "1.5.12" + "@webassemblyjs/helper-module-context" "1.5.12" + "@webassemblyjs/wasm-edit" "1.5.12" + "@webassemblyjs/wasm-opt" "1.5.12" + "@webassemblyjs/wasm-parser" "1.5.12" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.0.0" + eslint-scope "^3.7.1" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^0.4.4" + tapable "^1.0.0" + uglifyjs-webpack-plugin "^1.2.4" + watchpack "^1.5.0" + webpack-sources "^1.0.1" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -6834,6 +9051,13 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +worker-farm@^1.5.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -6890,6 +9114,16 @@ y18n@^3.2.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + yallist@^3.0.0, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -6909,7 +9143,25 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@^11.0.0: +yargs@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + integrity sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw== + 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" + +yargs@^11.0.0, yargs@^11.1.0: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==