From 4313031fffb06937426a9569331ddc1d3d237177 Mon Sep 17 00:00:00 2001 From: cwsmith Date: Thu, 1 Sep 2022 14:36:55 -0400 Subject: [PATCH 1/6] Add modifier argument to executeOnRoomUserTyping --- src/server/managers/AppListenerManager.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/managers/AppListenerManager.ts b/src/server/managers/AppListenerManager.ts index 53787b45b..3868a82ab 100644 --- a/src/server/managers/AppListenerManager.ts +++ b/src/server/managers/AppListenerManager.ts @@ -802,11 +802,13 @@ export class AppListenerManager { const app = this.manager.getOneById(appId); if (app.hasMethod(AppMethod.EXECUTE_ON_ROOM_USER_TYPING)) { - await app.call(AppMethod.EXECUTE_ON_ROOM_USER_TYPING, + await app.call( + AppMethod.EXECUTE_ON_ROOM_USER_TYPING, data, this.am.getReader(appId), this.am.getHttp(appId), this.am.getPersistence(appId), + this.am.getModifier(appId) ); } } From 9a89addfacd4600f4e49d8dc7ce96a0ef88669ea Mon Sep 17 00:00:00 2001 From: cwsmith Date: Thu, 1 Sep 2022 15:15:50 -0400 Subject: [PATCH 2/6] Add modify param to IRoomUserTyping definition --- definition/rooms/IRoomUserTyping.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/definition/rooms/IRoomUserTyping.d.ts b/definition/rooms/IRoomUserTyping.d.ts index 1b6edd5b5..4bf0df190 100644 --- a/definition/rooms/IRoomUserTyping.d.ts +++ b/definition/rooms/IRoomUserTyping.d.ts @@ -1,4 +1,4 @@ -import { IHttp, IPersistence, IRead } from '../accessors'; +import { IHttp, IPersistence, IRead, IModify } from '../accessors'; import { IRoomUserTypingContext } from './IRoomUserTypingContext'; /** * Event interface that allows an app to @@ -9,5 +9,5 @@ import { IRoomUserTypingContext } from './IRoomUserTypingContext'; * */ export interface IRoomUserTyping { - executeOnRoomUserTyping(context: IRoomUserTypingContext, read: IRead, http: IHttp, persistence: IPersistence): Promise; + executeOnRoomUserTyping(context: IRoomUserTypingContext, read: IRead, http: IHttp, persistence: IPersistence, modify: IModify): Promise; } From d86d10d503725f36790b9ec5779cf0d3eebaa80a Mon Sep 17 00:00:00 2001 From: cwsmith Date: Wed, 7 Sep 2022 12:13:01 -0400 Subject: [PATCH 3/6] Update IRoomUserTyping .ts file to match .d.ts file --- src/definition/rooms/IRoomUserTyping.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/definition/rooms/IRoomUserTyping.ts b/src/definition/rooms/IRoomUserTyping.ts index ad41141fc..84de96774 100644 --- a/src/definition/rooms/IRoomUserTyping.ts +++ b/src/definition/rooms/IRoomUserTyping.ts @@ -1,5 +1,5 @@ -import { IHttp, IPersistence, IRead } from '../accessors'; -import { IRoomUserTypingContext } from './IRoomUserTypingContext'; +import { IHttp, IPersistence, IRead, IModify } from "../accessors"; +import { IRoomUserTypingContext } from "./IRoomUserTypingContext"; /** * Event interface that allows an app to @@ -10,5 +10,11 @@ import { IRoomUserTypingContext } from './IRoomUserTypingContext'; * */ export interface IRoomUserTyping { - executeOnRoomUserTyping(context: IRoomUserTypingContext, read: IRead, http: IHttp, persistence: IPersistence): Promise; + executeOnRoomUserTyping( + context: IRoomUserTypingContext, + read: IRead, + http: IHttp, + persistence: IPersistence, + modify: IModify + ): Promise; } From decedb95c40c59b2a95ad35b91272039907c20f1 Mon Sep 17 00:00:00 2001 From: cwsmith Date: Mon, 19 Sep 2022 14:57:34 -0400 Subject: [PATCH 4/6] Compile js output --- definition/rooms/IRoomUserTyping.d.ts | 4 +- definition/rooms/IRoomUserTyping.js.map | 2 +- package-lock.json | 9959 ++++++++++++++++++++- server/managers/AppListenerManager.js | 2 +- server/managers/AppListenerManager.js.map | 2 +- 5 files changed, 9930 insertions(+), 39 deletions(-) diff --git a/definition/rooms/IRoomUserTyping.d.ts b/definition/rooms/IRoomUserTyping.d.ts index 4bf0df190..2d0806d80 100644 --- a/definition/rooms/IRoomUserTyping.d.ts +++ b/definition/rooms/IRoomUserTyping.d.ts @@ -1,5 +1,5 @@ -import { IHttp, IPersistence, IRead, IModify } from '../accessors'; -import { IRoomUserTypingContext } from './IRoomUserTypingContext'; +import { IHttp, IPersistence, IRead, IModify } from "../accessors"; +import { IRoomUserTypingContext } from "./IRoomUserTypingContext"; /** * Event interface that allows an app to * register as a handler of the `IRoomUserTyping` diff --git a/definition/rooms/IRoomUserTyping.js.map b/definition/rooms/IRoomUserTyping.js.map index 0595922e3..717b1385e 100644 --- a/definition/rooms/IRoomUserTyping.js.map +++ b/definition/rooms/IRoomUserTyping.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/definition/rooms/IRoomUserTyping.ts"],"names":[],"mappings":"","file":"IRoomUserTyping.js","sourcesContent":["import { IHttp, IPersistence, IRead } from '../accessors';\nimport { IRoomUserTypingContext } from './IRoomUserTypingContext';\n\n/**\n * Event interface that allows an app to\n * register as a handler of the `IRoomUserTyping`\n * event\n *\n * This event is triggered when user starts/stops typing\n *\n */\nexport interface IRoomUserTyping {\n executeOnRoomUserTyping(context: IRoomUserTypingContext, read: IRead, http: IHttp, persistence: IPersistence): Promise;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/definition/rooms/IRoomUserTyping.ts"],"names":[],"mappings":"","file":"IRoomUserTyping.js","sourcesContent":["import { IHttp, IPersistence, IRead, IModify } from \"../accessors\";\nimport { IRoomUserTypingContext } from \"./IRoomUserTypingContext\";\n\n/**\n * Event interface that allows an app to\n * register as a handler of the `IRoomUserTyping`\n * event\n *\n * This event is triggered when user starts/stops typing\n *\n */\nexport interface IRoomUserTyping {\n executeOnRoomUserTyping(\n context: IRoomUserTypingContext,\n read: IRead,\n http: IHttp,\n persistence: IPersistence,\n modify: IModify\n ): Promise;\n}\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3fe58caa4..9ad9c0242 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,9905 @@ { "name": "@rocket.chat/apps-engine", "version": "1.31.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@rocket.chat/apps-engine", + "version": "1.31.0", + "license": "MIT", + "dependencies": { + "adm-zip": "^0.4.9", + "cryptiles": "^4.1.3", + "lodash.clonedeep": "^4.5.0", + "semver": "^5.5.0", + "stack-trace": "0.0.10", + "uuid": "^3.2.1" + }, + "devDependencies": { + "@types/adm-zip": "^0.4.31", + "@types/lodash.clonedeep": "^4.5.3", + "@types/nedb": "^1.8.5", + "@types/node": "^12.7.12", + "@types/semver": "^5.5.0", + "@types/stack-trace": "0.0.29", + "@types/uuid": "^3.4.3", + "alsatian": "^2.2.1", + "browserify": "^16.5.0", + "del": "^3.0.0", + "eslint": "^4.19.1", + "gulp": "^4.0.2", + "gulp-bump": "^3.1.1", + "gulp-shell": "^0.6.5", + "gulp-sourcemaps": "^2.6.4", + "gulp-tslint": "^8.1.3", + "gulp-typescript": "^4.0.2", + "http-server": "^0.12.3", + "merge2": "^1.2.1", + "nedb": "^1.8.0", + "nyc": "^14.1.1", + "pre-push": "^0.1.1", + "tap-bark": "^1.0.0", + "ts-node": "^6.2.0", + "tslint": "^5.11.0", + "typedoc": "^0.20.11", + "typescript": "^4.3.4", + "uglify-es": "^3.3.9" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", + "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.7.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", + "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", + "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.7.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", + "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.7.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", + "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", + "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.0", + "@babel/helper-function-name": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", + "@babel/parser": "^7.7.0", + "@babel/types": "^7.7.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", + "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", + "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", + "dev": true, + "dependencies": { + "acorn": "^5.0.3", + "css": "^2.2.1", + "normalize-path": "^2.1.1", + "source-map": "^0.6.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@types/adm-zip": { + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.4.31.tgz", + "integrity": "sha1-ozdrn6j0xunAeMF20t8srreTneM=", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha512-mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.106", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz", + "integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA==", + "dev": true + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.3.tgz", + "integrity": "sha512-307uNXpe90TSLRCZM2ggGtdzKZ2h4v1tDMDsahYI4/CvWd1+VhAmRQ+WJyA+wLF6kLLUae9JhpdKyLAzRaW3Qw==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/nedb": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.5.tgz", + "integrity": "sha512-4x3IymcP2xjrDKwH/Q78h4tFdXthXOxc9LuUQJ3dCjD5U0VVauYUoH/Olmz8QqHqECiyEDxgfcVL8oaDqlD/Pw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.7.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz", + "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", + "dev": true + }, + "node_modules/@types/stack-trace": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz", + "integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.3.tgz", + "integrity": "sha512-5fRLCYhLtDb3hMWqQyH10qtF+Ud2JnNCXTCZ+9ktNdCcgslcuXkDTkFcJNk++MT29yDntDnlF1+jD+uVGumsbw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "dependencies": { + "acorn": "^3.0.4" + } + }, + "node_modules/acorn-jsx/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node/node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", + "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "peerDependencies": { + "ajv": "^5.0.0" + } + }, + "node_modules/alsatian": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/alsatian/-/alsatian-2.2.1.tgz", + "integrity": "sha1-B+qeiU7bnqmX7VcaZOFMyYsj0/g=", + "dev": true, + "dependencies": { + "@types/node": ">=4.0.0", + "extendo-error": "^1.0.1", + "glob": "^7.0.3", + "reflect-metadata": "^0.1.3", + "tap-bark": "1.0.0" + }, + "bin": { + "alsatian": "cli/alsatian-cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "dependencies": { + "default-require-extensions": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz", + "integrity": "sha1-ju8IJ/BN/w7IhXupJavj/qYZTlI=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "dependencies": { + "lodash": "^4.14.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-done/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base62": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "integrity": "sha1-e0F0wvlESXU7EcJlHAg9qEGnsIQ=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "node_modules/basic-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", + "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-search-tree": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", + "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", + "dev": true, + "dependencies": { + "underscore": "~1.4.4" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "node_modules/browserify": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz", + "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", + "dev": true, + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "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" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-des/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "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" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/browserify/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/bump-regex": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bump-regex/-/bump-regex-3.1.1.tgz", + "integrity": "sha512-NinFibU11G1ad/2Ji3J04lRC9mLpUGr3C0vtt4Yp049cDeW21NRkmUaZZc+snwlL6gE+Ja5cQfe/hf86Ahj+WQ==", + "dev": true, + "dependencies": { + "semver": "^5.1.0", + "xtend": "^4.0.1" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true + }, + "node_modules/caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "dev": true, + "dependencies": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "dependencies": { + "callsites": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "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" + } + }, + "node_modules/chokidar/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", + "dev": true + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "node_modules/cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/cloneable-readable/node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "node_modules/cloneable-readable/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "node_modules/cloneable-readable/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "dependencies": { + "color-name": "^1.1.1" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "node_modules/commander": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", + "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/copy-props/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cp-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "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" + } + }, + "node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/cryptiles": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.3.tgz", + "integrity": "sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw==", + "deprecated": "This module has moved and is now available at @hapi/cryptiles. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.", + "dependencies": { + "boom": "7.x.x" + } + }, + "node_modules/cryptiles/node_modules/boom": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.3.0.tgz", + "integrity": "sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==", + "deprecated": "This module has moved and is now available at @hapi/boom. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.", + "dependencies": { + "hoek": "6.x.x" + } + }, + "node_modules/cryptiles/node_modules/hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==", + "deprecated": "This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues." + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css/node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css/node_modules/source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "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" + } + }, + "node_modules/css/node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.9" + } + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-compare/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "dependencies": { + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "dependencies": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/detective/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexify": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/ecstatic": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", + "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", + "deprecated": "This package is unmaintained and deprecated. See the GH Issue 259.", + "dev": true, + "dependencies": { + "he": "^1.1.1", + "mime": "^1.6.0", + "minimist": "^1.1.0", + "url-join": "^2.0.5" + }, + "bin": { + "ecstatic": "lib/ecstatic.js" + } + }, + "node_modules/ecstatic/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/elliptic/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es3ify": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/es3ify/-/es3ify-0.1.4.tgz", + "integrity": "sha1-rZ+l3xrjTz8x4SEbWBiy1RB439E=", + "dev": true, + "dependencies": { + "esprima-fb": "~3001.0001.0000-dev-harmony-fb", + "jstransform": "~3.0.0", + "through": "~2.3.4" + } + }, + "node_modules/es3ify/node_modules/esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/es5-ext": { + "version": "0.10.42", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", + "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "dependencies": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esmangle-evaluator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz", + "integrity": "sha1-Yg2GbvSGGzMR91dm1SqFcrs8YzY=", + "dev": true + }, + "node_modules/espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "dependencies": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "dependencies": { + "estraverse": "^4.0.0" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "dependencies": { + "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", + "dev": true + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "dependencies": { + "kind-of": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extendo-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/extendo-error/-/extendo-error-1.0.1.tgz", + "integrity": "sha1-MDJeDPbC+l+RAj0hAO0CGCbmMX0=", + "dev": true + }, + "node_modules/external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "dependencies": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/falafel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", + "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", + "dev": true, + "dependencies": { + "acorn": "^1.0.3", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/acorn": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "dependencies": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "dependencies": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat-cache/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat-cache/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "node_modules/foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "dependencies": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "node_modules/foreground-child/node_modules/cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-extra/node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz", + "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-bump": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/gulp-bump/-/gulp-bump-3.1.1.tgz", + "integrity": "sha512-4lVWz2L/8G2lYBjYGzql2BiVIa1Mml03YcHQc1pERk8jH/8nZbrdQ8dHABDnAcBNP4rKAh9AVycjNJ4/4AHkwQ==", + "dev": true, + "dependencies": { + "bump-regex": "^3.1.1", + "plugin-error": "^0.1.2", + "plugin-log": "^0.1.0", + "semver": "^5.3.0", + "through2": "^2.0.1" + }, + "engines": { + "node": ">= 0.9.0" + } + }, + "node_modules/gulp-shell": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.6.5.tgz", + "integrity": "sha512-f3m1WcS0o2B72/PGj1Jbv9zYR9rynBh/EQJv64n01xQUo7j7anols0eww9GG/WtDTzGVQLrupVDYkifRFnj5Zg==", + "dev": true, + "dependencies": { + "async": "^2.1.5", + "chalk": "^2.3.0", + "fancy-log": "^1.3.2", + "lodash": "^4.17.4", + "lodash.template": "^4.4.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.3" + }, + "engines": { + "node": ">=4.8.0 <5.0.0 || >=5.7.0" + } + }, + "node_modules/gulp-shell/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-shell/node_modules/chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-shell/node_modules/fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-shell/node_modules/supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.4.tgz", + "integrity": "sha1-y7IAhFCxvM5s0jv5gze+dRv24wo=", + "dev": true, + "dependencies": { + "@gulp-sourcemaps/identity-map": "1.X", + "@gulp-sourcemaps/map-sources": "1.X", + "acorn": "5.X", + "convert-source-map": "1.X", + "css": "2.X", + "debug-fabulous": "1.X", + "detect-newline": "2.X", + "graceful-fs": "4.X", + "source-map": "~0.6.0", + "strip-bom-string": "1.X", + "through2": "2.X" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sourcemaps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/gulp-tslint/-/gulp-tslint-8.1.3.tgz", + "integrity": "sha512-KEP350N5B9Jg6o6jnyCyKVBPemJePYpMsGfIQq0G0ErvY7tw4Lrfb/y3L4WRf7ek0OsaE8nnj86w+lcLXW8ovw==", + "dev": true, + "dependencies": { + "@types/fancy-log": "1.3.0", + "chalk": "2.3.1", + "fancy-log": "1.3.2", + "map-stream": "~0.0.7", + "plugin-error": "1.0.1", + "through": "~2.3.8" + }, + "engines": { + "node": ">= 4" + }, + "peerDependencies": { + "tslint": ">=5.0.0-dev" + } + }, + "node_modules/gulp-tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-tslint/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint/node_modules/chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-tslint/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint/node_modules/fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-tslint/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-tslint/node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-tslint/node_modules/supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-4.0.2.tgz", + "integrity": "sha512-Hhbn5Aa2l3T+tnn0KqsG6RRJmcYEsr3byTL2nBpNBeAK8pqug9Od4AwddU4JEI+hRw7mzZyjRbB8DDWR6paGVA==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "plugin-error": "^0.1.2", + "source-map": "^0.6.1", + "through2": "^2.0.3", + "vinyl": "^2.1.0", + "vinyl-fs": "^3.0.0" + }, + "peerDependencies": { + "typescript": "~2.7.1 || >=2.8.0-dev || >=2.9.0-dev" + } + }, + "node_modules/gulp-typescript/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/gulp-typescript/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "node_modules/gulp-typescript/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/gulp-typescript/node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-typescript/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-typescript/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-typescript/node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/gulp-typescript/node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-typescript/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-typescript/node_modules/unique-stream": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "dev": true, + "dependencies": { + "json-stable-stringify": "^1.0.0", + "through2-filter": "^2.0.0" + } + }, + "node_modules/gulp-typescript/node_modules/vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-typescript/node_modules/vinyl-fs": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.2.tgz", + "integrity": "sha512-AUSFda1OukBwuLPBTbyuO4IRWgfXmqC4UTW0f8xrCa8Hkv9oyIU+NSqBlgfOLZRoUt7cHdo75hKQghCywpIyIw==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/gulp/node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp/node_modules/yargs": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "5.0.0-security.0" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "dev": true, + "dependencies": { + "is-stream": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-server": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", + "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", + "dev": true, + "dependencies": { + "basic-auth": "^1.0.3", + "colors": "^1.4.0", + "corser": "^2.0.1", + "ecstatic": "^3.3.2", + "http-proxy": "^1.18.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.25", + "secure-compare": "3.0.1", + "union": "~0.5.0" + }, + "bin": { + "hs": "bin/http-server", + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/http-server/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "dev": true, + "dependencies": { + "safer-buffer": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "node_modules/ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inline-process-browser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/inline-process-browser/-/inline-process-browser-1.0.0.tgz", + "integrity": "sha1-RqYbFT3TybFiSxoAYm7bT39BTyI=", + "dev": true, + "dependencies": { + "falafel": "^1.0.1", + "through2": "^0.6.5" + } + }, + "node_modules/inline-process-browser/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/inline-process-browser/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/inline-process-browser/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/inline-process-browser/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "deprecated": "This version of 'is-buffer' is out-of-date. You must update to v1.1.6 or newer", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "dev": true, + "dependencies": { + "append-transform": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "dev": true, + "dependencies": { + "handlebars": "^4.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jstransform": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz", + "integrity": "sha1-olkats7o2XvzvoMNv6IxO4fNZAs=", + "dev": true, + "dependencies": { + "base62": "0.1.1", + "esprima-fb": "~3001.1.0-dev-harmony-fb", + "source-map": "0.1.31" + }, + "engines": { + "node": ">=0.8.8" + } + }, + "node_modules/jstransform/node_modules/esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jstransform/node_modules/source-map": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "integrity": "sha1-n3BNDWnZ4TioG63267T94z0VHGE=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.0.2.tgz", + "integrity": "sha1-/9oh17uibzd8rYZdNkmy/Izjn+o=", + "dev": true, + "dependencies": { + "es3ify": "^0.1.3", + "immediate": "~3.0.5", + "inline-process-browser": "^1.0.0", + "unreachable-branch-transform": "^0.3.0" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/localforage": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.5.0.tgz", + "integrity": "sha1-a5lOGbVmEfqF3zmS3zl6xKtm6BU=", + "dev": true, + "dependencies": { + "lie": "3.0.2" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.7.tgz", + "integrity": "sha512-No11hFYcXr/zkBvL6qFmAp1z6BKY3zqLMHny/JN/ey+al7qwCM2+CMBL9BOgqMxZU36fz4cCWfn2poWIf7QRXA==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/md5.js/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/memoizee": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.12.tgz", + "integrity": "sha512-sprBu6nwxBWBvBOh5v2jcsGqiGLlL2xr2dLub3vR8dnE8YB17omwtm/0NSHl8jjNbcsJd5GMWJAnTSVe/O0Wfg==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.30", + "es6-weak-map": "^2.0.2", + "event-emitter": "^0.3.5", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "^0.1.2" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz", + "integrity": "sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g==", + "dev": true + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/module-deps": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", + "dev": true, + "dependencies": { + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/module-deps/node_modules/resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/nedb": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz", + "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=", + "dev": true, + "dependencies": { + "async": "0.2.10", + "binary-search-tree": "0.2.5", + "localforage": "^1.3.0", + "mkdirp": "~0.5.1", + "underscore": "~1.4.4" + } + }, + "node_modules/nedb/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "node_modules/nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", + "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "dev": true, + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "caching-transform": "^3.0.2", + "convert-source-map": "^1.6.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.2.3", + "uuid": "^3.3.2", + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/nyc/node_modules/uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/onigasm": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", + "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", + "dev": true, + "dependencies": { + "lru-cache": "^5.1.1" + } + }, + "node_modules/onigasm/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/onigasm/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz", + "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash/node_modules/graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "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" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "dependencies": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-log": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/plugin-log/-/plugin-log-0.1.0.tgz", + "integrity": "sha1-hgSc9qsQgzOYqTHzaJy67nteEzM=", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "dateformat": "^1.0.11" + }, + "engines": { + "node": ">= 0.9.0" + } + }, + "node_modules/plugin-log/node_modules/dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + }, + "bin": { + "dateformat": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pre-push": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pre-push/-/pre-push-0.1.1.tgz", + "integrity": "sha1-Kip5gn0kOnbJEImJescH9F5xaqw=", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "shelljs": "0.3.x" + } + }, + "node_modules/pre-push/node_modules/shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "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" + } + }, + "node_modules/public-encrypt/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pump/node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/pumpify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", + "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "dev": true, + "dependencies": { + "duplexify": "^3.5.3", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/recast": { + "version": "0.10.43", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz", + "integrity": "sha1-uV1Q9tYHYaX2JS4V2AZ4FoSRzn8=", + "dev": true, + "dependencies": { + "ast-types": "0.8.15", + "esprima-fb": "~15001.1001.0-dev-harmony-fb", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/recast/node_modules/esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "dev": true + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-homedir/node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "dependencies": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true, + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "dependencies": { + "is-promise": "^2.1.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "node_modules/rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "dependencies": { + "rx-lite": "*" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", + "dev": true + }, + "node_modules/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "dev": true, + "dependencies": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shasum/node_modules/json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "dev": true, + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "node_modules/shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shiki": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.2.7.tgz", + "integrity": "sha512-bwVc7cdtYYHEO9O+XJ8aNOskKRfaQd5Y4ovLRfbQkmiLSUaR+bdlssbZUUhbQ0JAFMYcTcJ5tjG5KtnufttDHQ==", + "dev": true, + "dependencies": { + "onigasm": "^2.2.5", + "shiki-languages": "^0.2.7", + "shiki-themes": "^0.2.7", + "vscode-textmate": "^5.2.0" + } + }, + "node_modules/shiki-languages": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/shiki-languages/-/shiki-languages-0.2.7.tgz", + "integrity": "sha512-REmakh7pn2jCn9GDMRSK36oDgqhh+rSvJPo77sdWTOmk44C5b0XlYPwJZcFOMJWUZJE0c7FCbKclw4FLwUKLRw==", + "dev": true, + "dependencies": { + "vscode-textmate": "^5.2.0" + } + }, + "node_modules/shiki-themes": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/shiki-themes/-/shiki-themes-0.2.7.tgz", + "integrity": "sha512-ZMmboDYw5+SEpugM8KGUq3tkZ0vXg+k60XX6NngDK7gc1Sv6YLUlanpvG3evm57uKJvfXsky/S5MzSOTtYKLjA==", + "dev": true, + "dependencies": { + "json5": "^2.1.0", + "vscode-textmate": "^5.2.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spawn-wrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", + "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "dev": true, + "dependencies": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "node_modules/spawn-wrap/node_modules/glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/spawn-wrap/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/spawn-wrap/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "node_modules/stream-http": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.0.tgz", + "integrity": "sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^3.0.6", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-http/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/stream-http/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/subarg/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "dependencies": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tap-bark": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tap-bark/-/tap-bark-1.0.0.tgz", + "integrity": "sha1-bAPcUWh/7Xh3+COtSx3dHvXrVnQ=", + "dev": true, + "dependencies": { + "@types/node": ">=0.0.2", + "chalk": "^1.1.3", + "duplexer": "^0.1.1", + "tap-parser": "^3.0.3", + "through2": "^2.0.1" + }, + "bin": { + "tap-bark": "index.js" + } + }, + "node_modules/tap-parser": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-3.0.5.tgz", + "integrity": "sha1-uUf2ngs+U9S5IBH2zFUuFtrcfsk=", + "dev": true, + "dependencies": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7" + }, + "bin": { + "tap-parser": "bin/cmd.js" + }, + "optionalDependencies": { + "readable-stream": "^2" + } + }, + "node_modules/test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/test-exclude/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/test-exclude/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/test-exclude/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/test-exclude/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/test-exclude/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/test-exclude/node_modules/read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/test-exclude/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", + "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.14", + "next-tick": "1" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob/node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob/node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob/node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob/node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-node": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-6.2.0.tgz", + "integrity": "sha512-ZNT+OEGfUNVMGkpIaDJJ44Zq3Yr0bkU/ugN1PHbU+/01Z7UV1fsELRiTx1KuQNvQ1A3pGh3y25iYF6jXgxV21A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-node/node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/ts-node/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "node_modules/tslint": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", + "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev" + } + }, + "node_modules/tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedoc": { + "version": "0.20.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.11.tgz", + "integrity": "sha512-sGHLq9bPuaAFPQUW1sdMZYWrw2+QhpAQV48Z13J6ptK/mDZy231B1WwGgzXOsnEBIuZyL9BIsoMjPfn3KCq7Tg==", + "dev": true, + "dependencies": { + "colors": "^1.4.0", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "lodash": "^4.17.20", + "lunr": "^2.3.9", + "marked": "^1.2.5", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shelljs": "^0.8.4", + "shiki": "^0.2.7", + "typedoc-default-themes": "0.12.0" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 10.8.0" + }, + "peerDependencies": { + "typescript": "3.9.x || 4.0.x || 4.1.x" + } + }, + "node_modules/typedoc-default-themes": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.0.tgz", + "integrity": "sha512-0hHBxwmfxE0rkIslOiO39fJyYwaScQEhUIxcpqx3uS1BL3zhFW5oQfUaPx2cv2XLL/GXhYFxhdFLoVmNptbxEQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typedoc/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/typedoc/node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/typescript": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dev": true, + "dependencies": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-es/node_modules/commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "node_modules/uglify-es/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js": { + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.3.tgz", + "integrity": "sha512-Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "dev": true + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker/node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/unique-stream/node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unreachable-branch-transform": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz", + "integrity": "sha1-2ZzExudG0mSSiEW2EdtUsPNHTKo=", + "dev": true, + "dependencies": { + "esmangle-evaluator": "^1.0.0", + "recast": "^0.10.1", + "through2": "^0.6.2" + } + }, + "node_modules/unreachable-branch-transform/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/unreachable-branch-transform/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/unreachable-branch-transform/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/unreachable-branch-transform/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", + "dev": true + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/vinyl-sourcemap/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "node_modules/vinyl-sourcemap/node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/yargs/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/yargs/node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true, + "engines": { + "node": ">=4" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.5.5", @@ -258,16 +10155,6 @@ "@types/node": "*" } }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { "version": "5.7.4", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", @@ -343,7 +10230,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true + "dev": true, + "requires": {} }, "alsatian": { "version": "2.2.1", @@ -903,9 +10791,9 @@ "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, "requires": { - "JSONStream": "^1.0.3", "combine-source-map": "~0.8.0", "defined": "^1.0.0", + "JSONStream": "^1.0.3", "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" @@ -934,7 +10822,6 @@ "integrity": "sha512-EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==", "dev": true, "requires": { - "JSONStream": "^1.0.3", "assert": "^1.4.0", "browser-pack": "^6.0.1", "browser-resolve": "^1.11.0", @@ -956,6 +10843,7 @@ "https-browserify": "^1.0.0", "inherits": "~2.0.1", "insert-module-globals": "^7.0.0", + "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", "mkdirp-classic": "^0.5.2", "module-deps": "^6.0.0", @@ -3225,14 +13113,6 @@ "time-stamp": "^1.0.0" } }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, "supports-color": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", @@ -3921,11 +13801,11 @@ "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", "dev": true, "requires": { - "JSONStream": "^1.0.3", "acorn-node": "^1.5.2", "combine-source-map": "^0.8.0", "concat-stream": "^1.6.1", "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", "path-is-absolute": "^1.0.1", "process": "~0.11.0", "through2": "^2.0.0", @@ -4444,6 +14324,16 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jstransform": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz", @@ -4635,7 +14525,8 @@ "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true }, "lodash.clonedeep": { "version": "4.5.0", @@ -5050,7 +14941,6 @@ "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", "dev": true, "requires": { - "JSONStream": "^1.0.3", "browser-resolve": "^1.7.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", @@ -5058,6 +14948,7 @@ "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", + "JSONStream": "^1.0.3", "parents": "^1.0.0", "readable-stream": "^2.0.2", "resolve": "^1.4.0", @@ -6971,6 +16862,15 @@ "readable-stream": "^2.0.2" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -6998,15 +16898,6 @@ } } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/server/managers/AppListenerManager.js b/server/managers/AppListenerManager.js index 8e5d0f73f..eb9102f38 100644 --- a/server/managers/AppListenerManager.js +++ b/server/managers/AppListenerManager.js @@ -516,7 +516,7 @@ class AppListenerManager { for (const appId of this.listeners.get(metadata_1.AppInterface.IRoomUserTyping)) { const app = this.manager.getOneById(appId); if (app.hasMethod(metadata_1.AppMethod.EXECUTE_ON_ROOM_USER_TYPING)) { - yield app.call(metadata_1.AppMethod.EXECUTE_ON_ROOM_USER_TYPING, data, this.am.getReader(appId), this.am.getHttp(appId), this.am.getPersistence(appId)); + yield app.call(metadata_1.AppMethod.EXECUTE_ON_ROOM_USER_TYPING, data, this.am.getReader(appId), this.am.getHttp(appId), this.am.getPersistence(appId), this.am.getModifier(appId)); } } }); diff --git a/server/managers/AppListenerManager.js.map b/server/managers/AppListenerManager.js.map index 7d328c3cb..313762d49 100644 --- a/server/managers/AppListenerManager.js.map +++ b/server/managers/AppListenerManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/managers/AppListenerManager.ts"],"names":[],"mappings":"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","file":"AppListenerManager.js","sourcesContent":["import { IEmailDescriptor, IPreEmailSentContext } from '../../definition/email';\nimport { EssentialAppDisabledException } from '../../definition/exceptions';\nimport { IExternalComponent } from '../../definition/externalComponent';\nimport { ILivechatEventContext, ILivechatRoom, ILivechatTransferEventContext, IVisitor } from '../../definition/livechat';\nimport { IMessage } from '../../definition/messages';\nimport { AppInterface, AppMethod } from '../../definition/metadata';\nimport { IRoom, IRoomUserJoinedContext, IRoomUserLeaveContext, IRoomUserTypingContext } from '../../definition/rooms';\nimport { UIActionButtonContext } from '../../definition/ui';\nimport { IUIKitIncomingInteraction, IUIKitResponse, IUIKitSurface, UIKitIncomingInteractionType } from '../../definition/uikit';\nimport { IUIKitLivechatIncomingInteraction, UIKitLivechatBlockInteractionContext } from '../../definition/uikit/livechat';\nimport { IUIKitIncomingInteractionMessageContainer, IUIKitIncomingInteractionModalContainer } from '../../definition/uikit/UIKitIncomingInteractionContainer';\nimport {\n UIKitActionButtonInteractionContext,\n UIKitBlockInteractionContext,\n UIKitViewCloseInteractionContext,\n UIKitViewSubmitInteractionContext,\n} from '../../definition/uikit/UIKitInteractionContext';\nimport { IFileUploadContext } from '../../definition/uploads/IFileUploadContext';\nimport { IUser } from '../../definition/users';\nimport { MessageBuilder, MessageExtender, RoomBuilder, RoomExtender } from '../accessors';\nimport { AppManager } from '../AppManager';\nimport { Message } from '../messages/Message';\nimport { Utilities } from '../misc/Utilities';\nimport { ProxiedApp } from '../ProxiedApp';\nimport { Room } from '../rooms/Room';\nimport { AppAccessorManager } from './AppAccessorManager';\n\ntype EventData = (\n IMessage |\n IRoom |\n IUser |\n IVisitor |\n ILivechatRoom |\n IUIKitIncomingInteraction |\n IUIKitLivechatIncomingInteraction |\n IExternalComponent |\n ILivechatEventContext |\n IRoomUserJoinedContext |\n IRoomUserLeaveContext |\n ILivechatTransferEventContext |\n IFileUploadContext |\n IPreEmailSentContext |\n IRoomUserTypingContext\n);\n\ntype EventReturn = (\n void |\n boolean |\n IMessage |\n IRoom |\n IUser |\n IUIKitResponse |\n ILivechatRoom |\n IEmailDescriptor\n);\n\nexport class AppListenerManager {\n private am: AppAccessorManager;\n private listeners: Map>;\n /**\n * Locked events are those who are listed in an app's\n * \"essentials\" list but the app is disabled.\n *\n * They will throw a EssentialAppDisabledException upon call\n */\n private lockedEvents: Map>;\n\n constructor(private readonly manager: AppManager) {\n this.am = manager.getAccessorManager();\n this.listeners = new Map>();\n this.lockedEvents = new Map>();\n\n Object.keys(AppInterface).forEach((intt) => {\n this.listeners.set(intt, new Array());\n this.lockedEvents.set(intt, new Set());\n });\n }\n\n public registerListeners(app: ProxiedApp): void {\n this.unregisterListeners(app);\n\n Object.entries(app.getImplementationList()).forEach(([event, isImplemented]) => {\n if (!isImplemented) {\n return;\n }\n\n this.listeners.get(event).push(app.getID());\n });\n }\n\n public unregisterListeners(app: ProxiedApp): void {\n this.listeners.forEach((apps, int) => {\n if (apps.includes(app.getID())) {\n const where = apps.indexOf(app.getID());\n this.listeners.get(int).splice(where, 1);\n }\n });\n }\n\n public releaseEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.delete(app.getID());\n });\n }\n\n public lockEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.add(app.getID());\n });\n }\n\n public getListeners(int: AppInterface): Array {\n const results = new Array();\n\n for (const appId of this.listeners.get(int)) {\n results.push(this.manager.getOneById(appId));\n }\n\n return results;\n }\n\n public isEventBlocked(event: AppInterface): boolean {\n const lockedEventList = this.lockedEvents.get(event);\n\n return !!(lockedEventList && lockedEventList.size);\n }\n\n public async executeListener(int: AppInterface, data: EventData): Promise {\n if (this.isEventBlocked(int)) {\n throw new EssentialAppDisabledException('There is one or more apps that are essential to this event but are disabled');\n }\n\n switch (int) {\n // Messages\n case AppInterface.IPreMessageSentPrevent:\n return this.executePreMessageSentPrevent(data as IMessage);\n case AppInterface.IPreMessageSentExtend:\n return this.executePreMessageSentExtend(data as IMessage);\n case AppInterface.IPreMessageSentModify:\n return this.executePreMessageSentModify(data as IMessage);\n case AppInterface.IPostMessageSent:\n this.executePostMessageSent(data as IMessage);\n return;\n case AppInterface.IPreMessageDeletePrevent:\n return this.executePreMessageDeletePrevent(data as IMessage);\n case AppInterface.IPostMessageDeleted:\n this.executePostMessageDelete(data as IMessage);\n return;\n case AppInterface.IPreMessageUpdatedPrevent:\n return this.executePreMessageUpdatedPrevent(data as IMessage);\n case AppInterface.IPreMessageUpdatedExtend:\n return this.executePreMessageUpdatedExtend(data as IMessage);\n case AppInterface.IPreMessageUpdatedModify:\n return this.executePreMessageUpdatedModify(data as IMessage);\n case AppInterface.IPostMessageUpdated:\n this.executePostMessageUpdated(data as IMessage);\n return;\n // Rooms\n case AppInterface.IPreRoomCreatePrevent:\n return this.executePreRoomCreatePrevent(data as IRoom);\n case AppInterface.IPreRoomCreateExtend:\n return this.executePreRoomCreateExtend(data as IRoom);\n case AppInterface.IPreRoomCreateModify:\n return this.executePreRoomCreateModify(data as IRoom);\n case AppInterface.IPostRoomCreate:\n this.executePostRoomCreate(data as IRoom);\n return;\n case AppInterface.IPreRoomDeletePrevent:\n return this.executePreRoomDeletePrevent(data as IRoom);\n case AppInterface.IPostRoomDeleted:\n this.executePostRoomDeleted(data as IRoom);\n return;\n case AppInterface.IPreRoomUserJoined:\n return this.executePreRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPostRoomUserJoined:\n return this.executePostRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPreRoomUserLeave:\n return this.executePreRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IPostRoomUserLeave:\n return this.executePostRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IRoomUserTyping:\n return this.executeOnRoomUserTyping(data as IRoomUserTypingContext);\n // External Components\n case AppInterface.IPostExternalComponentOpened:\n this.executePostExternalComponentOpened(data as IExternalComponent);\n return;\n case AppInterface.IPostExternalComponentClosed:\n this.executePostExternalComponentClosed(data as IExternalComponent);\n return;\n case AppInterface.IUIKitInteractionHandler:\n return this.executeUIKitInteraction(data as IUIKitIncomingInteraction);\n case AppInterface.IUIKitLivechatInteractionHandler:\n return this.executeUIKitLivechatInteraction(data as IUIKitLivechatIncomingInteraction);\n // Livechat\n case AppInterface.IPostLivechatRoomStarted:\n return this.executePostLivechatRoomStarted(data as ILivechatRoom);\n /**\n * @deprecated please prefer the AppInterface.IPostLivechatRoomClosed event\n */\n case AppInterface.ILivechatRoomClosedHandler:\n return this.executeLivechatRoomClosedHandler(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomClosed:\n return this.executePostLivechatRoomClosed(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomSaved:\n return this.executePostLivechatRoomSaved(data as ILivechatRoom);\n case AppInterface.IPostLivechatAgentAssigned:\n return this.executePostLivechatAgentAssigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatAgentUnassigned:\n return this.executePostLivechatAgentUnassigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatRoomTransferred:\n return this.executePostLivechatRoomTransferred(data as ILivechatTransferEventContext);\n case AppInterface.IPostLivechatGuestSaved:\n return this.executePostLivechatGuestSaved(data as IVisitor);\n // FileUpload\n case AppInterface.IPreFileUpload:\n return this.executePreFileUpload(data as IFileUploadContext);\n // Email\n case AppInterface.IPreEmailSent:\n return this.executePreEmailSent(data as IPreEmailSentContext);\n default:\n console.warn('An invalid listener was called');\n return;\n }\n }\n\n // Messages\n private async executePreMessageSentPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageSentExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGESENTEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageSentModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGESENTMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageSent(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageSent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGESENT)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGESENT)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageDeletePrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostMessageDelete(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageUpdatedPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageUpdatedExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageUpdatedModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageUpdated(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageUpdated)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEUPDATED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEUPDATED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // Rooms\n private async executePreRoomCreatePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreatePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreRoomCreateExtend(data: IRoom): Promise {\n const room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEEXTEND,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEEXTEND)) {\n await app.call(AppMethod.EXECUTEPREROOMCREATEEXTEND,\n cfRoom,\n new RoomExtender(room), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return data;\n }\n\n private async executePreRoomCreateModify(data: IRoom): Promise {\n let room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEMODIFY,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEMODIFY)) {\n room = await app.call(AppMethod.EXECUTEPREROOMCREATEMODIFY,\n cfRoom,\n new RoomBuilder(room),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IRoom;\n }\n }\n\n return data;\n }\n\n private async executePostRoomCreate(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomCreate)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMCREATE)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMCREATE)) {\n await app.call(AppMethod.EXECUTEPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomDeletePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostRoomDeleted(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n private async executeOnRoomUserTyping(externalData: IRoomUserTypingContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n Utilities.deepFreeze(data.roomId);\n Utilities.deepFreeze(data.typing);\n Utilities.deepFreeze(data.username);\n\n for (const appId of this.listeners.get(AppInterface.IRoomUserTyping)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_ON_ROOM_USER_TYPING)) {\n await app.call(AppMethod.EXECUTE_ON_ROOM_USER_TYPING,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // External Components\n private async executePostExternalComponentOpened(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentOpened)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostExternalComponentClosed(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executeUIKitInteraction(data: IUIKitIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_BLOCK_ACTION;\n case UIKitIncomingInteractionType.VIEW_SUBMIT:\n return AppMethod.UIKIT_VIEW_SUBMIT;\n case UIKitIncomingInteractionType.VIEW_CLOSED:\n return AppMethod.UIKIT_VIEW_CLOSE;\n case UIKitIncomingInteractionType.ACTION_BUTTON:\n return AppMethod.UIKIT_ACTION_BUTTON;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app?.hasMethod(method)) {\n console.warn(`App ${appId} triggered an interaction but it doen't exist or doesn't have method ${method}`);\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitIncomingInteraction) => {\n const {\n actionId,\n message,\n user,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitBlockInteractionContext({\n appId,\n actionId,\n blockId,\n user,\n room,\n triggerId,\n value,\n message,\n container,\n });\n }\n case UIKitIncomingInteractionType.VIEW_SUBMIT: {\n const { view } = interactionData.payload as { view: IUIKitSurface };\n\n return new UIKitViewSubmitInteractionContext({\n appId,\n actionId,\n view,\n room,\n triggerId,\n user,\n });\n }\n case UIKitIncomingInteractionType.VIEW_CLOSED: {\n const { view, isCleared } = interactionData.payload as { view: IUIKitSurface, isCleared: boolean };\n\n return new UIKitViewCloseInteractionContext({\n appId,\n actionId,\n view,\n room,\n isCleared,\n user,\n });\n }\n case UIKitIncomingInteractionType.ACTION_BUTTON: {\n const { context: buttonContext } = interactionData.payload as { context: UIActionButtonContext };\n\n return new UIKitActionButtonInteractionContext({\n appId,\n actionId,\n buttonContext,\n room,\n triggerId,\n user,\n message,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n\n private async executeUIKitLivechatInteraction(data: IUIKitLivechatIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_LIVECHAT_BLOCK_ACTION;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app.hasMethod(method)) {\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitLivechatIncomingInteraction) => {\n const {\n actionId,\n message,\n visitor,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitLivechatBlockInteractionContext({\n appId,\n actionId,\n blockId,\n visitor,\n room,\n triggerId,\n value,\n message,\n container: container as IUIKitIncomingInteractionModalContainer | IUIKitIncomingInteractionMessageContainer,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n // Livechat\n private async executePostLivechatRoomStarted(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomStarted)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executeLivechatRoomClosedHandler(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.ILivechatRoomClosedHandler)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomClosed(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentAssigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentAssigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentUnassigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentUnassigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomTransferred(data: ILivechatTransferEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomTransferred)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatGuestSaved(data: IVisitor): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatGuestSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomSaved(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n // FileUpload\n private async executePreFileUpload(data: IFileUploadContext): Promise {\n const context = Object.freeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPreFileUpload)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_FILE_UPLOAD)) {\n await app.call(AppMethod.EXECUTE_PRE_FILE_UPLOAD,\n context,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreEmailSent(data: IPreEmailSentContext): Promise {\n let descriptor = data.email;\n\n for (const appId of this.listeners.get(AppInterface.IPreEmailSent)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_EMAIL_SENT)) {\n descriptor = await app.call(AppMethod.EXECUTE_PRE_EMAIL_SENT,\n {\n context: data.context,\n email: descriptor,\n },\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n return descriptor;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/managers/AppListenerManager.ts"],"names":[],"mappings":"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","file":"AppListenerManager.js","sourcesContent":["import { IEmailDescriptor, IPreEmailSentContext } from '../../definition/email';\nimport { EssentialAppDisabledException } from '../../definition/exceptions';\nimport { IExternalComponent } from '../../definition/externalComponent';\nimport { ILivechatEventContext, ILivechatRoom, ILivechatTransferEventContext, IVisitor } from '../../definition/livechat';\nimport { IMessage } from '../../definition/messages';\nimport { AppInterface, AppMethod } from '../../definition/metadata';\nimport { IRoom, IRoomUserJoinedContext, IRoomUserLeaveContext, IRoomUserTypingContext } from '../../definition/rooms';\nimport { UIActionButtonContext } from '../../definition/ui';\nimport { IUIKitIncomingInteraction, IUIKitResponse, IUIKitSurface, UIKitIncomingInteractionType } from '../../definition/uikit';\nimport { IUIKitLivechatIncomingInteraction, UIKitLivechatBlockInteractionContext } from '../../definition/uikit/livechat';\nimport { IUIKitIncomingInteractionMessageContainer, IUIKitIncomingInteractionModalContainer } from '../../definition/uikit/UIKitIncomingInteractionContainer';\nimport {\n UIKitActionButtonInteractionContext,\n UIKitBlockInteractionContext,\n UIKitViewCloseInteractionContext,\n UIKitViewSubmitInteractionContext,\n} from '../../definition/uikit/UIKitInteractionContext';\nimport { IFileUploadContext } from '../../definition/uploads/IFileUploadContext';\nimport { IUser } from '../../definition/users';\nimport { MessageBuilder, MessageExtender, RoomBuilder, RoomExtender } from '../accessors';\nimport { AppManager } from '../AppManager';\nimport { Message } from '../messages/Message';\nimport { Utilities } from '../misc/Utilities';\nimport { ProxiedApp } from '../ProxiedApp';\nimport { Room } from '../rooms/Room';\nimport { AppAccessorManager } from './AppAccessorManager';\n\ntype EventData = (\n IMessage |\n IRoom |\n IUser |\n IVisitor |\n ILivechatRoom |\n IUIKitIncomingInteraction |\n IUIKitLivechatIncomingInteraction |\n IExternalComponent |\n ILivechatEventContext |\n IRoomUserJoinedContext |\n IRoomUserLeaveContext |\n ILivechatTransferEventContext |\n IFileUploadContext |\n IPreEmailSentContext |\n IRoomUserTypingContext\n);\n\ntype EventReturn = (\n void |\n boolean |\n IMessage |\n IRoom |\n IUser |\n IUIKitResponse |\n ILivechatRoom |\n IEmailDescriptor\n);\n\nexport class AppListenerManager {\n private am: AppAccessorManager;\n private listeners: Map>;\n /**\n * Locked events are those who are listed in an app's\n * \"essentials\" list but the app is disabled.\n *\n * They will throw a EssentialAppDisabledException upon call\n */\n private lockedEvents: Map>;\n\n constructor(private readonly manager: AppManager) {\n this.am = manager.getAccessorManager();\n this.listeners = new Map>();\n this.lockedEvents = new Map>();\n\n Object.keys(AppInterface).forEach((intt) => {\n this.listeners.set(intt, new Array());\n this.lockedEvents.set(intt, new Set());\n });\n }\n\n public registerListeners(app: ProxiedApp): void {\n this.unregisterListeners(app);\n\n Object.entries(app.getImplementationList()).forEach(([event, isImplemented]) => {\n if (!isImplemented) {\n return;\n }\n\n this.listeners.get(event).push(app.getID());\n });\n }\n\n public unregisterListeners(app: ProxiedApp): void {\n this.listeners.forEach((apps, int) => {\n if (apps.includes(app.getID())) {\n const where = apps.indexOf(app.getID());\n this.listeners.get(int).splice(where, 1);\n }\n });\n }\n\n public releaseEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.delete(app.getID());\n });\n }\n\n public lockEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.add(app.getID());\n });\n }\n\n public getListeners(int: AppInterface): Array {\n const results = new Array();\n\n for (const appId of this.listeners.get(int)) {\n results.push(this.manager.getOneById(appId));\n }\n\n return results;\n }\n\n public isEventBlocked(event: AppInterface): boolean {\n const lockedEventList = this.lockedEvents.get(event);\n\n return !!(lockedEventList && lockedEventList.size);\n }\n\n public async executeListener(int: AppInterface, data: EventData): Promise {\n if (this.isEventBlocked(int)) {\n throw new EssentialAppDisabledException('There is one or more apps that are essential to this event but are disabled');\n }\n\n switch (int) {\n // Messages\n case AppInterface.IPreMessageSentPrevent:\n return this.executePreMessageSentPrevent(data as IMessage);\n case AppInterface.IPreMessageSentExtend:\n return this.executePreMessageSentExtend(data as IMessage);\n case AppInterface.IPreMessageSentModify:\n return this.executePreMessageSentModify(data as IMessage);\n case AppInterface.IPostMessageSent:\n this.executePostMessageSent(data as IMessage);\n return;\n case AppInterface.IPreMessageDeletePrevent:\n return this.executePreMessageDeletePrevent(data as IMessage);\n case AppInterface.IPostMessageDeleted:\n this.executePostMessageDelete(data as IMessage);\n return;\n case AppInterface.IPreMessageUpdatedPrevent:\n return this.executePreMessageUpdatedPrevent(data as IMessage);\n case AppInterface.IPreMessageUpdatedExtend:\n return this.executePreMessageUpdatedExtend(data as IMessage);\n case AppInterface.IPreMessageUpdatedModify:\n return this.executePreMessageUpdatedModify(data as IMessage);\n case AppInterface.IPostMessageUpdated:\n this.executePostMessageUpdated(data as IMessage);\n return;\n // Rooms\n case AppInterface.IPreRoomCreatePrevent:\n return this.executePreRoomCreatePrevent(data as IRoom);\n case AppInterface.IPreRoomCreateExtend:\n return this.executePreRoomCreateExtend(data as IRoom);\n case AppInterface.IPreRoomCreateModify:\n return this.executePreRoomCreateModify(data as IRoom);\n case AppInterface.IPostRoomCreate:\n this.executePostRoomCreate(data as IRoom);\n return;\n case AppInterface.IPreRoomDeletePrevent:\n return this.executePreRoomDeletePrevent(data as IRoom);\n case AppInterface.IPostRoomDeleted:\n this.executePostRoomDeleted(data as IRoom);\n return;\n case AppInterface.IPreRoomUserJoined:\n return this.executePreRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPostRoomUserJoined:\n return this.executePostRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPreRoomUserLeave:\n return this.executePreRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IPostRoomUserLeave:\n return this.executePostRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IRoomUserTyping:\n return this.executeOnRoomUserTyping(data as IRoomUserTypingContext);\n // External Components\n case AppInterface.IPostExternalComponentOpened:\n this.executePostExternalComponentOpened(data as IExternalComponent);\n return;\n case AppInterface.IPostExternalComponentClosed:\n this.executePostExternalComponentClosed(data as IExternalComponent);\n return;\n case AppInterface.IUIKitInteractionHandler:\n return this.executeUIKitInteraction(data as IUIKitIncomingInteraction);\n case AppInterface.IUIKitLivechatInteractionHandler:\n return this.executeUIKitLivechatInteraction(data as IUIKitLivechatIncomingInteraction);\n // Livechat\n case AppInterface.IPostLivechatRoomStarted:\n return this.executePostLivechatRoomStarted(data as ILivechatRoom);\n /**\n * @deprecated please prefer the AppInterface.IPostLivechatRoomClosed event\n */\n case AppInterface.ILivechatRoomClosedHandler:\n return this.executeLivechatRoomClosedHandler(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomClosed:\n return this.executePostLivechatRoomClosed(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomSaved:\n return this.executePostLivechatRoomSaved(data as ILivechatRoom);\n case AppInterface.IPostLivechatAgentAssigned:\n return this.executePostLivechatAgentAssigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatAgentUnassigned:\n return this.executePostLivechatAgentUnassigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatRoomTransferred:\n return this.executePostLivechatRoomTransferred(data as ILivechatTransferEventContext);\n case AppInterface.IPostLivechatGuestSaved:\n return this.executePostLivechatGuestSaved(data as IVisitor);\n // FileUpload\n case AppInterface.IPreFileUpload:\n return this.executePreFileUpload(data as IFileUploadContext);\n // Email\n case AppInterface.IPreEmailSent:\n return this.executePreEmailSent(data as IPreEmailSentContext);\n default:\n console.warn('An invalid listener was called');\n return;\n }\n }\n\n // Messages\n private async executePreMessageSentPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageSentExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGESENTEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageSentModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGESENTMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageSent(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageSent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGESENT)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGESENT)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageDeletePrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostMessageDelete(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageUpdatedPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageUpdatedExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageUpdatedModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageUpdated(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageUpdated)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEUPDATED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEUPDATED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // Rooms\n private async executePreRoomCreatePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreatePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreRoomCreateExtend(data: IRoom): Promise {\n const room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEEXTEND,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEEXTEND)) {\n await app.call(AppMethod.EXECUTEPREROOMCREATEEXTEND,\n cfRoom,\n new RoomExtender(room), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return data;\n }\n\n private async executePreRoomCreateModify(data: IRoom): Promise {\n let room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEMODIFY,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEMODIFY)) {\n room = await app.call(AppMethod.EXECUTEPREROOMCREATEMODIFY,\n cfRoom,\n new RoomBuilder(room),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IRoom;\n }\n }\n\n return data;\n }\n\n private async executePostRoomCreate(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomCreate)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMCREATE)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMCREATE)) {\n await app.call(AppMethod.EXECUTEPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomDeletePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostRoomDeleted(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n private async executeOnRoomUserTyping(externalData: IRoomUserTypingContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n Utilities.deepFreeze(data.roomId);\n Utilities.deepFreeze(data.typing);\n Utilities.deepFreeze(data.username);\n\n for (const appId of this.listeners.get(AppInterface.IRoomUserTyping)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_ON_ROOM_USER_TYPING)) {\n await app.call(\n AppMethod.EXECUTE_ON_ROOM_USER_TYPING,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId)\n );\n }\n }\n }\n\n private async executePostRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // External Components\n private async executePostExternalComponentOpened(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentOpened)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostExternalComponentClosed(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executeUIKitInteraction(data: IUIKitIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_BLOCK_ACTION;\n case UIKitIncomingInteractionType.VIEW_SUBMIT:\n return AppMethod.UIKIT_VIEW_SUBMIT;\n case UIKitIncomingInteractionType.VIEW_CLOSED:\n return AppMethod.UIKIT_VIEW_CLOSE;\n case UIKitIncomingInteractionType.ACTION_BUTTON:\n return AppMethod.UIKIT_ACTION_BUTTON;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app?.hasMethod(method)) {\n console.warn(`App ${appId} triggered an interaction but it doen't exist or doesn't have method ${method}`);\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitIncomingInteraction) => {\n const {\n actionId,\n message,\n user,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitBlockInteractionContext({\n appId,\n actionId,\n blockId,\n user,\n room,\n triggerId,\n value,\n message,\n container,\n });\n }\n case UIKitIncomingInteractionType.VIEW_SUBMIT: {\n const { view } = interactionData.payload as { view: IUIKitSurface };\n\n return new UIKitViewSubmitInteractionContext({\n appId,\n actionId,\n view,\n room,\n triggerId,\n user,\n });\n }\n case UIKitIncomingInteractionType.VIEW_CLOSED: {\n const { view, isCleared } = interactionData.payload as { view: IUIKitSurface, isCleared: boolean };\n\n return new UIKitViewCloseInteractionContext({\n appId,\n actionId,\n view,\n room,\n isCleared,\n user,\n });\n }\n case UIKitIncomingInteractionType.ACTION_BUTTON: {\n const { context: buttonContext } = interactionData.payload as { context: UIActionButtonContext };\n\n return new UIKitActionButtonInteractionContext({\n appId,\n actionId,\n buttonContext,\n room,\n triggerId,\n user,\n message,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n\n private async executeUIKitLivechatInteraction(data: IUIKitLivechatIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_LIVECHAT_BLOCK_ACTION;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app.hasMethod(method)) {\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitLivechatIncomingInteraction) => {\n const {\n actionId,\n message,\n visitor,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitLivechatBlockInteractionContext({\n appId,\n actionId,\n blockId,\n visitor,\n room,\n triggerId,\n value,\n message,\n container: container as IUIKitIncomingInteractionModalContainer | IUIKitIncomingInteractionMessageContainer,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n // Livechat\n private async executePostLivechatRoomStarted(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomStarted)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executeLivechatRoomClosedHandler(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.ILivechatRoomClosedHandler)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomClosed(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentAssigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentAssigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentUnassigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentUnassigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomTransferred(data: ILivechatTransferEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomTransferred)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatGuestSaved(data: IVisitor): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatGuestSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomSaved(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n // FileUpload\n private async executePreFileUpload(data: IFileUploadContext): Promise {\n const context = Object.freeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPreFileUpload)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_FILE_UPLOAD)) {\n await app.call(AppMethod.EXECUTE_PRE_FILE_UPLOAD,\n context,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreEmailSent(data: IPreEmailSentContext): Promise {\n let descriptor = data.email;\n\n for (const appId of this.listeners.get(AppInterface.IPreEmailSent)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_EMAIL_SENT)) {\n descriptor = await app.call(AppMethod.EXECUTE_PRE_EMAIL_SENT,\n {\n context: data.context,\n email: descriptor,\n },\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n return descriptor;\n }\n}\n"]} \ No newline at end of file From 5d2ff7bb8aae1eba9675b7f9f6c16ea7627c21c7 Mon Sep 17 00:00:00 2001 From: cwsmith Date: Mon, 19 Sep 2022 14:58:36 -0400 Subject: [PATCH 5/6] Lint fix --- src/definition/rooms/IRoomUserTyping.ts | 6 +++--- src/server/managers/AppListenerManager.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/definition/rooms/IRoomUserTyping.ts b/src/definition/rooms/IRoomUserTyping.ts index 84de96774..cf159fad0 100644 --- a/src/definition/rooms/IRoomUserTyping.ts +++ b/src/definition/rooms/IRoomUserTyping.ts @@ -1,5 +1,5 @@ -import { IHttp, IPersistence, IRead, IModify } from "../accessors"; -import { IRoomUserTypingContext } from "./IRoomUserTypingContext"; +import { IHttp, IModify, IPersistence, IRead } from '../accessors'; +import { IRoomUserTypingContext } from './IRoomUserTypingContext'; /** * Event interface that allows an app to @@ -15,6 +15,6 @@ export interface IRoomUserTyping { read: IRead, http: IHttp, persistence: IPersistence, - modify: IModify + modify: IModify, ): Promise; } diff --git a/src/server/managers/AppListenerManager.ts b/src/server/managers/AppListenerManager.ts index 3868a82ab..942d2e889 100644 --- a/src/server/managers/AppListenerManager.ts +++ b/src/server/managers/AppListenerManager.ts @@ -808,7 +808,7 @@ export class AppListenerManager { this.am.getReader(appId), this.am.getHttp(appId), this.am.getPersistence(appId), - this.am.getModifier(appId) + this.am.getModifier(appId), ); } } From f2f3458611d4445c8d76ac17a46ee0a6ea1eb6ad Mon Sep 17 00:00:00 2001 From: cwsmith Date: Tue, 27 Sep 2022 11:28:20 -0400 Subject: [PATCH 6/6] Update OnUserTyping handler signature --- definition/rooms/IRoomUserTyping.d.ts | 4 ++-- definition/rooms/IRoomUserTyping.js.map | 2 +- server/managers/AppListenerManager.js.map | 2 +- src/server/ProxiedApp.ts | 1 - 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/definition/rooms/IRoomUserTyping.d.ts b/definition/rooms/IRoomUserTyping.d.ts index 2d0806d80..f0d00e9d0 100644 --- a/definition/rooms/IRoomUserTyping.d.ts +++ b/definition/rooms/IRoomUserTyping.d.ts @@ -1,5 +1,5 @@ -import { IHttp, IPersistence, IRead, IModify } from "../accessors"; -import { IRoomUserTypingContext } from "./IRoomUserTypingContext"; +import { IHttp, IModify, IPersistence, IRead } from '../accessors'; +import { IRoomUserTypingContext } from './IRoomUserTypingContext'; /** * Event interface that allows an app to * register as a handler of the `IRoomUserTyping` diff --git a/definition/rooms/IRoomUserTyping.js.map b/definition/rooms/IRoomUserTyping.js.map index 717b1385e..f175f87c3 100644 --- a/definition/rooms/IRoomUserTyping.js.map +++ b/definition/rooms/IRoomUserTyping.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/definition/rooms/IRoomUserTyping.ts"],"names":[],"mappings":"","file":"IRoomUserTyping.js","sourcesContent":["import { IHttp, IPersistence, IRead, IModify } from \"../accessors\";\nimport { IRoomUserTypingContext } from \"./IRoomUserTypingContext\";\n\n/**\n * Event interface that allows an app to\n * register as a handler of the `IRoomUserTyping`\n * event\n *\n * This event is triggered when user starts/stops typing\n *\n */\nexport interface IRoomUserTyping {\n executeOnRoomUserTyping(\n context: IRoomUserTypingContext,\n read: IRead,\n http: IHttp,\n persistence: IPersistence,\n modify: IModify\n ): Promise;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/definition/rooms/IRoomUserTyping.ts"],"names":[],"mappings":"","file":"IRoomUserTyping.js","sourcesContent":["import { IHttp, IModify, IPersistence, IRead } from '../accessors';\nimport { IRoomUserTypingContext } from './IRoomUserTypingContext';\n\n/**\n * Event interface that allows an app to\n * register as a handler of the `IRoomUserTyping`\n * event\n *\n * This event is triggered when user starts/stops typing\n *\n */\nexport interface IRoomUserTyping {\n executeOnRoomUserTyping(\n context: IRoomUserTypingContext,\n read: IRead,\n http: IHttp,\n persistence: IPersistence,\n modify: IModify,\n ): Promise;\n}\n"]} \ No newline at end of file diff --git a/server/managers/AppListenerManager.js.map b/server/managers/AppListenerManager.js.map index 313762d49..293cd1c11 100644 --- a/server/managers/AppListenerManager.js.map +++ b/server/managers/AppListenerManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/server/managers/AppListenerManager.ts"],"names":[],"mappings":"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","file":"AppListenerManager.js","sourcesContent":["import { IEmailDescriptor, IPreEmailSentContext } from '../../definition/email';\nimport { EssentialAppDisabledException } from '../../definition/exceptions';\nimport { IExternalComponent } from '../../definition/externalComponent';\nimport { ILivechatEventContext, ILivechatRoom, ILivechatTransferEventContext, IVisitor } from '../../definition/livechat';\nimport { IMessage } from '../../definition/messages';\nimport { AppInterface, AppMethod } from '../../definition/metadata';\nimport { IRoom, IRoomUserJoinedContext, IRoomUserLeaveContext, IRoomUserTypingContext } from '../../definition/rooms';\nimport { UIActionButtonContext } from '../../definition/ui';\nimport { IUIKitIncomingInteraction, IUIKitResponse, IUIKitSurface, UIKitIncomingInteractionType } from '../../definition/uikit';\nimport { IUIKitLivechatIncomingInteraction, UIKitLivechatBlockInteractionContext } from '../../definition/uikit/livechat';\nimport { IUIKitIncomingInteractionMessageContainer, IUIKitIncomingInteractionModalContainer } from '../../definition/uikit/UIKitIncomingInteractionContainer';\nimport {\n UIKitActionButtonInteractionContext,\n UIKitBlockInteractionContext,\n UIKitViewCloseInteractionContext,\n UIKitViewSubmitInteractionContext,\n} from '../../definition/uikit/UIKitInteractionContext';\nimport { IFileUploadContext } from '../../definition/uploads/IFileUploadContext';\nimport { IUser } from '../../definition/users';\nimport { MessageBuilder, MessageExtender, RoomBuilder, RoomExtender } from '../accessors';\nimport { AppManager } from '../AppManager';\nimport { Message } from '../messages/Message';\nimport { Utilities } from '../misc/Utilities';\nimport { ProxiedApp } from '../ProxiedApp';\nimport { Room } from '../rooms/Room';\nimport { AppAccessorManager } from './AppAccessorManager';\n\ntype EventData = (\n IMessage |\n IRoom |\n IUser |\n IVisitor |\n ILivechatRoom |\n IUIKitIncomingInteraction |\n IUIKitLivechatIncomingInteraction |\n IExternalComponent |\n ILivechatEventContext |\n IRoomUserJoinedContext |\n IRoomUserLeaveContext |\n ILivechatTransferEventContext |\n IFileUploadContext |\n IPreEmailSentContext |\n IRoomUserTypingContext\n);\n\ntype EventReturn = (\n void |\n boolean |\n IMessage |\n IRoom |\n IUser |\n IUIKitResponse |\n ILivechatRoom |\n IEmailDescriptor\n);\n\nexport class AppListenerManager {\n private am: AppAccessorManager;\n private listeners: Map>;\n /**\n * Locked events are those who are listed in an app's\n * \"essentials\" list but the app is disabled.\n *\n * They will throw a EssentialAppDisabledException upon call\n */\n private lockedEvents: Map>;\n\n constructor(private readonly manager: AppManager) {\n this.am = manager.getAccessorManager();\n this.listeners = new Map>();\n this.lockedEvents = new Map>();\n\n Object.keys(AppInterface).forEach((intt) => {\n this.listeners.set(intt, new Array());\n this.lockedEvents.set(intt, new Set());\n });\n }\n\n public registerListeners(app: ProxiedApp): void {\n this.unregisterListeners(app);\n\n Object.entries(app.getImplementationList()).forEach(([event, isImplemented]) => {\n if (!isImplemented) {\n return;\n }\n\n this.listeners.get(event).push(app.getID());\n });\n }\n\n public unregisterListeners(app: ProxiedApp): void {\n this.listeners.forEach((apps, int) => {\n if (apps.includes(app.getID())) {\n const where = apps.indexOf(app.getID());\n this.listeners.get(int).splice(where, 1);\n }\n });\n }\n\n public releaseEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.delete(app.getID());\n });\n }\n\n public lockEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.add(app.getID());\n });\n }\n\n public getListeners(int: AppInterface): Array {\n const results = new Array();\n\n for (const appId of this.listeners.get(int)) {\n results.push(this.manager.getOneById(appId));\n }\n\n return results;\n }\n\n public isEventBlocked(event: AppInterface): boolean {\n const lockedEventList = this.lockedEvents.get(event);\n\n return !!(lockedEventList && lockedEventList.size);\n }\n\n public async executeListener(int: AppInterface, data: EventData): Promise {\n if (this.isEventBlocked(int)) {\n throw new EssentialAppDisabledException('There is one or more apps that are essential to this event but are disabled');\n }\n\n switch (int) {\n // Messages\n case AppInterface.IPreMessageSentPrevent:\n return this.executePreMessageSentPrevent(data as IMessage);\n case AppInterface.IPreMessageSentExtend:\n return this.executePreMessageSentExtend(data as IMessage);\n case AppInterface.IPreMessageSentModify:\n return this.executePreMessageSentModify(data as IMessage);\n case AppInterface.IPostMessageSent:\n this.executePostMessageSent(data as IMessage);\n return;\n case AppInterface.IPreMessageDeletePrevent:\n return this.executePreMessageDeletePrevent(data as IMessage);\n case AppInterface.IPostMessageDeleted:\n this.executePostMessageDelete(data as IMessage);\n return;\n case AppInterface.IPreMessageUpdatedPrevent:\n return this.executePreMessageUpdatedPrevent(data as IMessage);\n case AppInterface.IPreMessageUpdatedExtend:\n return this.executePreMessageUpdatedExtend(data as IMessage);\n case AppInterface.IPreMessageUpdatedModify:\n return this.executePreMessageUpdatedModify(data as IMessage);\n case AppInterface.IPostMessageUpdated:\n this.executePostMessageUpdated(data as IMessage);\n return;\n // Rooms\n case AppInterface.IPreRoomCreatePrevent:\n return this.executePreRoomCreatePrevent(data as IRoom);\n case AppInterface.IPreRoomCreateExtend:\n return this.executePreRoomCreateExtend(data as IRoom);\n case AppInterface.IPreRoomCreateModify:\n return this.executePreRoomCreateModify(data as IRoom);\n case AppInterface.IPostRoomCreate:\n this.executePostRoomCreate(data as IRoom);\n return;\n case AppInterface.IPreRoomDeletePrevent:\n return this.executePreRoomDeletePrevent(data as IRoom);\n case AppInterface.IPostRoomDeleted:\n this.executePostRoomDeleted(data as IRoom);\n return;\n case AppInterface.IPreRoomUserJoined:\n return this.executePreRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPostRoomUserJoined:\n return this.executePostRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPreRoomUserLeave:\n return this.executePreRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IPostRoomUserLeave:\n return this.executePostRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IRoomUserTyping:\n return this.executeOnRoomUserTyping(data as IRoomUserTypingContext);\n // External Components\n case AppInterface.IPostExternalComponentOpened:\n this.executePostExternalComponentOpened(data as IExternalComponent);\n return;\n case AppInterface.IPostExternalComponentClosed:\n this.executePostExternalComponentClosed(data as IExternalComponent);\n return;\n case AppInterface.IUIKitInteractionHandler:\n return this.executeUIKitInteraction(data as IUIKitIncomingInteraction);\n case AppInterface.IUIKitLivechatInteractionHandler:\n return this.executeUIKitLivechatInteraction(data as IUIKitLivechatIncomingInteraction);\n // Livechat\n case AppInterface.IPostLivechatRoomStarted:\n return this.executePostLivechatRoomStarted(data as ILivechatRoom);\n /**\n * @deprecated please prefer the AppInterface.IPostLivechatRoomClosed event\n */\n case AppInterface.ILivechatRoomClosedHandler:\n return this.executeLivechatRoomClosedHandler(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomClosed:\n return this.executePostLivechatRoomClosed(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomSaved:\n return this.executePostLivechatRoomSaved(data as ILivechatRoom);\n case AppInterface.IPostLivechatAgentAssigned:\n return this.executePostLivechatAgentAssigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatAgentUnassigned:\n return this.executePostLivechatAgentUnassigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatRoomTransferred:\n return this.executePostLivechatRoomTransferred(data as ILivechatTransferEventContext);\n case AppInterface.IPostLivechatGuestSaved:\n return this.executePostLivechatGuestSaved(data as IVisitor);\n // FileUpload\n case AppInterface.IPreFileUpload:\n return this.executePreFileUpload(data as IFileUploadContext);\n // Email\n case AppInterface.IPreEmailSent:\n return this.executePreEmailSent(data as IPreEmailSentContext);\n default:\n console.warn('An invalid listener was called');\n return;\n }\n }\n\n // Messages\n private async executePreMessageSentPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageSentExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGESENTEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageSentModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGESENTMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageSent(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageSent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGESENT)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGESENT)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageDeletePrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostMessageDelete(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageUpdatedPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageUpdatedExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageUpdatedModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageUpdated(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageUpdated)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEUPDATED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEUPDATED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // Rooms\n private async executePreRoomCreatePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreatePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreRoomCreateExtend(data: IRoom): Promise {\n const room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEEXTEND,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEEXTEND)) {\n await app.call(AppMethod.EXECUTEPREROOMCREATEEXTEND,\n cfRoom,\n new RoomExtender(room), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return data;\n }\n\n private async executePreRoomCreateModify(data: IRoom): Promise {\n let room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEMODIFY,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEMODIFY)) {\n room = await app.call(AppMethod.EXECUTEPREROOMCREATEMODIFY,\n cfRoom,\n new RoomBuilder(room),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IRoom;\n }\n }\n\n return data;\n }\n\n private async executePostRoomCreate(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomCreate)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMCREATE)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMCREATE)) {\n await app.call(AppMethod.EXECUTEPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomDeletePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostRoomDeleted(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n private async executeOnRoomUserTyping(externalData: IRoomUserTypingContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n Utilities.deepFreeze(data.roomId);\n Utilities.deepFreeze(data.typing);\n Utilities.deepFreeze(data.username);\n\n for (const appId of this.listeners.get(AppInterface.IRoomUserTyping)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_ON_ROOM_USER_TYPING)) {\n await app.call(\n AppMethod.EXECUTE_ON_ROOM_USER_TYPING,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId)\n );\n }\n }\n }\n\n private async executePostRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // External Components\n private async executePostExternalComponentOpened(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentOpened)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostExternalComponentClosed(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executeUIKitInteraction(data: IUIKitIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_BLOCK_ACTION;\n case UIKitIncomingInteractionType.VIEW_SUBMIT:\n return AppMethod.UIKIT_VIEW_SUBMIT;\n case UIKitIncomingInteractionType.VIEW_CLOSED:\n return AppMethod.UIKIT_VIEW_CLOSE;\n case UIKitIncomingInteractionType.ACTION_BUTTON:\n return AppMethod.UIKIT_ACTION_BUTTON;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app?.hasMethod(method)) {\n console.warn(`App ${appId} triggered an interaction but it doen't exist or doesn't have method ${method}`);\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitIncomingInteraction) => {\n const {\n actionId,\n message,\n user,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitBlockInteractionContext({\n appId,\n actionId,\n blockId,\n user,\n room,\n triggerId,\n value,\n message,\n container,\n });\n }\n case UIKitIncomingInteractionType.VIEW_SUBMIT: {\n const { view } = interactionData.payload as { view: IUIKitSurface };\n\n return new UIKitViewSubmitInteractionContext({\n appId,\n actionId,\n view,\n room,\n triggerId,\n user,\n });\n }\n case UIKitIncomingInteractionType.VIEW_CLOSED: {\n const { view, isCleared } = interactionData.payload as { view: IUIKitSurface, isCleared: boolean };\n\n return new UIKitViewCloseInteractionContext({\n appId,\n actionId,\n view,\n room,\n isCleared,\n user,\n });\n }\n case UIKitIncomingInteractionType.ACTION_BUTTON: {\n const { context: buttonContext } = interactionData.payload as { context: UIActionButtonContext };\n\n return new UIKitActionButtonInteractionContext({\n appId,\n actionId,\n buttonContext,\n room,\n triggerId,\n user,\n message,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n\n private async executeUIKitLivechatInteraction(data: IUIKitLivechatIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_LIVECHAT_BLOCK_ACTION;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app.hasMethod(method)) {\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitLivechatIncomingInteraction) => {\n const {\n actionId,\n message,\n visitor,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitLivechatBlockInteractionContext({\n appId,\n actionId,\n blockId,\n visitor,\n room,\n triggerId,\n value,\n message,\n container: container as IUIKitIncomingInteractionModalContainer | IUIKitIncomingInteractionMessageContainer,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n // Livechat\n private async executePostLivechatRoomStarted(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomStarted)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executeLivechatRoomClosedHandler(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.ILivechatRoomClosedHandler)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomClosed(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentAssigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentAssigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentUnassigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentUnassigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomTransferred(data: ILivechatTransferEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomTransferred)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatGuestSaved(data: IVisitor): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatGuestSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomSaved(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n // FileUpload\n private async executePreFileUpload(data: IFileUploadContext): Promise {\n const context = Object.freeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPreFileUpload)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_FILE_UPLOAD)) {\n await app.call(AppMethod.EXECUTE_PRE_FILE_UPLOAD,\n context,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreEmailSent(data: IPreEmailSentContext): Promise {\n let descriptor = data.email;\n\n for (const appId of this.listeners.get(AppInterface.IPreEmailSent)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_EMAIL_SENT)) {\n descriptor = await app.call(AppMethod.EXECUTE_PRE_EMAIL_SENT,\n {\n context: data.context,\n email: descriptor,\n },\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n return descriptor;\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["src/server/managers/AppListenerManager.ts"],"names":[],"mappings":"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","file":"AppListenerManager.js","sourcesContent":["import { IEmailDescriptor, IPreEmailSentContext } from '../../definition/email';\nimport { EssentialAppDisabledException } from '../../definition/exceptions';\nimport { IExternalComponent } from '../../definition/externalComponent';\nimport { ILivechatEventContext, ILivechatRoom, ILivechatTransferEventContext, IVisitor } from '../../definition/livechat';\nimport { IMessage } from '../../definition/messages';\nimport { AppInterface, AppMethod } from '../../definition/metadata';\nimport { IRoom, IRoomUserJoinedContext, IRoomUserLeaveContext, IRoomUserTypingContext } from '../../definition/rooms';\nimport { UIActionButtonContext } from '../../definition/ui';\nimport { IUIKitIncomingInteraction, IUIKitResponse, IUIKitSurface, UIKitIncomingInteractionType } from '../../definition/uikit';\nimport { IUIKitLivechatIncomingInteraction, UIKitLivechatBlockInteractionContext } from '../../definition/uikit/livechat';\nimport { IUIKitIncomingInteractionMessageContainer, IUIKitIncomingInteractionModalContainer } from '../../definition/uikit/UIKitIncomingInteractionContainer';\nimport {\n UIKitActionButtonInteractionContext,\n UIKitBlockInteractionContext,\n UIKitViewCloseInteractionContext,\n UIKitViewSubmitInteractionContext,\n} from '../../definition/uikit/UIKitInteractionContext';\nimport { IFileUploadContext } from '../../definition/uploads/IFileUploadContext';\nimport { IUser } from '../../definition/users';\nimport { MessageBuilder, MessageExtender, RoomBuilder, RoomExtender } from '../accessors';\nimport { AppManager } from '../AppManager';\nimport { Message } from '../messages/Message';\nimport { Utilities } from '../misc/Utilities';\nimport { ProxiedApp } from '../ProxiedApp';\nimport { Room } from '../rooms/Room';\nimport { AppAccessorManager } from './AppAccessorManager';\n\ntype EventData = (\n IMessage |\n IRoom |\n IUser |\n IVisitor |\n ILivechatRoom |\n IUIKitIncomingInteraction |\n IUIKitLivechatIncomingInteraction |\n IExternalComponent |\n ILivechatEventContext |\n IRoomUserJoinedContext |\n IRoomUserLeaveContext |\n ILivechatTransferEventContext |\n IFileUploadContext |\n IPreEmailSentContext |\n IRoomUserTypingContext\n);\n\ntype EventReturn = (\n void |\n boolean |\n IMessage |\n IRoom |\n IUser |\n IUIKitResponse |\n ILivechatRoom |\n IEmailDescriptor\n);\n\nexport class AppListenerManager {\n private am: AppAccessorManager;\n private listeners: Map>;\n /**\n * Locked events are those who are listed in an app's\n * \"essentials\" list but the app is disabled.\n *\n * They will throw a EssentialAppDisabledException upon call\n */\n private lockedEvents: Map>;\n\n constructor(private readonly manager: AppManager) {\n this.am = manager.getAccessorManager();\n this.listeners = new Map>();\n this.lockedEvents = new Map>();\n\n Object.keys(AppInterface).forEach((intt) => {\n this.listeners.set(intt, new Array());\n this.lockedEvents.set(intt, new Set());\n });\n }\n\n public registerListeners(app: ProxiedApp): void {\n this.unregisterListeners(app);\n\n Object.entries(app.getImplementationList()).forEach(([event, isImplemented]) => {\n if (!isImplemented) {\n return;\n }\n\n this.listeners.get(event).push(app.getID());\n });\n }\n\n public unregisterListeners(app: ProxiedApp): void {\n this.listeners.forEach((apps, int) => {\n if (apps.includes(app.getID())) {\n const where = apps.indexOf(app.getID());\n this.listeners.get(int).splice(where, 1);\n }\n });\n }\n\n public releaseEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.delete(app.getID());\n });\n }\n\n public lockEssentialEvents(app: ProxiedApp): void {\n if (!app.getEssentials()) {\n return;\n }\n\n app.getEssentials().forEach((event) => {\n const lockedEvent = this.lockedEvents.get(event);\n\n if (!lockedEvent) {\n return;\n }\n\n lockedEvent.add(app.getID());\n });\n }\n\n public getListeners(int: AppInterface): Array {\n const results = new Array();\n\n for (const appId of this.listeners.get(int)) {\n results.push(this.manager.getOneById(appId));\n }\n\n return results;\n }\n\n public isEventBlocked(event: AppInterface): boolean {\n const lockedEventList = this.lockedEvents.get(event);\n\n return !!(lockedEventList && lockedEventList.size);\n }\n\n public async executeListener(int: AppInterface, data: EventData): Promise {\n if (this.isEventBlocked(int)) {\n throw new EssentialAppDisabledException('There is one or more apps that are essential to this event but are disabled');\n }\n\n switch (int) {\n // Messages\n case AppInterface.IPreMessageSentPrevent:\n return this.executePreMessageSentPrevent(data as IMessage);\n case AppInterface.IPreMessageSentExtend:\n return this.executePreMessageSentExtend(data as IMessage);\n case AppInterface.IPreMessageSentModify:\n return this.executePreMessageSentModify(data as IMessage);\n case AppInterface.IPostMessageSent:\n this.executePostMessageSent(data as IMessage);\n return;\n case AppInterface.IPreMessageDeletePrevent:\n return this.executePreMessageDeletePrevent(data as IMessage);\n case AppInterface.IPostMessageDeleted:\n this.executePostMessageDelete(data as IMessage);\n return;\n case AppInterface.IPreMessageUpdatedPrevent:\n return this.executePreMessageUpdatedPrevent(data as IMessage);\n case AppInterface.IPreMessageUpdatedExtend:\n return this.executePreMessageUpdatedExtend(data as IMessage);\n case AppInterface.IPreMessageUpdatedModify:\n return this.executePreMessageUpdatedModify(data as IMessage);\n case AppInterface.IPostMessageUpdated:\n this.executePostMessageUpdated(data as IMessage);\n return;\n // Rooms\n case AppInterface.IPreRoomCreatePrevent:\n return this.executePreRoomCreatePrevent(data as IRoom);\n case AppInterface.IPreRoomCreateExtend:\n return this.executePreRoomCreateExtend(data as IRoom);\n case AppInterface.IPreRoomCreateModify:\n return this.executePreRoomCreateModify(data as IRoom);\n case AppInterface.IPostRoomCreate:\n this.executePostRoomCreate(data as IRoom);\n return;\n case AppInterface.IPreRoomDeletePrevent:\n return this.executePreRoomDeletePrevent(data as IRoom);\n case AppInterface.IPostRoomDeleted:\n this.executePostRoomDeleted(data as IRoom);\n return;\n case AppInterface.IPreRoomUserJoined:\n return this.executePreRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPostRoomUserJoined:\n return this.executePostRoomUserJoined(data as IRoomUserJoinedContext);\n case AppInterface.IPreRoomUserLeave:\n return this.executePreRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IPostRoomUserLeave:\n return this.executePostRoomUserLeave(data as IRoomUserLeaveContext);\n case AppInterface.IRoomUserTyping:\n return this.executeOnRoomUserTyping(data as IRoomUserTypingContext);\n // External Components\n case AppInterface.IPostExternalComponentOpened:\n this.executePostExternalComponentOpened(data as IExternalComponent);\n return;\n case AppInterface.IPostExternalComponentClosed:\n this.executePostExternalComponentClosed(data as IExternalComponent);\n return;\n case AppInterface.IUIKitInteractionHandler:\n return this.executeUIKitInteraction(data as IUIKitIncomingInteraction);\n case AppInterface.IUIKitLivechatInteractionHandler:\n return this.executeUIKitLivechatInteraction(data as IUIKitLivechatIncomingInteraction);\n // Livechat\n case AppInterface.IPostLivechatRoomStarted:\n return this.executePostLivechatRoomStarted(data as ILivechatRoom);\n /**\n * @deprecated please prefer the AppInterface.IPostLivechatRoomClosed event\n */\n case AppInterface.ILivechatRoomClosedHandler:\n return this.executeLivechatRoomClosedHandler(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomClosed:\n return this.executePostLivechatRoomClosed(data as ILivechatRoom);\n case AppInterface.IPostLivechatRoomSaved:\n return this.executePostLivechatRoomSaved(data as ILivechatRoom);\n case AppInterface.IPostLivechatAgentAssigned:\n return this.executePostLivechatAgentAssigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatAgentUnassigned:\n return this.executePostLivechatAgentUnassigned(data as ILivechatEventContext);\n case AppInterface.IPostLivechatRoomTransferred:\n return this.executePostLivechatRoomTransferred(data as ILivechatTransferEventContext);\n case AppInterface.IPostLivechatGuestSaved:\n return this.executePostLivechatGuestSaved(data as IVisitor);\n // FileUpload\n case AppInterface.IPreFileUpload:\n return this.executePreFileUpload(data as IFileUploadContext);\n // Email\n case AppInterface.IPreEmailSent:\n return this.executePreEmailSent(data as IPreEmailSentContext);\n default:\n console.warn('An invalid listener was called');\n return;\n }\n }\n\n // Messages\n private async executePreMessageSentPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGESENTPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageSentExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGESENTEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageSentModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageSentModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGESENTMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGESENTMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGESENTMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGESENTMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageSent(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageSent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGESENT)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGESENT)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGESENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageDeletePrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEDELETEPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostMessageDelete(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEDELETED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreMessageUpdatedPrevent(data: IMessage): Promise {\n let prevented = false;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedPrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDPREVENT,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreMessageUpdatedExtend(data: IMessage): Promise {\n const msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND)) {\n await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDEXTEND,\n cfMsg,\n new MessageExtender(msg), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return msg;\n }\n\n private async executePreMessageUpdatedModify(data: IMessage): Promise {\n let msg = data;\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreMessageUpdatedModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY)) {\n msg = await app.call(AppMethod.EXECUTEPREMESSAGEUPDATEDMODIFY,\n cfMsg,\n new MessageBuilder(msg),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IMessage;\n }\n }\n\n return data;\n }\n\n private async executePostMessageUpdated(data: IMessage): Promise {\n const cfMsg = new Message(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostMessageUpdated)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTMESSAGEUPDATED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTMESSAGEUPDATED)) {\n await app.call(AppMethod.EXECUTEPOSTMESSAGEUPDATED,\n cfMsg,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // Rooms\n private async executePreRoomCreatePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreatePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMCREATEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePreRoomCreateExtend(data: IRoom): Promise {\n const room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateExtend)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEEXTEND)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEEXTEND,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEEXTEND)) {\n await app.call(AppMethod.EXECUTEPREROOMCREATEEXTEND,\n cfRoom,\n new RoomExtender(room), // This mutates the passed in object\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n\n return data;\n }\n\n private async executePreRoomCreateModify(data: IRoom): Promise {\n let room = data;\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomCreateModify)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMCREATEMODIFY)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMCREATEMODIFY,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMCREATEMODIFY)) {\n room = await app.call(AppMethod.EXECUTEPREROOMCREATEMODIFY,\n cfRoom,\n new RoomBuilder(room),\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as IRoom;\n }\n }\n\n return data;\n }\n\n private async executePostRoomCreate(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomCreate)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMCREATE)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMCREATE)) {\n await app.call(AppMethod.EXECUTEPOSTROOMCREATE,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomDeletePrevent(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n let prevented = false;\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomDeletePrevent)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPREROOMDELETEPREVENT)) {\n continueOn = await app.call(AppMethod.CHECKPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPREROOMDELETEPREVENT)) {\n prevented = await app.call(AppMethod.EXECUTEPREROOMDELETEPREVENT,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n ) as boolean;\n\n if (prevented) {\n return prevented;\n }\n }\n }\n\n return prevented;\n }\n\n private async executePostRoomDeleted(data: IRoom): Promise {\n const cfRoom = new Room(Utilities.deepCloneAndFreeze(data), this.manager);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomDeleted)) {\n const app = this.manager.getOneById(appId);\n\n let continueOn = true;\n if (app.hasMethod(AppMethod.CHECKPOSTROOMDELETED)) {\n continueOn = await app.call(AppMethod.CHECKPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n ) as boolean;\n }\n\n if (continueOn && app.hasMethod(AppMethod.EXECUTEPOSTROOMDELETED)) {\n await app.call(AppMethod.EXECUTEPOSTROOMDELETED,\n cfRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostRoomUserJoined(externalData: IRoomUserJoinedContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.joiningUser);\n\n if (data.inviter) {\n Utilities.deepFreeze(data.inviter);\n }\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserJoined)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_JOINED)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_JOINED,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPreRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_PRE_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n private async executeOnRoomUserTyping(externalData: IRoomUserTypingContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n Utilities.deepFreeze(data.roomId);\n Utilities.deepFreeze(data.typing);\n Utilities.deepFreeze(data.username);\n\n for (const appId of this.listeners.get(AppInterface.IRoomUserTyping)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_ON_ROOM_USER_TYPING)) {\n await app.call(\n AppMethod.EXECUTE_ON_ROOM_USER_TYPING,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePostRoomUserLeave(externalData: IRoomUserLeaveContext): Promise {\n const data = Utilities.deepClone(externalData);\n\n data.room = new Room(Utilities.deepFreeze(data.room), this.manager);\n Utilities.deepFreeze(data.leavingUser);\n\n for (const appId of this.listeners.get(AppInterface.IPostRoomUserLeave)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE)) {\n await app.call(AppMethod.EXECUTE_POST_ROOM_USER_LEAVE,\n data,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n // External Components\n private async executePostExternalComponentOpened(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentOpened)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTOPENED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executePostExternalComponentClosed(data: IExternalComponent): Promise {\n const cfExternalComponent = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostExternalComponentClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED)) {\n await app.call(AppMethod.EXECUTEPOSTEXTERNALCOMPONENTCLOSED,\n cfExternalComponent,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n );\n }\n }\n }\n\n private async executeUIKitInteraction(data: IUIKitIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_BLOCK_ACTION;\n case UIKitIncomingInteractionType.VIEW_SUBMIT:\n return AppMethod.UIKIT_VIEW_SUBMIT;\n case UIKitIncomingInteractionType.VIEW_CLOSED:\n return AppMethod.UIKIT_VIEW_CLOSE;\n case UIKitIncomingInteractionType.ACTION_BUTTON:\n return AppMethod.UIKIT_ACTION_BUTTON;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app?.hasMethod(method)) {\n console.warn(`App ${appId} triggered an interaction but it doen't exist or doesn't have method ${method}`);\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitIncomingInteraction) => {\n const {\n actionId,\n message,\n user,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitBlockInteractionContext({\n appId,\n actionId,\n blockId,\n user,\n room,\n triggerId,\n value,\n message,\n container,\n });\n }\n case UIKitIncomingInteractionType.VIEW_SUBMIT: {\n const { view } = interactionData.payload as { view: IUIKitSurface };\n\n return new UIKitViewSubmitInteractionContext({\n appId,\n actionId,\n view,\n room,\n triggerId,\n user,\n });\n }\n case UIKitIncomingInteractionType.VIEW_CLOSED: {\n const { view, isCleared } = interactionData.payload as { view: IUIKitSurface, isCleared: boolean };\n\n return new UIKitViewCloseInteractionContext({\n appId,\n actionId,\n view,\n room,\n isCleared,\n user,\n });\n }\n case UIKitIncomingInteractionType.ACTION_BUTTON: {\n const { context: buttonContext } = interactionData.payload as { context: UIActionButtonContext };\n\n return new UIKitActionButtonInteractionContext({\n appId,\n actionId,\n buttonContext,\n room,\n triggerId,\n user,\n message,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n\n private async executeUIKitLivechatInteraction(data: IUIKitLivechatIncomingInteraction): Promise {\n const { appId, type } = data;\n\n const method = ((interactionType: string) => {\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK:\n return AppMethod.UIKIT_LIVECHAT_BLOCK_ACTION;\n }\n })(type);\n\n const app = this.manager.getOneById(appId);\n if (!app.hasMethod(method)) {\n return;\n }\n\n const interactionContext = ((interactionType: UIKitIncomingInteractionType, interactionData: IUIKitLivechatIncomingInteraction) => {\n const {\n actionId,\n message,\n visitor,\n room,\n triggerId,\n container,\n } = interactionData;\n\n switch (interactionType) {\n case UIKitIncomingInteractionType.BLOCK: {\n const { value, blockId } = interactionData.payload as { value: string; blockId: string };\n\n return new UIKitLivechatBlockInteractionContext({\n appId,\n actionId,\n blockId,\n visitor,\n room,\n triggerId,\n value,\n message,\n container: container as IUIKitIncomingInteractionModalContainer | IUIKitIncomingInteractionMessageContainer,\n });\n }\n }\n })(type, data);\n\n return app.call(method,\n interactionContext,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n // Livechat\n private async executePostLivechatRoomStarted(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomStarted)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_STARTED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executeLivechatRoomClosedHandler(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.ILivechatRoomClosedHandler)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_LIVECHAT_ROOM_CLOSED_HANDLER,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomClosed(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomClosed)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_CLOSED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentAssigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentAssigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_ASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatAgentUnassigned(data: ILivechatEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatAgentUnassigned)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_AGENT_UNASSIGNED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomTransferred(data: ILivechatTransferEventContext): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomTransferred)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_TRANSFERRED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatGuestSaved(data: IVisitor): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatGuestSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_GUEST_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n private async executePostLivechatRoomSaved(data: ILivechatRoom): Promise {\n const cfLivechatRoom = Utilities.deepCloneAndFreeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPostLivechatRoomSaved)) {\n const app = this.manager.getOneById(appId);\n\n if (!app.hasMethod(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED)) {\n continue;\n }\n\n await app.call(AppMethod.EXECUTE_POST_LIVECHAT_ROOM_SAVED,\n cfLivechatRoom,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n // FileUpload\n private async executePreFileUpload(data: IFileUploadContext): Promise {\n const context = Object.freeze(data);\n\n for (const appId of this.listeners.get(AppInterface.IPreFileUpload)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_FILE_UPLOAD)) {\n await app.call(AppMethod.EXECUTE_PRE_FILE_UPLOAD,\n context,\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n }\n\n private async executePreEmailSent(data: IPreEmailSentContext): Promise {\n let descriptor = data.email;\n\n for (const appId of this.listeners.get(AppInterface.IPreEmailSent)) {\n const app = this.manager.getOneById(appId);\n\n if (app.hasMethod(AppMethod.EXECUTE_PRE_EMAIL_SENT)) {\n descriptor = await app.call(AppMethod.EXECUTE_PRE_EMAIL_SENT,\n {\n context: data.context,\n email: descriptor,\n },\n this.am.getReader(appId),\n this.am.getHttp(appId),\n this.am.getPersistence(appId),\n this.am.getModifier(appId),\n );\n }\n }\n\n return descriptor;\n }\n}\n"]} \ No newline at end of file diff --git a/src/server/ProxiedApp.ts b/src/server/ProxiedApp.ts index 81034cca8..c298238cb 100644 --- a/src/server/ProxiedApp.ts +++ b/src/server/ProxiedApp.ts @@ -1,5 +1,4 @@ import * as vm from 'vm'; - import { IAppAccessors, ILogger } from '../definition/accessors'; import { App } from '../definition/App'; import { AppStatus } from '../definition/AppStatus';