testcafe 1.20.2-alpha.1 → 2.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/request-hooks/assert-type.js +2 -2
- package/lib/api/request-hooks/hook.js +2 -2
- package/lib/api/request-hooks/request-logger.js +2 -2
- package/lib/api/skip-js-errors/index.js +62 -0
- package/lib/api/structure/base-unit.js +2 -2
- package/lib/api/structure/fixture.js +13 -13
- package/lib/api/structure/test.js +18 -17
- package/lib/api/structure/testing-unit.js +26 -16
- package/lib/api/test-controller/assertion.js +5 -5
- package/lib/api/test-controller/execution-context.js +2 -2
- package/lib/api/test-controller/index.js +33 -30
- package/lib/api/test-controller/proxy.js +2 -2
- package/lib/api/test-page-url.js +4 -4
- package/lib/api/test-run-tracker.js +2 -2
- package/lib/api/wrap-test-function.js +3 -3
- package/lib/assertions/executor.js +4 -4
- package/lib/assertions/get-fn.js +3 -3
- package/lib/browser/connection/gateway.js +18 -18
- package/lib/browser/connection/get-hints.js +8 -8
- package/lib/browser/connection/index.js +11 -11
- package/lib/browser/connection/remotes-queue.js +4 -4
- package/lib/browser/provider/built-in/dedicated/base.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +10 -10
- package/lib/browser/provider/built-in/dedicated/chrome/config.js +17 -17
- package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +4 -4
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +4 -4
- package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +2 -2
- package/lib/browser/provider/built-in/dedicated/firefox/config.js +8 -8
- package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +3 -3
- package/lib/browser/provider/built-in/dedicated/firefox/index.js +5 -5
- package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +2 -2
- package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +7 -7
- package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +3 -3
- package/lib/browser/provider/built-in/path.js +2 -2
- package/lib/browser/provider/built-in/remote.js +3 -3
- package/lib/browser/provider/index.js +5 -5
- package/lib/browser/provider/plugin-host.js +5 -6
- package/lib/browser/provider/pool.js +4 -4
- package/lib/browser/provider/utils/argument-parsing.js +3 -3
- package/lib/browser/provider/utils/browser-starter.js +2 -2
- package/lib/cli/argument-parser/index.js +52 -41
- package/lib/cli/argument-parser/parse-utils.js +2 -2
- package/lib/cli/authentication-helper.js +3 -3
- package/lib/cli/cli.js +8 -8
- package/lib/cli/correct-browsers-and-sources.js +2 -2
- package/lib/cli/index.js +2 -2
- package/lib/cli/log.js +3 -3
- package/lib/cli/remotes-wizard.js +3 -3
- package/lib/client/automation/index.js +120 -34
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/browser/idle-page/index.js +321 -317
- package/lib/client/browser/service-worker.js +244 -290
- package/lib/client/core/deps/hammerhead.js +12 -4
- package/lib/client/core/index.js +145 -55
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/core/utils/dom.js +33 -28
- package/lib/client/core/utils/position.js +18 -14
- package/lib/client/core/utils/style.js +8 -4
- package/lib/client/driver/command-executors/client-functions/selector-executor/filter.js +5 -5
- package/lib/client/driver/command-executors/client-functions/selector-executor/utils.js +3 -3
- package/lib/client/driver/deps/hammerhead.js +12 -4
- package/lib/client/driver/deps/testcafe-core.js +12 -4
- package/lib/client/driver/deps/testcafe-ui.js +12 -4
- package/lib/client/driver/index.js +654 -630
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/driver/status.js +2 -2
- package/lib/client/ui/index.js +10 -8
- package/lib/client/ui/index.min.js +1 -1
- package/lib/client-functions/builder-symbol.js +1 -2
- package/lib/client-functions/client-function-builder.js +12 -12
- package/lib/client-functions/replicator.js +2 -2
- package/lib/client-functions/selector-api-execution-mode.js +2 -2
- package/lib/client-functions/selectors/add-api.js +48 -48
- package/lib/client-functions/selectors/selector-builder.js +17 -17
- package/lib/compiler/compile-client-function.js +6 -6
- package/lib/compiler/index.js +9 -9
- package/lib/compiler/test-file/api-based.js +8 -8
- package/lib/compiler/test-file/base.js +6 -6
- package/lib/compiler/test-file/exportble-lib-path.js +2 -2
- package/lib/compiler/test-file/formats/coffeescript/compiler.js +2 -2
- package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +2 -2
- package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
- package/lib/compiler/test-file/formats/es-next/get-test-list.js +4 -4
- package/lib/compiler/test-file/formats/raw.js +2 -2
- package/lib/compiler/test-file/formats/typescript/compiler.js +11 -11
- package/lib/compiler/test-file/formats/typescript/get-test-list.js +3 -3
- package/lib/compiler/test-file/test-file-parser-base.js +3 -3
- package/lib/configuration/configuration-base.js +15 -15
- package/lib/configuration/interfaces.js +1 -1
- package/lib/configuration/skip-js-errors-option-names.js +11 -0
- package/lib/configuration/testcafe-configuration.js +21 -16
- package/lib/configuration/types.js +1 -1
- package/lib/configuration/typescript-configuration.js +4 -4
- package/lib/custom-client-scripts/assert-type.js +2 -2
- package/lib/custom-client-scripts/client-script.js +6 -6
- package/lib/custom-client-scripts/get-code.js +2 -2
- package/lib/custom-client-scripts/routing.js +3 -3
- package/lib/custom-client-scripts/utils.js +3 -3
- package/lib/dashboard/connector.js +4 -4
- package/lib/dashboard/get-default-project-link.js +2 -2
- package/lib/dashboard/index.js +26 -26
- package/lib/errors/create-stack-filter.js +2 -2
- package/lib/errors/error-list.js +2 -2
- package/lib/errors/get-callsite.js +2 -2
- package/lib/errors/is-internal-stack-frame.js +5 -5
- package/lib/errors/process-test-fn-error.js +2 -2
- package/lib/errors/runtime/index.js +10 -10
- package/lib/errors/runtime/templates.js +5 -2
- package/lib/errors/runtime/type-assertions.js +6 -6
- package/lib/errors/stack-cleaning-hook.js +2 -2
- package/lib/errors/test-run/formattable-adapter.js +7 -7
- package/lib/errors/test-run/index.js +25 -5
- package/lib/errors/test-run/render-error-template/index.js +6 -6
- package/lib/errors/test-run/render-error-template/utils.js +2 -2
- package/lib/errors/test-run/templates.js +40 -31
- package/lib/errors/test-run/utils.js +7 -7
- package/lib/errors/types.js +5 -1
- package/lib/index.js +1 -1
- package/lib/live/file-watcher/index.js +2 -2
- package/lib/live/keyboard-observer.js +3 -3
- package/lib/live/test-run-controller.js +3 -3
- package/lib/live/test-run.js +3 -2
- package/lib/live/test-runner.js +2 -2
- package/lib/load-assets.js +2 -2
- package/lib/notifications/add-rendered-warning.js +4 -4
- package/lib/notifications/debug-logger.js +6 -6
- package/lib/notifications/deprecated.js +2 -2
- package/lib/notifications/information-message.js +4 -3
- package/lib/proxyless/resource-injector.js +4 -4
- package/lib/reporter/command/command-formatter.js +4 -4
- package/lib/reporter/index.js +10 -10
- package/lib/reporter/plugin-host.js +7 -7
- package/lib/role/index.js +8 -8
- package/lib/role/role.js +2 -2
- package/lib/runner/bootstrapper.js +20 -20
- package/lib/runner/browser-job.js +3 -3
- package/lib/runner/browser-set.js +12 -12
- package/lib/runner/fixture-hook-controller.js +5 -5
- package/lib/runner/index.js +43 -33
- package/lib/runner/task/index.js +10 -6
- package/lib/runner/test-run-hook-controller.js +5 -5
- package/lib/runner/tested-app.js +7 -7
- package/lib/screenshots/capturer.js +17 -17
- package/lib/screenshots/crop.js +8 -8
- package/lib/screenshots/index.js +6 -10
- package/lib/screenshots/utils.js +4 -4
- package/lib/services/compiler/host.js +8 -8
- package/lib/services/compiler/service.js +13 -13
- package/lib/services/compiler/test-run-proxy.js +8 -8
- package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +2 -2
- package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +2 -1
- package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +3 -3
- package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +2 -2
- package/lib/services/serialization/test-structure.js +4 -4
- package/lib/services/utils/ipc/interfaces.js +1 -3
- package/lib/services/utils/ipc/io.js +3 -3
- package/lib/services/utils/ipc/message.js +2 -2
- package/lib/services/utils/ipc/proxy.js +4 -4
- package/lib/services/utils/ipc/transport.js +2 -2
- package/lib/shared/errors/index.js +9 -2
- package/lib/shared/errors/selector-error-ctor-callback.js +7 -3
- package/lib/test-run/bookmark.js +1 -1
- package/lib/test-run/browser-manipulation-queue.js +3 -3
- package/lib/test-run/commands/actions.js +66 -46
- package/lib/test-run/commands/assertion.js +3 -3
- package/lib/test-run/commands/base.js +2 -2
- package/lib/test-run/commands/browser-manipulation.js +8 -8
- package/lib/test-run/commands/observation.js +4 -4
- package/lib/test-run/commands/options.js +27 -12
- package/lib/test-run/commands/type.js +2 -1
- package/lib/test-run/commands/utils.js +3 -2
- package/lib/test-run/commands/validations/argument.js +19 -10
- package/lib/test-run/commands/validations/factories.js +10 -2
- package/lib/test-run/commands/validations/initializers.js +4 -4
- package/lib/test-run/debug-log.js +4 -4
- package/lib/test-run/execute-js-expression/index.js +4 -4
- package/lib/test-run/index.js +48 -41
- package/lib/test-run/request/create-request-options.js +9 -9
- package/lib/test-run/request/process-response-data.js +2 -2
- package/lib/test-run/request/send.js +5 -5
- package/lib/testcafe.js +8 -4
- package/lib/utils/check-file-path.js +2 -2
- package/lib/utils/check-url.js +2 -2
- package/lib/utils/correct-file-path.js +4 -4
- package/lib/utils/delegated-api.js +1 -1
- package/lib/utils/detect-ffmpeg.js +3 -3
- package/lib/utils/diff/colors.js +2 -2
- package/lib/utils/diff/index.js +11 -7
- package/lib/utils/diff/util.js +5 -5
- package/lib/utils/diff.js +4 -4
- package/lib/utils/escape-user-agent.js +2 -2
- package/lib/utils/execute-fn-with-timeout.js +2 -2
- package/lib/utils/get-browser.js +2 -2
- package/lib/utils/get-filter-fn.js +4 -4
- package/lib/utils/get-options/base.js +2 -2
- package/lib/utils/get-options/compiler.js +2 -2
- package/lib/utils/get-options/dashboard.js +2 -2
- package/lib/utils/get-options/get-assertion-timeout.js +1 -1
- package/lib/utils/get-options/index.js +4 -2
- package/lib/utils/get-options/meta.js +2 -2
- package/lib/utils/get-options/quarantine.js +8 -6
- package/lib/utils/get-options/screenshot.js +2 -2
- package/lib/utils/get-options/skip-js-errors.js +35 -0
- package/lib/utils/get-options/ssl.js +6 -6
- package/lib/utils/get-options/video.js +2 -2
- package/lib/utils/is-password-input.js +1 -1
- package/lib/utils/log-entry.js +2 -2
- package/lib/utils/make-reg-exp.js +19 -6
- package/lib/utils/moment-loader.js +2 -2
- package/lib/utils/parse-file-list.js +7 -7
- package/lib/utils/path-pattern.js +4 -4
- package/lib/utils/prepare-reporters.js +2 -2
- package/lib/utils/prerender-callsite.js +6 -6
- package/lib/utils/process.js +7 -7
- package/lib/utils/promisified-functions.js +14 -14
- package/lib/utils/raw-command-callsite-record.js +2 -2
- package/lib/utils/resolve-path-relatively-cwd.js +2 -2
- package/lib/utils/string.js +3 -3
- package/lib/utils/temp-directory/cleanup-process/index.js +6 -6
- package/lib/utils/temp-directory/cleanup-process/worker.js +4 -4
- package/lib/utils/temp-directory/index.js +6 -6
- package/lib/utils/temp-directory/lockfile.js +2 -2
- package/lib/video-recorder/process.js +6 -6
- package/lib/video-recorder/recorder.js +9 -9
- package/lib/video-recorder/test-run-video-recorder.js +2 -2
- package/package.json +8 -7
- package/ts-defs/index.d.ts +46 -7
- package/ts-defs/selectors.d.ts +39 -0
- package/ts-defs/testcafe-scripts.d.ts +39 -0
|
@@ -10,7 +10,7 @@ function loadMomentModule() {
|
|
|
10
10
|
const savedMomentModule = require.cache[momentModulePath];
|
|
11
11
|
delete require.cache[savedMomentModule];
|
|
12
12
|
const moment = require(momentModulePath);
|
|
13
|
-
moment_duration_format_commonjs_1.default(moment);
|
|
13
|
+
(0, moment_duration_format_commonjs_1.default)(moment);
|
|
14
14
|
if (savedMomentModule)
|
|
15
15
|
require.cache[momentModulePath] = savedMomentModule;
|
|
16
16
|
else
|
|
@@ -19,4 +19,4 @@ function loadMomentModule() {
|
|
|
19
19
|
}
|
|
20
20
|
exports.default = loadMomentModule();
|
|
21
21
|
module.exports = exports.default;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50LWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9tb21lbnQtbG9hZGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0dBQXdFO0FBR3hFLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0FBRXBDLFNBQVMsZ0JBQWdCO0lBQ3JCLE1BQU0sZ0JBQWdCLEdBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTFELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXpDLElBQUEseUNBQXlCLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDOztRQUVwRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUUzQyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsa0JBQWUsZ0JBQWdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnREdXJhdGlvbkZvcm1hdFNldHVwIGZyb20gJ21vbWVudC1kdXJhdGlvbi1mb3JtYXQtY29tbW9uanMnO1xuXG5cbmNvbnN0IE1PTUVOVF9NT0RVTEVfTkFNRSA9ICdtb21lbnQnO1xuXG5mdW5jdGlvbiBsb2FkTW9tZW50TW9kdWxlICgpIHtcbiAgICBjb25zdCBtb21lbnRNb2R1bGVQYXRoICA9IHJlcXVpcmUucmVzb2x2ZShNT01FTlRfTU9EVUxFX05BTUUpO1xuICAgIGNvbnN0IHNhdmVkTW9tZW50TW9kdWxlID0gcmVxdWlyZS5jYWNoZVttb21lbnRNb2R1bGVQYXRoXTtcblxuICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW3NhdmVkTW9tZW50TW9kdWxlXTtcblxuICAgIGNvbnN0IG1vbWVudCA9IHJlcXVpcmUobW9tZW50TW9kdWxlUGF0aCk7XG5cbiAgICBtb21lbnREdXJhdGlvbkZvcm1hdFNldHVwKG1vbWVudCk7XG5cbiAgICBpZiAoc2F2ZWRNb21lbnRNb2R1bGUpXG4gICAgICAgIHJlcXVpcmUuY2FjaGVbbW9tZW50TW9kdWxlUGF0aF0gPSBzYXZlZE1vbWVudE1vZHVsZTtcbiAgICBlbHNlXG4gICAgICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW21vbWVudE1vZHVsZVBhdGhdO1xuXG4gICAgcmV0dXJuIG1vbWVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9hZE1vbWVudE1vZHVsZSgpO1xuIl19
|
|
@@ -22,7 +22,7 @@ function modifyFileRoot(baseDir, file) {
|
|
|
22
22
|
return path_1.default.join(path_1.default.parse(baseDir).root, path_1.default.relative(root, dir), base);
|
|
23
23
|
}
|
|
24
24
|
async function getDefaultDirs(baseDir) {
|
|
25
|
-
return await globby_1.default(DEFAULT_TEST_LOOKUP_DIRS, {
|
|
25
|
+
return await (0, globby_1.default)(DEFAULT_TEST_LOOKUP_DIRS, {
|
|
26
26
|
cwd: baseDir,
|
|
27
27
|
absolute: true,
|
|
28
28
|
caseSensitiveMatch: false,
|
|
@@ -37,11 +37,11 @@ function ensurePosix(fileString) {
|
|
|
37
37
|
}
|
|
38
38
|
async function convertDirsToGlobs(fileList, baseDir) {
|
|
39
39
|
fileList = await Promise.all(fileList.map(async (file) => {
|
|
40
|
-
if (!is_glob_1.default(file)) {
|
|
40
|
+
if (!(0, is_glob_1.default)(file)) {
|
|
41
41
|
const absPath = path_1.default.resolve(baseDir, file);
|
|
42
42
|
let fileStat = null;
|
|
43
43
|
try {
|
|
44
|
-
fileStat = await promisified_functions_1.stat(absPath);
|
|
44
|
+
fileStat = await (0, promisified_functions_1.stat)(absPath);
|
|
45
45
|
}
|
|
46
46
|
catch (err) {
|
|
47
47
|
return null;
|
|
@@ -64,7 +64,7 @@ async function convertDirsToGlobs(fileList, baseDir) {
|
|
|
64
64
|
return fileList.filter(file => !!file);
|
|
65
65
|
}
|
|
66
66
|
async function getFiles(globTask) {
|
|
67
|
-
const files = await globby_1.default(globTask.pattern, globTask.options);
|
|
67
|
+
const files = await (0, globby_1.default)(globTask.pattern, globTask.options);
|
|
68
68
|
return files.sort((fileA, fileB) => fileA.localeCompare(fileB));
|
|
69
69
|
}
|
|
70
70
|
async function execFileGlobs(globs, baseDir) {
|
|
@@ -72,10 +72,10 @@ async function execFileGlobs(globs, baseDir) {
|
|
|
72
72
|
// as in the older globby versions (<7.1.1)
|
|
73
73
|
const tasks = globby_1.default.generateGlobTasks(globs, { cwd: baseDir, expandDirectories: false, onlyFiles: true });
|
|
74
74
|
const files = await Promise.all(tasks.map(getFiles));
|
|
75
|
-
return lodash_1.flatten(files);
|
|
75
|
+
return (0, lodash_1.flatten)(files);
|
|
76
76
|
}
|
|
77
77
|
async function parseFileList(fileList, baseDir) {
|
|
78
|
-
if (lodash_1.isEmpty(fileList))
|
|
78
|
+
if ((0, lodash_1.isEmpty)(fileList))
|
|
79
79
|
fileList = await getDefaultDirs(baseDir);
|
|
80
80
|
fileList = await convertDirsToGlobs(fileList, baseDir);
|
|
81
81
|
fileList = await execFileGlobs(fileList, baseDir);
|
|
@@ -83,4 +83,4 @@ async function parseFileList(fileList, baseDir) {
|
|
|
83
83
|
}
|
|
84
84
|
exports.default = parseFileList;
|
|
85
85
|
module.exports = exports.default;
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtZmlsZS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BhcnNlLWZpbGUtbGlzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QixvREFBNEI7QUFDNUIsc0RBQTZCO0FBQzdCLDJEQUFtQztBQUNuQywwREFBMkI7QUFDM0IsbUNBQTBDO0FBQzFDLDBFQUFzRDtBQUd0RCxNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25ELE1BQU0sc0JBQXNCLEdBQUssV0FBVyxrQkFBUSxDQUFDLDhCQUE4QixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDbkcsTUFBTSx1QkFBdUIsR0FBSSxHQUFHLEdBQUcsY0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7QUFFdEQsU0FBUyxjQUFjLENBQUUsT0FBTyxFQUFFLElBQUk7SUFDbEMsTUFBTSxPQUFPLEdBQWMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxjQUFJLENBQUMsVUFBVSxDQUFDLGNBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFekUsSUFBSSxDQUFDLGNBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBRWhCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLGNBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEQsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLGNBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FB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QUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVyRCxPQUFPLElBQUEsZ0JBQU8sRUFBQyxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRWMsS0FBSyxVQUFVLGFBQWEsQ0FBRSxRQUFRLEVBQUUsT0FBTztJQUMxRCxJQUFJLElBQUEsZ0JBQU8sRUFBQyxRQUFRLENBQUM7UUFDakIsUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTdDLFFBQVEsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWxELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQVJELGdDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZ2xvYmJ5IGZyb20gJ2dsb2JieSc7XG5pbXBvcnQgaXNHbG9iIGZyb20gJ2lzLWdsb2InO1xuaW1wb3J0IENvbXBpbGVyIGZyb20gJy4uL2NvbXBpbGVyJztcbmltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IHsgaXNFbXB0eSwgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBzdGF0IH0gZnJvbSAnLi4vdXRpbHMvcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcblxuXG5jb25zdCBERUZBVUxUX1RFU1RfTE9PS1VQX0RJUlMgPSBbJ3Rlc3QnLCAndGVzdHMnXTtcbmNvbnN0IFRFU1RfRklMRV9HTE9CX1BBVFRFUk4gICA9IGAuLyoqLypAKCR7Q29tcGlsZXIuZ2V0U3VwcG9ydGVkVGVzdEZpbGVFeHRlbnNpb25zKCkuam9pbignfCcpfSlgO1xuY29uc3QgR0xPQl9QT1NJWF9TTEFTSF9FTkRJTkcgID0gJyonICsgcGF0aC5wb3NpeC5zZXA7XG5cbmZ1bmN0aW9uIG1vZGlmeUZpbGVSb290IChiYXNlRGlyLCBmaWxlKSB7XG4gICAgY29uc3QgYWJzUGF0aCAgICAgICAgICAgID0gcGF0aC5yZXNvbHZlKGJhc2VEaXIsIGZpbGUpO1xuICAgIGNvbnN0IGZpbGVJc09uT3RoZXJEcml2ZSA9IHBhdGguaXNBYnNvbHV0ZShwYXRoLnJlbGF0aXZlKGJhc2VEaXIsIGZpbGUpKTtcblxuICAgIGlmICghcGF0aC5pc0Fic29sdXRlKGZpbGUpIHx8IGZpbGVJc09uT3RoZXJEcml2ZSlcbiAgICAgICAgcmV0dXJuIGZpbGU7XG5cbiAgICBjb25zdCB7IHJvb3QsIGRpciwgYmFzZSB9ID0gcGF0aC5wYXJzZShhYnNQYXRoKTtcblxuICAgIHJldHVybiBwYXRoLmpvaW4ocGF0aC5wYXJzZShiYXNlRGlyKS5yb290LCBwYXRoLnJlbGF0aXZlKHJvb3QsIGRpciksIGJhc2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXREZWZhdWx0RGlycyAoYmFzZURpcikge1xuICAgIHJldHVybiBhd2FpdCBnbG9iYnkoREVGQVVMVF9URVNUX0xPT0tVUF9ESVJTLCB7XG4gICAgICAgIGN3ZDogICAgICAgICAgICAgICAgYmFzZURpcixcbiAgICAgICAgYWJzb2x1dGU6ICAgICAgICAgICB0cnVlLFxuICAgICAgICBjYXNlU2Vuc2l0aXZlTWF0Y2g6IGZhbHNlLFxuICAgICAgICBleHBhbmREaXJlY3RvcmllczogIGZhbHNlLFxuICAgICAgICBvbmx5RGlyZWN0b3JpZXM6ICAgIHRydWUsXG4gICAgICAgIHN1cHByZXNzRXJyb3JzOiAgICAgdHJ1ZSxcbiAgICB9KTtcbn1cblxuLy8gTk9URTogZ2xvYiBwYXR0ZXJucyBjYW4gb25seSBjb250YWluIGZvcndhcmQtc2xhc2hlcyAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9nbG9iYnkjYXBpKVxuZnVuY3Rpb24gZW5zdXJlUG9zaXggKGZpbGVTdHJpbmcpIHtcbiAgICByZXR1cm4gZmlsZVN0cmluZy5zcGxpdChwYXRoLndpbjMyLnNlcCkuam9pbihwYXRoLnBvc2l4LnNlcCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbnZlcnREaXJzVG9HbG9icyAoZmlsZUxpc3QsIGJhc2VEaXIpIHtcbiAgICBmaWxlTGlzdCA9IGF3YWl0IFByb21pc2UuYWxsKGZpbGVMaXN0Lm1hcChhc3luYyBmaWxlID0+IHtcbiAgICAgICAgaWYgKCFpc0dsb2IoZmlsZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFic1BhdGggPSBwYXRoLnJlc29sdmUoYmFzZURpciwgZmlsZSk7XG4gICAgICAgICAgICBsZXQgZmlsZVN0YXQgID0gbnVsbDtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmaWxlU3RhdCA9IGF3YWl0IHN0YXQoYWJzUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmaWxlU3RhdC5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAgICAgZmlsZSA9IHBhdGguam9pbihmaWxlLCBURVNUX0ZJTEVfR0xPQl9QQVRURVJOKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBlbnN1cmVQb3NpeChmaWxlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKE9TLndpbilcbiAgICAgICAgICAgICAgICBmaWxlID0gbW9kaWZ5RmlsZVJvb3QoYmFzZURpciwgZmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgd29ya2Fyb3VuZCBhZnRlciByZXNvbHZpbmcgaHR0cHM6Ly9naXRodWIuY29tL21ybWxuYy9mYXN0LWdsb2IvaXNzdWVzLzI5MFxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpbGUgPSBlbnN1cmVQb3NpeChmaWxlKTtcblxuICAgICAgICAgICAgaWYgKGZpbGUuZW5kc1dpdGgoR0xPQl9QT1NJWF9TTEFTSF9FTkRJTkcpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlbnN1cmVQb3NpeChmaWxlKTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZmlsZUxpc3QuZmlsdGVyKGZpbGUgPT4gISFmaWxlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0RmlsZXMgKGdsb2JUYXNrKSB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBnbG9iYnkoZ2xvYlRhc2sucGF0dGVybiwgZ2xvYlRhc2sub3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZmlsZXMuc29ydCgoZmlsZUEsIGZpbGVCKSA9PiBmaWxlQS5sb2NhbGVDb21wYXJlKGZpbGVCKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4ZWNGaWxlR2xvYnMgKGdsb2JzLCBiYXNlRGlyKSB7XG4gICAgLy8gTk9URTogV2UgaGF2ZSB0byBjcmVhdGUgZ2xvYiB0YXNrcywgZXhlY3V0ZSB0aGVtIGFuZCBzb3J0IHRoZWlyIHJlc3VsdHMgc2VwYXJhdGVseSB0byBwcmVzZXJ2ZSB0aGUgc2FtZSBpdGVtIG9yZGVyXG4gICAgLy8gYXMgaW4gdGhlIG9sZGVyIGdsb2JieSB2ZXJzaW9ucyAoPDcuMS4xKVxuICAgIGNvbnN0IHRhc2tzID0gZ2xvYmJ5LmdlbmVyYXRlR2xvYlRhc2tzKGdsb2JzLCB7IGN3ZDogYmFzZURpciwgZXhwYW5kRGlyZWN0b3JpZXM6IGZhbHNlLCBvbmx5RmlsZXM6IHRydWUgfSk7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBQcm9taXNlLmFsbCh0YXNrcy5tYXAoZ2V0RmlsZXMpKTtcblxuICAgIHJldHVybiBmbGF0dGVuKGZpbGVzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcGFyc2VGaWxlTGlzdCAoZmlsZUxpc3QsIGJhc2VEaXIpIHtcbiAgICBpZiAoaXNFbXB0eShmaWxlTGlzdCkpXG4gICAgICAgIGZpbGVMaXN0ID0gYXdhaXQgZ2V0RGVmYXVsdERpcnMoYmFzZURpcik7XG5cbiAgICBmaWxlTGlzdCA9IGF3YWl0IGNvbnZlcnREaXJzVG9HbG9icyhmaWxlTGlzdCwgYmFzZURpcik7XG4gICAgZmlsZUxpc3QgPSBhd2FpdCBleGVjRmlsZUdsb2JzKGZpbGVMaXN0LCBiYXNlRGlyKTtcblxuICAgIHJldHVybiBmaWxlTGlzdC5tYXAoZmlsZSA9PiBwYXRoLnJlc29sdmUoYmFzZURpciwgZmlsZSkpO1xufVxuIl19
|
|
@@ -77,7 +77,7 @@ class PathPattern extends events_1.default {
|
|
|
77
77
|
let resultFilePath = pattern;
|
|
78
78
|
const problematicPlaceholders = [];
|
|
79
79
|
for (const placeholder in placeholderToDataMap) {
|
|
80
|
-
const findPlaceholderRegExp = new RegExp(lodash_1.escapeRegExp(placeholder), 'g');
|
|
80
|
+
const findPlaceholderRegExp = new RegExp((0, lodash_1.escapeRegExp)(placeholder), 'g');
|
|
81
81
|
resultFilePath = resultFilePath.replace(findPlaceholderRegExp, () => {
|
|
82
82
|
if (placeholder === PLACEHOLDERS.FILE_INDEX) {
|
|
83
83
|
const getFileIndexFn = placeholderToDataMap[placeholder];
|
|
@@ -88,7 +88,7 @@ class PathPattern extends events_1.default {
|
|
|
88
88
|
}
|
|
89
89
|
else if (placeholder === PLACEHOLDERS.USERAGENT) {
|
|
90
90
|
const userAgent = placeholderToDataMap[placeholder];
|
|
91
|
-
return escape_user_agent_1.default(userAgent);
|
|
91
|
+
return (0, escape_user_agent_1.default)(userAgent);
|
|
92
92
|
}
|
|
93
93
|
let calculatedValue = placeholderToDataMap[placeholder];
|
|
94
94
|
if (calculatedValue === null || calculatedValue === void 0) {
|
|
@@ -104,7 +104,7 @@ class PathPattern extends events_1.default {
|
|
|
104
104
|
}
|
|
105
105
|
getPath(forError) {
|
|
106
106
|
const path = this._buildPath(this.pattern, this.placeholderToDataMap, forError);
|
|
107
|
-
return correct_file_path_1.default(path, this.fileExtension);
|
|
107
|
+
return (0, correct_file_path_1.default)(path, this.fileExtension);
|
|
108
108
|
}
|
|
109
109
|
// For testing purposes
|
|
110
110
|
static get PLACEHOLDERS() {
|
|
@@ -113,4 +113,4 @@ class PathPattern extends events_1.default {
|
|
|
113
113
|
}
|
|
114
114
|
exports.default = PathPattern;
|
|
115
115
|
module.exports = exports.default;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BhdGgtcGF0dGVybi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFrRDtBQUNsRCxtRkFBeUQ7QUFDekQsbUZBQXlEO0FBQ3pELG9EQUFrQztBQUVsQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDakMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBRS9CLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUUvQixNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUV6QyxNQUFNLFlBQVksR0FBRztJQUNqQixJQUFJLEVBQWdCLFNBQVM7SUFDN0IsSUFBSSxFQUFnQixTQUFTO0lBQzdCLFVBQVUsRUFBVSxlQUFlO0lBQ25DLFVBQVUsRUFBVSxlQUFlO0lBQ25DLGtCQUFrQixFQUFFLHVCQUF1QjtJQUMzQyxPQUFPLEVBQWEsWUFBWTtJQUNoQyxJQUFJLEVBQWdCLFNBQVM7SUFDN0IsU0FBUyxFQUFXLGNBQWM7SUFDbEMsT0FBTyxFQUFhLFlBQVk7SUFDaEMsZUFBZSxFQUFLLG9CQUFvQjtJQUN4QyxFQUFFLEVBQWtCLE9BQU87SUFDM0IsVUFBVSxFQUFVLGVBQWU7SUFDbkMsT0FBTyxFQUFhLFlBQVk7SUFDaEMsTUFBTSxFQUFjLFdBQVc7Q0FDbEMsQ0FBQztBQUVGLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLE9BQU8sSUFBSTtJQUN0RSxHQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7QUFFeEgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDaEYsTUFBTSxlQUFlLEdBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUUvRixNQUFxQixXQUFZLFNBQVEsZ0JBQVk7SUFDakQsWUFBYSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUk7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsT0FBTyxHQUFnQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQW1CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLGFBQWEsR0FBVSxhQUFhLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWMsQ0FBRSxPQUFPO1FBQ25CLElBQUksT0FBTztZQUNQLE9BQU8sT0FBTyxDQUFDO1FBRW5CLE9BQU8sK0JBQStCLENBQUM7SUFDM0MsQ0FBQztJQUVELGlCQUFpQixDQUFFLElBQUk7UUFDbkIsTUFBTSxhQUFhLEdBQUc7WUFDbEIsTUFBTSxFQUFVLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN0QyxLQUFLLEVBQVcsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNyQyxhQUFhLEVBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVDLGFBQWEsRUFBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDNUMsU0FBUyxFQUFPLENBQUM7WUFDakIsY0FBYyxFQUFFLENBQUM7U0FDcEIsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCwyQkFBMkI7UUFDdkIsT0FBTztZQUNILENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNuRCxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDbEQsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUMxRCxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQzFELENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUN0RCxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQztZQUNuRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDcEQsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNqRCxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBVSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUN4RyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlO1lBQzVFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUk7WUFDakUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTztZQUNwRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUk7WUFDcEUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE9BQU87U0FDMUUsQ0FBQztJQUNOLENBQUM7SUFFRCxVQUFVLENBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVE7UUFDL0MsSUFBSSxjQUFjLEdBQWMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRW5DLEtBQUssTUFBTSxXQUFXLElBQUksb0JBQW9CLEVBQUU7WUFDNUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxxQkFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRXJFLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtnQkFDaEUsSUFBSSxXQUFXLEtBQUssWUFBWSxDQUFDLFVBQVUsRUFBRTtvQkFDekMsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3pELElBQUksTUFBTSxHQUFhLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFFaEQsSUFBSSxRQUFRO3dCQUNSLE1BQU0sR0FBRyxHQUFHLGFBQWEsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFFM0MsT0FBTyxNQUFNLENBQUM7aUJBQ2pCO3FCQUVJLElBQUksV0FBVyxLQUFLLFlBQVksQ0FBQyxTQUFTLEVBQUU7b0JBQzdDLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUVwRCxPQUFPLDJCQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3JDO2dCQUVELElBQUksZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUV4RCxJQUFJLGVBQWUsS0FBSyxJQUFJLElBQUksZUFBZSxLQUFLLEtBQUssQ0FBQyxFQUFFO29CQUN4RCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBRTFDLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQztpQkFDbkQ7Z0JBRUQsT0FBTyxlQUFlLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELElBQUksdUJBQXVCLENBQUMsTUFBTTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUUzRixPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxDQUFFLFFBQVE7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWhGLE9BQU8sMkJBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsTUFBTSxLQUFLLFlBQVk7UUFDbkIsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKO0FBckdELDhCQXFHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVzY2FwZVJlZ0V4cCBhcyBlc2NhcGVSZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgY29ycmVjdEZpbGVQYXRoIGZyb20gJy4uL3V0aWxzL2NvcnJlY3QtZmlsZS1wYXRoJztcbmltcG9ydCBlc2NhcGVVc2VyQWdlbnQgZnJvbSAnLi4vdXRpbHMvZXNjYXBlLXVzZXItYWdlbnQnO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudHMnO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmNvbnN0IFRJTUVfRk9STUFUID0gJ0hILW1tLXNzJztcblxuY29uc3QgRVJST1JTX0ZPTERFUiA9ICdlcnJvcnMnO1xuXG5jb25zdCBQUk9CTEVNQVRJQ19QTEFDRUhPTERFUl9WQUxVRSA9ICcnO1xuXG5jb25zdCBQTEFDRUhPTERFUlMgPSB7XG4gICAgREFURTogICAgICAgICAgICAgICAnJHtEQVRFfScsXG4gICAgVElNRTogICAgICAgICAgICAgICAnJHtUSU1FfScsXG4gICAgVEVTVF9JTkRFWDogICAgICAgICAnJHtURVNUX0lOREVYfScsXG4gICAgRklMRV9JTkRFWDogICAgICAgICAnJHtGSUxFX0lOREVYfScsXG4gICAgUVVBUkFOVElORV9BVFRFTVBUOiAnJHtRVUFSQU5USU5FX0FUVEVNUFR9JyxcbiAgICBGSVhUVVJFOiAgICAgICAgICAgICcke0ZJWFRVUkV9JyxcbiAgICBURVNUOiAgICAgICAgICAgICAgICcke1RFU1R9JyxcbiAgICBVU0VSQUdFTlQ6ICAgICAgICAgICcke1VTRVJBR0VOVH0nLFxuICAgIEJST1dTRVI6ICAgICAgICAgICAgJyR7QlJPV1NFUn0nLFxuICAgIEJST1dTRVJfVkVSU0lPTjogICAgJyR7QlJPV1NFUl9WRVJTSU9OfScsXG4gICAgT1M6ICAgICAgICAgICAgICAgICAnJHtPU30nLFxuICAgIE9TX1ZFUlNJT046ICAgICAgICAgJyR7T1NfVkVSU0lPTn0nLFxuICAgIFRFU1RfSUQ6ICAgICAgICAgICAgJyR7VEVTVF9JRH0nLFxuICAgIFJVTl9JRDogICAgICAgICAgICAgJyR7UlVOX0lEfScsXG59O1xuXG5jb25zdCBERUZBVUxUX1BBVEhfUEFUVEVSTl9GT1JfUkVQT1JUID0gYCR7UExBQ0VIT0xERVJTLkRBVEV9XyR7UExBQ0VIT0xERVJTLlRJTUV9XFxcXCR7UExBQ0VIT0xERVJTLlRFU1RfSUR9XFxcXGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke1BMQUNFSE9MREVSUy5SVU5fSUR9XFxcXCR7UExBQ0VIT0xERVJTLlVTRVJBR0VOVH1cXFxcJHtQTEFDRUhPTERFUlMuRklMRV9JTkRFWH1gO1xuXG5jb25zdCBURVNUX0lEX1RFTVBMQVRFID0gZGF0YSA9PiBkYXRhLnRlc3RJbmRleCA/IGB0ZXN0LSR7ZGF0YS50ZXN0SW5kZXh9YCA6ICcnO1xuY29uc3QgUlVOX0lEX1RFTVBMQVRFICA9IGRhdGEgPT4gZGF0YS5xdWFyYW50aW5lQXR0ZW1wdCA/IGBydW4tJHtkYXRhLnF1YXJhbnRpbmVBdHRlbXB0fWAgOiAnJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGF0aFBhdHRlcm4gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yIChwYXR0ZXJuLCBmaWxlRXh0ZW5zaW9uLCBkYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5wYXR0ZXJuICAgICAgICAgICAgICA9IHRoaXMuX2Vuc3VyZVBhdHRlcm4ocGF0dGVybik7XG4gICAgICAgIHRoaXMuZGF0YSAgICAgICAgICAgICAgICAgPSB0aGlzLl9hZGREZWZhdWx0RmllbGRzKGRhdGEpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVG9EYXRhTWFwID0gdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXJUb0RhdGFNYXAoKTtcbiAgICAgICAgdGhpcy5maWxlRXh0ZW5zaW9uICAgICAgICA9IGZpbGVFeHRlbnNpb247XG4gICAgfVxuXG4gICAgX2Vuc3VyZVBhdHRlcm4gKHBhdHRlcm4pIHtcbiAgICAgICAgaWYgKHBhdHRlcm4pXG4gICAgICAgICAgICByZXR1cm4gcGF0dGVybjtcblxuICAgICAgICByZXR1cm4gREVGQVVMVF9QQVRIX1BBVFRFUk5fRk9SX1JFUE9SVDtcbiAgICB9XG5cbiAgICBfYWRkRGVmYXVsdEZpZWxkcyAoZGF0YSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0RmllbGRzID0ge1xuICAgICAgICAgICAgdGVzdElkOiAgICAgICAgIFRFU1RfSURfVEVNUExBVEUoZGF0YSksXG4gICAgICAgICAgICBydW5JZDogICAgICAgICAgUlVOX0lEX1RFTVBMQVRFKGRhdGEpLFxuICAgICAgICAgICAgZm9ybWF0dGVkRGF0ZTogIGRhdGEubm93LmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICAgICAgICAgICBmb3JtYXR0ZWRUaW1lOiAgZGF0YS5ub3cuZm9ybWF0KFRJTUVfRk9STUFUKSxcbiAgICAgICAgICAgIGZpbGVJbmRleDogICAgICAxLFxuICAgICAgICAgICAgZXJyb3JGaWxlSW5kZXg6IDEsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRGaWVsZHMsIGRhdGEpO1xuICAgIH1cblxuICAgIF9jcmVhdGVQbGFjZWhvbGRlclRvRGF0YU1hcCAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlRFU1RfSURdOiAgICAgICAgICAgIHRoaXMuZGF0YS50ZXN0SWQsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlJVTl9JRF06ICAgICAgICAgICAgIHRoaXMuZGF0YS5ydW5JZCxcbiAgICAgICAgICAgIFtQTEFDRUhPTERFUlMuREFURV06ICAgICAgICAgICAgICAgdGhpcy5kYXRhLmZvcm1hdHRlZERhdGUsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlRJTUVdOiAgICAgICAgICAgICAgIHRoaXMuZGF0YS5mb3JtYXR0ZWRUaW1lLFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5URVNUX0lOREVYXTogICAgICAgICB0aGlzLmRhdGEudGVzdEluZGV4LFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5RVUFSQU5USU5FX0FUVEVNUFRdOiB0aGlzLmRhdGEucXVhcmFudGluZUF0dGVtcHQgfHwgMSxcbiAgICAgICAgICAgIFtQTEFDRUhPTERFUlMuRklYVFVSRV06ICAgICAgICAgICAgdGhpcy5kYXRhLmZpeHR1cmUsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlRFU1RdOiAgICAgICAgICAgICAgIHRoaXMuZGF0YS50ZXN0LFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5GSUxFX0lOREVYXTogICAgICAgICBmb3JFcnJvciA9PiBmb3JFcnJvciA/IHRoaXMuZGF0YS5lcnJvckZpbGVJbmRleCA6IHRoaXMuZGF0YS5maWxlSW5kZXgsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlVTRVJBR0VOVF06ICAgICAgICAgIHRoaXMuZGF0YS5wYXJzZWRVc2VyQWdlbnQucHJldHR5VXNlckFnZW50LFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5CUk9XU0VSXTogICAgICAgICAgICB0aGlzLmRhdGEucGFyc2VkVXNlckFnZW50Lm5hbWUsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLkJST1dTRVJfVkVSU0lPTl06ICAgIHRoaXMuZGF0YS5wYXJzZWRVc2VyQWdlbnQudmVyc2lvbixcbiAgICAgICAgICAgIFtQTEFDRUhPTERFUlMuT1NdOiAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnBhcnNlZFVzZXJBZ2VudC5vcy5uYW1lLFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5PU19WRVJTSU9OXTogICAgICAgICB0aGlzLmRhdGEucGFyc2VkVXNlckFnZW50Lm9zLnZlcnNpb24sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgX2J1aWxkUGF0aCAocGF0dGVybiwgcGxhY2Vob2xkZXJUb0RhdGFNYXAsIGZvckVycm9yKSB7XG4gICAgICAgIGxldCByZXN1bHRGaWxlUGF0aCAgICAgICAgICAgID0gcGF0dGVybjtcbiAgICAgICAgY29uc3QgcHJvYmxlbWF0aWNQbGFjZWhvbGRlcnMgPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBsYWNlaG9sZGVyIGluIHBsYWNlaG9sZGVyVG9EYXRhTWFwKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5kUGxhY2Vob2xkZXJSZWdFeHAgPSBuZXcgUmVnRXhwKGVzY2FwZVJlKHBsYWNlaG9sZGVyKSwgJ2cnKTtcblxuICAgICAgICAgICAgcmVzdWx0RmlsZVBhdGggPSByZXN1bHRGaWxlUGF0aC5yZXBsYWNlKGZpbmRQbGFjZWhvbGRlclJlZ0V4cCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwbGFjZWhvbGRlciA9PT0gUExBQ0VIT0xERVJTLkZJTEVfSU5ERVgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0RmlsZUluZGV4Rm4gPSBwbGFjZWhvbGRlclRvRGF0YU1hcFtwbGFjZWhvbGRlcl07XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgICAgICAgICAgID0gZ2V0RmlsZUluZGV4Rm4oZm9yRXJyb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3JFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGAke0VSUk9SU19GT0xERVJ9XFxcXCR7cmVzdWx0fWA7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwbGFjZWhvbGRlciA9PT0gUExBQ0VIT0xERVJTLlVTRVJBR0VOVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VyQWdlbnQgPSBwbGFjZWhvbGRlclRvRGF0YU1hcFtwbGFjZWhvbGRlcl07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVzY2FwZVVzZXJBZ2VudCh1c2VyQWdlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBjYWxjdWxhdGVkVmFsdWUgPSBwbGFjZWhvbGRlclRvRGF0YU1hcFtwbGFjZWhvbGRlcl07XG5cbiAgICAgICAgICAgICAgICBpZiAoY2FsY3VsYXRlZFZhbHVlID09PSBudWxsIHx8IGNhbGN1bGF0ZWRWYWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2JsZW1hdGljUGxhY2Vob2xkZXJzLnB1c2gocGxhY2Vob2xkZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWRWYWx1ZSA9IFBST0JMRU1BVElDX1BMQUNFSE9MREVSX1ZBTFVFO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVkVmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9ibGVtYXRpY1BsYWNlaG9sZGVycy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3Byb2JsZW1hdGljLXBsYWNlaG9sZGVycy1mb3VuZCcsIHsgcGxhY2Vob2xkZXJzOiBwcm9ibGVtYXRpY1BsYWNlaG9sZGVycyB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0RmlsZVBhdGg7XG4gICAgfVxuXG4gICAgZ2V0UGF0aCAoZm9yRXJyb3IpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuX2J1aWxkUGF0aCh0aGlzLnBhdHRlcm4sIHRoaXMucGxhY2Vob2xkZXJUb0RhdGFNYXAsIGZvckVycm9yKTtcblxuICAgICAgICByZXR1cm4gY29ycmVjdEZpbGVQYXRoKHBhdGgsIHRoaXMuZmlsZUV4dGVuc2lvbik7XG4gICAgfVxuXG4gICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICBzdGF0aWMgZ2V0IFBMQUNFSE9MREVSUyAoKSB7XG4gICAgICAgIHJldHVybiBQTEFDRUhPTERFUlM7XG4gICAgfVxufVxuIl19
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BhdGgtcGF0dGVybi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFrRDtBQUNsRCxtRkFBeUQ7QUFDekQsbUZBQXlEO0FBQ3pELG9EQUFrQztBQUVsQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDakMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBRS9CLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUUvQixNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUV6QyxNQUFNLFlBQVksR0FBRztJQUNqQixJQUFJLEVBQWdCLFNBQVM7SUFDN0IsSUFBSSxFQUFnQixTQUFTO0lBQzdCLFVBQVUsRUFBVSxlQUFlO0lBQ25DLFVBQVUsRUFBVSxlQUFlO0lBQ25DLGtCQUFrQixFQUFFLHVCQUF1QjtJQUMzQyxPQUFPLEVBQWEsWUFBWTtJQUNoQyxJQUFJLEVBQWdCLFNBQVM7SUFDN0IsU0FBUyxFQUFXLGNBQWM7SUFDbEMsT0FBTyxFQUFhLFlBQVk7SUFDaEMsZUFBZSxFQUFLLG9CQUFvQjtJQUN4QyxFQUFFLEVBQWtCLE9BQU87SUFDM0IsVUFBVSxFQUFVLGVBQWU7SUFDbkMsT0FBTyxFQUFhLFlBQVk7SUFDaEMsTUFBTSxFQUFjLFdBQVc7Q0FDbEMsQ0FBQztBQUVGLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLE9BQU8sSUFBSTtJQUN0RSxHQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7QUFFeEgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFB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QUssSUFBSSxJQUFJLGVBQWUsS0FBSyxLQUFLLENBQUMsRUFBRTtvQkFDeEQsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUUxQyxlQUFlLEdBQUcsNkJBQTZCLENBQUM7aUJBQ25EO2dCQUVELE9BQU8sZUFBZSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLHVCQUF1QixDQUFDLE1BQU07WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUM7UUFFM0YsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sQ0FBRSxRQUFRO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoRixPQUFPLElBQUEsMkJBQWUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsTUFBTSxLQUFLLFlBQVk7UUFDbkIsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKO0FBckdELDhCQXFHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVzY2FwZVJlZ0V4cCBhcyBlc2NhcGVSZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgY29ycmVjdEZpbGVQYXRoIGZyb20gJy4uL3V0aWxzL2NvcnJlY3QtZmlsZS1wYXRoJztcbmltcG9ydCBlc2NhcGVVc2VyQWdlbnQgZnJvbSAnLi4vdXRpbHMvZXNjYXBlLXVzZXItYWdlbnQnO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudHMnO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmNvbnN0IFRJTUVfRk9STUFUID0gJ0hILW1tLXNzJztcblxuY29uc3QgRVJST1JTX0ZPTERFUiA9ICdlcnJvcnMnO1xuXG5jb25zdCBQUk9CTEVNQVRJQ19QTEFDRUhPTERFUl9WQUxVRSA9ICcnO1xuXG5jb25zdCBQTEFDRUhPTERFUlMgPSB7XG4gICAgREFURTogICAgICAgICAgICAgICAnJHtEQVRFfScsXG4gICAgVElNRTogICAgICAgICAgICAgICAnJHtUSU1FfScsXG4gICAgVEVTVF9JTkRFWDogICAgICAgICAnJHtURVNUX0lOREVYfScsXG4gICAgRklMRV9JTkRFWDogICAgICAgICAnJHtGSUxFX0lOREVYfScsXG4gICAgUVVBUkFOVElORV9BVFRFTVBUOiAnJHtRVUFSQU5USU5FX0FUVEVNUFR9JyxcbiAgICBGSVhUVVJFOiAgICAgICAgICAgICcke0ZJWFRVUkV9JyxcbiAgICBURVNUOiAgICAgICAgICAgICAgICcke1RFU1R9JyxcbiAgICBVU0VSQUdFTlQ6ICAgICAgICAgICcke1VTRVJBR0VOVH0nLFxuICAgIEJST1dTRVI6ICAgICAgICAgICAgJyR7QlJPV1NFUn0nLFxuICAgIEJST1dTRVJfVkVSU0lPTjogICAgJyR7QlJPV1NFUl9WRVJTSU9OfScsXG4gICAgT1M6ICAgICAgICAgICAgICAgICAnJHtPU30nLFxuICAgIE9TX1ZFUlNJT046ICAgICAgICAgJyR7T1NfVkVSU0lPTn0nLFxuICAgIFRFU1RfSUQ6ICAgICAgICAgICAgJyR7VEVTVF9JRH0nLFxuICAgIFJVTl9JRDogICAgICAgICAgICAgJyR7UlVOX0lEfScsXG59O1xuXG5jb25zdCBERUZBVUxUX1BBVEhfUEFUVEVSTl9GT1JfUkVQT1JUID0gYCR7UExBQ0VIT0xERVJTLkRBVEV9XyR7UExBQ0VIT0xERVJTLlRJTUV9XFxcXCR7UExBQ0VIT0xERVJTLlRFU1RfSUR9XFxcXGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke1BMQUNFSE9MREVSUy5SVU5fSUR9XFxcXCR7UExBQ0VIT0xERVJTLlVTRVJBR0VOVH1cXFxcJHtQTEFDRUhPTERFUlMuRklMRV9JTkRFWH1gO1xuXG5jb25zdCBURVNUX0lEX1RFTVBMQVRFID0gZGF0YSA9PiBkYXRhLnRlc3RJbmRleCA/IGB0ZXN0LSR7ZGF0YS50ZXN0SW5kZXh9YCA6ICcnO1xuY29uc3QgUlVOX0lEX1RFTVBMQVRFICA9IGRhdGEgPT4gZGF0YS5xdWFyYW50aW5lQXR0ZW1wdCA/IGBydW4tJHtkYXRhLnF1YXJhbnRpbmVBdHRlbXB0fWAgOiAnJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGF0aFBhdHRlcm4gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yIChwYXR0ZXJuLCBmaWxlRXh0ZW5zaW9uLCBkYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5wYXR0ZXJuICAgICAgICAgICAgICA9IHRoaXMuX2Vuc3VyZVBhdHRlcm4ocGF0dGVybik7XG4gICAgICAgIHRoaXMuZGF0YSAgICAgICAgICAgICAgICAgPSB0aGlzLl9hZGREZWZhdWx0RmllbGRzKGRhdGEpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVG9EYXRhTWFwID0gdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXJUb0RhdGFNYXAoKTtcbiAgICAgICAgdGhpcy5maWxlRXh0ZW5zaW9uICAgICAgICA9IGZpbGVFeHRlbnNpb247XG4gICAgfVxuXG4gICAgX2Vuc3VyZVBhdHRlcm4gKHBhdHRlcm4pIHtcbiAgICAgICAgaWYgKHBhdHRlcm4pXG4gICAgICAgICAgICByZXR1cm4gcGF0dGVybjtcblxuICAgICAgICByZXR1cm4gREVGQVVMVF9QQVRIX1BBVFRFUk5fRk9SX1JFUE9SVDtcbiAgICB9XG5cbiAgICBfYWRkRGVmYXVsdEZpZWxkcyAoZGF0YSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0RmllbGRzID0ge1xuICAgICAgICAgICAgdGVzdElkOiAgICAgICAgIFRFU1RfSURfVEVNUExBVEUoZGF0YSksXG4gICAgICAgICAgICBydW5JZDogICAgICAgICAgUlVOX0lEX1RFTVBMQVRFKGRhdGEpLFxuICAgICAgICAgICAgZm9ybWF0dGVkRGF0ZTogIGRhdGEubm93LmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICAgICAgICAgICBmb3JtYXR0ZWRUaW1lOiAgZGF0YS5ub3cuZm9ybWF0KFRJTUVfRk9STUFUKSxcbiAgICAgICAgICAgIGZpbGVJbmRleDogICAgICAxLFxuICAgICAgICAgICAgZXJyb3JGaWxlSW5kZXg6IDEsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRGaWVsZHMsIGRhdGEpO1xuICAgIH1cblxuICAgIF9jcmVhdGVQbGFjZWhvbGRlclRvRGF0YU1hcCAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlRFU1RfSURdOiAgICAgICAgICAgIHRoaXMuZGF0YS50ZXN0SWQsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlJVTl9JRF06ICAgICAgICAgICAgIHRoaXMuZGF0YS5ydW5JZCxcbiAgICAgICAgICAgIFtQTEFDRUhPTERFUlMuREFURV06ICAgICAgICAgICAgICAgdGhpcy5kYXRhLmZvcm1hdHRlZERhdGUsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlRJTUVdOiAgICAgICAgICAgICAgIHRoaXMuZGF0YS5mb3JtYXR0ZWRUaW1lLFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5URVNUX0lOREVYXTogICAgICAgICB0aGlzLmRhdGEudGVzdEluZGV4LFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5RVUFSQU5USU5FX0FUVEVNUFRdOiB0aGlzLmRhdGEucXVhcmFudGluZUF0dGVtcHQgfHwgMSxcbiAgICAgICAgICAgIFtQTEFDRUhPTERFUlMuRklYVFVSRV06ICAgICAgICAgICAgdGhpcy5kYXRhLmZpeHR1cmUsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlRFU1RdOiAgICAgICAgICAgICAgIHRoaXMuZGF0YS50ZXN0LFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5GSUxFX0lOREVYXTogICAgICAgICBmb3JFcnJvciA9PiBmb3JFcnJvciA/IHRoaXMuZGF0YS5lcnJvckZpbGVJbmRleCA6IHRoaXMuZGF0YS5maWxlSW5kZXgsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLlVTRVJBR0VOVF06ICAgICAgICAgIHRoaXMuZGF0YS5wYXJzZWRVc2VyQWdlbnQucHJldHR5VXNlckFnZW50LFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5CUk9XU0VSXTogICAgICAgICAgICB0aGlzLmRhdGEucGFyc2VkVXNlckFnZW50Lm5hbWUsXG4gICAgICAgICAgICBbUExBQ0VIT0xERVJTLkJST1dTRVJfVkVSU0lPTl06ICAgIHRoaXMuZGF0YS5wYXJzZWRVc2VyQWdlbnQudmVyc2lvbixcbiAgICAgICAgICAgIFtQTEFDRUhPTERFUlMuT1NdOiAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnBhcnNlZFVzZXJBZ2VudC5vcy5uYW1lLFxuICAgICAgICAgICAgW1BMQUNFSE9MREVSUy5PU19WRVJTSU9OXTogICAgICAgICB0aGlzLmRhdGEucGFyc2VkVXNlckFnZW50Lm9zLnZlcnNpb24sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgX2J1aWxkUGF0aCAocGF0dGVybiwgcGxhY2Vob2xkZXJUb0RhdGFNYXAsIGZvckVycm9yKSB7XG4gICAgICAgIGxldCByZXN1bHRGaWxlUGF0aCAgICAgICAgICAgID0gcGF0dGVybjtcbiAgICAgICAgY29uc3QgcHJvYmxlbWF0aWNQbGFjZWhvbGRlcnMgPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBsYWNlaG9sZGVyIGluIHBsYWNlaG9sZGVyVG9EYXRhTWFwKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5kUGxhY2Vob2xkZXJSZWdFeHAgPSBuZXcgUmVnRXhwKGVzY2FwZVJlKHBsYWNlaG9sZGVyKSwgJ2cnKTtcblxuICAgICAgICAgICAgcmVzdWx0RmlsZVBhdGggPSByZXN1bHRGaWxlUGF0aC5yZXBsYWNlKGZpbmRQbGFjZWhvbGRlclJlZ0V4cCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwbGFjZWhvbGRlciA9PT0gUExBQ0VIT0xERVJTLkZJTEVfSU5ERVgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0RmlsZUluZGV4Rm4gPSBwbGFjZWhvbGRlclRvRGF0YU1hcFtwbGFjZWhvbGRlcl07XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQgICAgICAgICAgID0gZ2V0RmlsZUluZGV4Rm4oZm9yRXJyb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3JFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGAke0VSUk9SU19GT0xERVJ9XFxcXCR7cmVzdWx0fWA7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwbGFjZWhvbGRlciA9PT0gUExBQ0VIT0xERVJTLlVTRVJBR0VOVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VyQWdlbnQgPSBwbGFjZWhvbGRlclRvRGF0YU1hcFtwbGFjZWhvbGRlcl07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVzY2FwZVVzZXJBZ2VudCh1c2VyQWdlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBjYWxjdWxhdGVkVmFsdWUgPSBwbGFjZWhvbGRlclRvRGF0YU1hcFtwbGFjZWhvbGRlcl07XG5cbiAgICAgICAgICAgICAgICBpZiAoY2FsY3VsYXRlZFZhbHVlID09PSBudWxsIHx8IGNhbGN1bGF0ZWRWYWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2JsZW1hdGljUGxhY2Vob2xkZXJzLnB1c2gocGxhY2Vob2xkZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZWRWYWx1ZSA9IFBST0JMRU1BVElDX1BMQUNFSE9MREVSX1ZBTFVFO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVkVmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9ibGVtYXRpY1BsYWNlaG9sZGVycy5sZW5ndGgpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3Byb2JsZW1hdGljLXBsYWNlaG9sZGVycy1mb3VuZCcsIHsgcGxhY2Vob2xkZXJzOiBwcm9ibGVtYXRpY1BsYWNlaG9sZGVycyB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0RmlsZVBhdGg7XG4gICAgfVxuXG4gICAgZ2V0UGF0aCAoZm9yRXJyb3IpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuX2J1aWxkUGF0aCh0aGlzLnBhdHRlcm4sIHRoaXMucGxhY2Vob2xkZXJUb0RhdGFNYXAsIGZvckVycm9yKTtcblxuICAgICAgICByZXR1cm4gY29ycmVjdEZpbGVQYXRoKHBhdGgsIHRoaXMuZmlsZUV4dGVuc2lvbik7XG4gICAgfVxuXG4gICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICBzdGF0aWMgZ2V0IFBMQUNFSE9MREVSUyAoKSB7XG4gICAgICAgIHJldHVybiBQTEFDRUhPTERFUlM7XG4gICAgfVxufVxuIl19
|
|
@@ -11,7 +11,7 @@ function isStreamMock(obj) {
|
|
|
11
11
|
function validateReporterOutput(obj) {
|
|
12
12
|
const isValidReporterOutput = obj === void 0 ||
|
|
13
13
|
typeof obj === 'string' ||
|
|
14
|
-
is_stream_1.writable(obj) ||
|
|
14
|
+
(0, is_stream_1.writable)(obj) ||
|
|
15
15
|
isStreamMock(obj);
|
|
16
16
|
if (!isValidReporterOutput)
|
|
17
17
|
throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.invalidReporterOutput);
|
|
@@ -29,4 +29,4 @@ function default_1(name, output) {
|
|
|
29
29
|
}
|
|
30
30
|
exports.default = default_1;
|
|
31
31
|
module.exports = exports.default;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1yZXBvcnRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcHJlcGFyZS1yZXBvcnRlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBeUQ7QUFDekQsK0NBQWlEO0FBQ2pELDJDQUFpRDtBQUVqRCxTQUFTLFlBQVksQ0FBRSxHQUFHO0lBQ3RCLE9BQU8sR0FBRztRQUNILE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxVQUFVO1FBQy9CLE9BQU8sR0FBRyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUUsR0FBRztJQUNoQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsS0FBSyxLQUFLLENBQUM7UUFDdEMsT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixJQUFBLG9CQUFnQixFQUFDLEdBQUcsQ0FBQztRQUNyQixZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEIsSUFBSSxDQUFDLHFCQUFxQjtRQUN0QixNQUFNLElBQUksc0JBQVksQ0FBQyxzQkFBYyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELG1CQUF5QixJQUFJLEVBQUUsTUFBTTtJQUNqQyxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFbkIsSUFBSSxJQUFJLFlBQVksS0FBSztRQUNyQixTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RjtRQUNELE1BQU0sUUFBUSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRWxDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDNUI7SUFFRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQWRELDRCQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd3JpdGFibGUgYXMgaXNXcml0YWJsZVN0cmVhbSB9IGZyb20gJ2lzLXN0cmVhbSc7XG5pbXBvcnQgeyBHZW5lcmFsRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvcnVudGltZSc7XG5pbXBvcnQgeyBSVU5USU1FX0VSUk9SUyB9IGZyb20gJy4uL2Vycm9ycy90eXBlcyc7XG5cbmZ1bmN0aW9uIGlzU3RyZWFtTW9jayAob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJlxuICAgICAgICAgICB0eXBlb2Ygb2JqLndyaXRlID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgIHR5cGVvZiBvYmouZW5kID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVJlcG9ydGVyT3V0cHV0IChvYmopIHtcbiAgICBjb25zdCBpc1ZhbGlkUmVwb3J0ZXJPdXRwdXQgPSBvYmogPT09IHZvaWQgMCB8fFxuICAgICAgICAgIHR5cGVvZiBvYmogPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgaXNXcml0YWJsZVN0cmVhbShvYmopIHx8XG4gICAgICAgICAgaXNTdHJlYW1Nb2NrKG9iaik7XG5cbiAgICBpZiAoIWlzVmFsaWRSZXBvcnRlck91dHB1dClcbiAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5pbnZhbGlkUmVwb3J0ZXJPdXRwdXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAobmFtZSwgb3V0cHV0KSB7XG4gICAgbGV0IHJlcG9ydGVycyA9IFtdO1xuXG4gICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBBcnJheSlcbiAgICAgICAgcmVwb3J0ZXJzID0gbmFtZS5tYXAociA9PiB0eXBlb2YgciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHIgPT09ICdmdW5jdGlvbicgPyB7IG5hbWU6IHIgfSA6IHIpO1xuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCByZXBvcnRlciA9IHsgbmFtZSwgb3V0cHV0IH07XG5cbiAgICAgICAgcmVwb3J0ZXJzLnB1c2gocmVwb3J0ZXIpO1xuICAgIH1cblxuICAgIHJlcG9ydGVycy5mb3JFYWNoKHIgPT4gdmFsaWRhdGVSZXBvcnRlck91dHB1dChyLm91dHB1dCkpO1xuXG4gICAgcmV0dXJuIHJlcG9ydGVycztcbn1cbiJdfQ==
|
|
@@ -7,15 +7,15 @@ const render_callsite_sync_1 = __importDefault(require("./render-callsite-sync")
|
|
|
7
7
|
const create_stack_filter_1 = __importDefault(require("../errors/create-stack-filter"));
|
|
8
8
|
const get_renderes_1 = __importDefault(require("./get-renderes"));
|
|
9
9
|
function prerenderCallsite(callsite) {
|
|
10
|
-
const stackFilter = create_stack_filter_1.default(Error.stackTraceLimit);
|
|
11
|
-
const renderers = get_renderes_1.default(callsite);
|
|
10
|
+
const stackFilter = (0, create_stack_filter_1.default)(Error.stackTraceLimit);
|
|
11
|
+
const renderers = (0, get_renderes_1.default)(callsite);
|
|
12
12
|
return {
|
|
13
13
|
prerendered: true,
|
|
14
|
-
default: render_callsite_sync_1.default(callsite, { renderer: renderers.noColor, stackFilter }),
|
|
15
|
-
html: render_callsite_sync_1.default(callsite, { renderer: renderers.html, stackFilter }),
|
|
16
|
-
noColor: render_callsite_sync_1.default(callsite, { renderer: renderers.noColor, stackFilter }),
|
|
14
|
+
default: (0, render_callsite_sync_1.default)(callsite, { renderer: renderers.noColor, stackFilter }),
|
|
15
|
+
html: (0, render_callsite_sync_1.default)(callsite, { renderer: renderers.html, stackFilter }),
|
|
16
|
+
noColor: (0, render_callsite_sync_1.default)(callsite, { renderer: renderers.noColor, stackFilter }),
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
exports.default = prerenderCallsite;
|
|
20
20
|
module.exports = exports.default;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWNhbGxzaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3ByZXJlbmRlci1jYWxsc2l0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtGQUF3RDtBQUN4RCx3RkFBOEQ7QUFFOUQsa0VBQTBDO0FBUzFDLFNBQXdCLGlCQUFpQixDQUFFLFFBQW1EO0lBQzFGLE1BQU0sV0FBVyxHQUFHLElBQUEsNkJBQWlCLEVBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdELE1BQU0sU0FBUyxHQUFLLElBQUEsc0JBQVksRUFBQyxRQUFRLENBQUMsQ0FBQztJQUUzQyxPQUFPO1FBQ0gsV0FBVyxFQUFFLElBQUk7UUFFakIsT0FBTyxFQUFFLElBQUEsOEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbkYsSUFBSSxFQUFLLElBQUEsOEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDaEYsT0FBTyxFQUFFLElBQUEsOEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7S0FDdEYsQ0FBQztBQUNOLENBQUM7QUFYRCxvQ0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGxzaXRlUmVjb3JkIH0gZnJvbSAnY2FsbHNpdGUtcmVjb3JkJztcbmltcG9ydCByZW5kZXJDYWxsc2l0ZVN5bmMgZnJvbSAnLi9yZW5kZXItY2FsbHNpdGUtc3luYyc7XG5pbXBvcnQgY3JlYXRlU3RhY2tGaWx0ZXIgZnJvbSAnLi4vZXJyb3JzL2NyZWF0ZS1zdGFjay1maWx0ZXInO1xuaW1wb3J0IHsgUmF3Q29tbWFuZENhbGxzaXRlUmVjb3JkIH0gZnJvbSAnLi9yYXctY29tbWFuZC1jYWxsc2l0ZS1yZWNvcmQnO1xuaW1wb3J0IGdldFJlbmRlcmVycyBmcm9tICcuL2dldC1yZW5kZXJlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyZWRDYWxsc2l0ZSB7XG4gICAgcHJlcmVuZGVyZWQ6IGJvb2xlYW47XG4gICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIGh0bWw6IHN0cmluZztcbiAgICBub0NvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZXJlbmRlckNhbGxzaXRlIChjYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQgfCBSYXdDb21tYW5kQ2FsbHNpdGVSZWNvcmQpOiBSZW5kZXJlZENhbGxzaXRlIHtcbiAgICBjb25zdCBzdGFja0ZpbHRlciA9IGNyZWF0ZVN0YWNrRmlsdGVyKEVycm9yLnN0YWNrVHJhY2VMaW1pdCk7XG4gICAgY29uc3QgcmVuZGVyZXJzICAgPSBnZXRSZW5kZXJlcnMoY2FsbHNpdGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJlcmVuZGVyZWQ6IHRydWUsXG5cbiAgICAgICAgZGVmYXVsdDogcmVuZGVyQ2FsbHNpdGVTeW5jKGNhbGxzaXRlLCB7IHJlbmRlcmVyOiByZW5kZXJlcnMubm9Db2xvciwgc3RhY2tGaWx0ZXIgfSksXG4gICAgICAgIGh0bWw6ICAgIHJlbmRlckNhbGxzaXRlU3luYyhjYWxsc2l0ZSwgeyByZW5kZXJlcjogcmVuZGVyZXJzLmh0bWwsIHN0YWNrRmlsdGVyIH0pLFxuICAgICAgICBub0NvbG9yOiByZW5kZXJDYWxsc2l0ZVN5bmMoY2FsbHNpdGUsIHsgcmVuZGVyZXI6IHJlbmRlcmVycy5ub0NvbG9yLCBzdGFja0ZpbHRlciB9KSxcbiAgICB9O1xufVxuIl19
|
package/lib/utils/process.js
CHANGED
|
@@ -16,7 +16,7 @@ const killProcessTimeoutError = 'Kill process timeout';
|
|
|
16
16
|
function getProcessOutputUnix() {
|
|
17
17
|
const error = new Error(cannotGetListOfProcessError);
|
|
18
18
|
return new Promise((resolve, reject) => {
|
|
19
|
-
const child = child_process_1.spawn('ps', ['-eo', 'pid,command']);
|
|
19
|
+
const child = (0, child_process_1.spawn)('ps', ['-eo', 'pid,command']);
|
|
20
20
|
let stdout = '';
|
|
21
21
|
let stderr = '';
|
|
22
22
|
child.stdout.on('data', data => {
|
|
@@ -72,14 +72,14 @@ async function killProcessUnix(processId) {
|
|
|
72
72
|
do {
|
|
73
73
|
await killUnixProcessSoft(processId);
|
|
74
74
|
softTries++;
|
|
75
|
-
await delay_1.default(CHECK_KILLED_DELAY);
|
|
75
|
+
await (0, delay_1.default)(CHECK_KILLED_DELAY);
|
|
76
76
|
unixProcessKilled = await isUnixProcessKilled(processId);
|
|
77
77
|
} while (!unixProcessKilled && softTries < maxSoftTries);
|
|
78
78
|
unixProcessKilled = await isUnixProcessKilled(processId);
|
|
79
79
|
if (unixProcessKilled)
|
|
80
80
|
return;
|
|
81
81
|
await killUnixProcessHard(processId);
|
|
82
|
-
await delay_1.default(CHECK_KILLED_DELAY);
|
|
82
|
+
await (0, delay_1.default)(CHECK_KILLED_DELAY);
|
|
83
83
|
unixProcessKilled = await isUnixProcessKilled(processId);
|
|
84
84
|
if (unixProcessKilled)
|
|
85
85
|
return;
|
|
@@ -87,15 +87,15 @@ async function killProcessUnix(processId) {
|
|
|
87
87
|
throw new Error(killProcessTimeoutError);
|
|
88
88
|
}
|
|
89
89
|
async function runWMIC(args) {
|
|
90
|
-
const wmicProcess = child_process_1.spawn('wmic.exe', args, { detached: true });
|
|
90
|
+
const wmicProcess = (0, child_process_1.spawn)('wmic.exe', args, { detached: true });
|
|
91
91
|
let wmicOutput = '';
|
|
92
92
|
wmicProcess.stdout.on('data', data => {
|
|
93
93
|
wmicOutput += data.toString();
|
|
94
94
|
});
|
|
95
95
|
try {
|
|
96
96
|
await Promise.race([
|
|
97
|
-
promisify_event_1.default(wmicProcess.stdout, 'end'),
|
|
98
|
-
promisify_event_1.default(wmicProcess, 'error'),
|
|
97
|
+
(0, promisify_event_1.default)(wmicProcess.stdout, 'end'),
|
|
98
|
+
(0, promisify_event_1.default)(wmicProcess, 'error'),
|
|
99
99
|
]);
|
|
100
100
|
return wmicOutput;
|
|
101
101
|
}
|
|
@@ -129,4 +129,4 @@ async function killBrowserProcess(browserId) {
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
exports.killBrowserProcess = killBrowserProcess;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUFzQztBQUN0QywwREFBMkI7QUFDM0Isc0VBQTZDO0FBQzdDLDJEQUFtQztBQUVuQyxNQUFNLGtCQUFrQixHQUFnQixJQUFJLENBQUM7QUFDN0MsTUFBTSxjQUFjLEdBQW9CLFNBQVMsQ0FBQztBQUNsRCxNQUFNLHFCQUFxQixHQUFhLHNCQUFzQixDQUFDO0FBQy9ELE1BQU0sMkJBQTJCLEdBQU8sOEJBQThCLENBQUM7QUFDdkUsTUFBTSx1QkFBdUIsR0FBVyxzQkFBc0IsQ0FBQztBQUUvRCxTQUFTLG9CQUFvQjtJQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBRXJELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcscUJBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUVsRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFD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T0FBTyxDQUFDLENBQUM7SUFFNUMsV0FBVyxHQUFHLFdBQVc7UUFDekIsZ0ZBQWdGO1NBQzNFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDWixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV4QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3RELENBQUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUUsU0FBUztJQUMvQyxNQUFNLFNBQVMsR0FBRyxtQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlGLElBQUksQ0FBQyxTQUFTO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFFaEIsSUFBSTtRQUNBLElBQUksbUJBQUUsQ0FBQyxHQUFHO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7WUFFeEIsTUFBTSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sQ0FBQyxFQUFFO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDO0FBakJELGdEQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCBwcm9taXNpZnlFdmVudCBmcm9tICdwcm9taXNpZnktZXZlbnQnO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uL3V0aWxzL2RlbGF5JztcblxuY29uc3QgQ0hFQ0tfS0lMTEVEX0RFTEFZICAgICAgICAgICAgICA9IDIwMDA7XG5jb25zdCBIQVJEX0tJTExfRkxBRyAgICAgICAgICAgICAgICAgID0gJ1NJR0tJTEwnO1xuY29uc3QgTkVXX0xJTkVfU0VQRVJBVE9SX1JFICAgICAgICAgICA9IC8oXFxyXFxuKXwoXFxuXFxyKXxcXG58XFxyL2c7XG5jb25zdCBjYW5ub3RHZXRMaXN0T2ZQcm9jZXNzRXJyb3IgICAgID0gJ0Nhbm5vdCBnZXQgbGlzdCBvZiBwcm9jZXNzZXMnO1xuY29uc3Qga2lsbFByb2Nlc3NUaW1lb3V0RXJyb3IgICAgICAgICA9ICdLaWxsIHByb2Nlc3MgdGltZW91dCc7XG5cbmZ1bmN0aW9uIGdldFByb2Nlc3NPdXRwdXRVbml4ICgpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihjYW5ub3RHZXRMaXN0T2ZQcm9jZXNzRXJyb3IpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSBzcGF3bigncHMnLCBbJy1lbycsICdwaWQsY29tbWFuZCddKTtcblxuICAgICAgICBsZXQgc3Rkb3V0ID0gJyc7XG4gICAgICAgIGxldCBzdGRlcnIgPSAnJztcblxuICAgICAgICBjaGlsZC5zdGRvdXQub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgICAgICAgIHN0ZG91dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNoaWxkLnN0ZGVyci5vbignZGF0YScsIGRhdGEgPT4ge1xuICAgICAgICAgICAgc3RkZXJyICs9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2hpbGQub24oJ2V4aXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RkZXJyKVxuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShzdGRvdXQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjaGlsZC5vbignZXJyb3InLCAoKSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gZmluZFByb2Nlc3NJZFVuaXggKGJyb3dzZXJJZCwgcHNPdXRwdXQpIHtcbiAgICBjb25zdCBwcm9jZXNzSWRSZWdleCAgID0gbmV3IFJlZ0V4cCgnXlxcXFxzKihcXFxcZCspXFxcXHMrLionICsgYnJvd3NlcklkKTtcbiAgICBjb25zdCBsaW5lcyAgICAgICAgICAgID0gcHNPdXRwdXQuc3BsaXQoTkVXX0xJTkVfU0VQRVJBVE9SX1JFKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBwcm9jZXNzSWRSZWdleC5leGVjKGxpbmVzW2ldKTtcblxuICAgICAgICBpZiAobWF0Y2gpXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNVbml4UHJvY2Vzc0V4aXN0IChwcm9jZXNzSWQsIHBzT3V0cHV0KSB7XG4gICAgY29uc3QgcHJvY2Vzc0lkUmVnZXggICA9IG5ldyBSZWdFeHAoJ15cXFxccyonICsgcHJvY2Vzc0lkICsgJ1xcXFxzKy4qJyk7XG4gICAgY29uc3QgbGluZXMgICAgICAgICAgICA9IHBzT3V0cHV0LnNwbGl0KE5FV19MSU5FX1NFUEVSQVRPUl9SRSk7XG5cbiAgICByZXR1cm4gbGluZXMuc29tZShsaW5lID0+IHByb2Nlc3NJZFJlZ2V4LnRlc3QobGluZSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kUHJvY2Vzc1VuaXggKGJyb3dzZXJJZCkge1xuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IGdldFByb2Nlc3NPdXRwdXRVbml4KCk7XG5cbiAgICByZXR1cm4gZmluZFByb2Nlc3NJZFVuaXgoYnJvd3NlcklkLCBvdXRwdXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc1VuaXhQcm9jZXNzS2lsbGVkIChwcm9jZXNzSWQpIHtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBnZXRQcm9jZXNzT3V0cHV0VW5peCgpO1xuXG4gICAgcmV0dXJuICFpc1VuaXhQcm9jZXNzRXhpc3QocHJvY2Vzc0lkLCBvdXRwdXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBraWxsVW5peFByb2Nlc3NTb2Z0IChwcm9jZXNzSWQpIHtcbiAgICBwcm9jZXNzLmtpbGwocHJvY2Vzc0lkKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24ga2lsbFVuaXhQcm9jZXNzSGFyZCAocHJvY2Vzc0lkKSB7XG4gICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCwgSEFSRF9LSUxMX0ZMQUcpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBraWxsUHJvY2Vzc1VuaXggKHByb2Nlc3NJZCkge1xuICAgIGNvbnN0IG1heFNvZnRUcmllcyA9IDI7XG5cbiAgICBsZXQgc29mdFRyaWVzICAgICAgICAgPSAwO1xuICAgIGxldCB1bml4UHJvY2Vzc0tpbGxlZCA9IGZhbHNlO1xuXG4gICAgZG8ge1xuICAgICAgICBhd2FpdCBraWxsVW5peFByb2Nlc3NTb2Z0KHByb2Nlc3NJZCk7XG5cbiAgICAgICAgc29mdFRyaWVzKys7XG5cbiAgICAgICAgYXdhaXQgZGVsYXkoQ0hFQ0tfS0lMTEVEX0RFTEFZKTtcblxuICAgICAgICB1bml4UHJvY2Vzc0tpbGxlZCA9IGF3YWl0IGlzVW5peFByb2Nlc3NLaWxsZWQocHJvY2Vzc0lkKTtcbiAgICB9XG4gICAgd2hpbGUgKCF1bml4UHJvY2Vzc0tpbGxlZCAmJiBzb2Z0VHJpZXMgPCBtYXhTb2Z0VHJpZXMpO1xuXG4gICAgdW5peFByb2Nlc3NLaWxsZWQgPSBhd2FpdCBpc1VuaXhQcm9jZXNzS2lsbGVkKHByb2Nlc3NJZCk7XG5cbiAgICBpZiAodW5peFByb2Nlc3NLaWxsZWQpXG4gICAgICAgIHJldHVybjtcblxuICAgIGF3YWl0IGtpbGxVbml4UHJvY2Vzc0hhcmQocHJvY2Vzc0lkKTtcblxuICAgIGF3YWl0IGRlbGF5KENIRUNLX0tJTExFRF9ERUxBWSk7XG5cbiAgICB1bml4UHJvY2Vzc0tpbGxlZCA9IGF3YWl0IGlzVW5peFByb2Nlc3NLaWxsZWQocHJvY2Vzc0lkKTtcblxuICAgIGlmICh1bml4UHJvY2Vzc0tpbGxlZCkgcmV0dXJuO1xuXG4gICAgLy8gTk9URTogaWYgMiBzb2Z0LWtpbGwgYW5kIDEgaGFyZC1raWxsIHdpdGggXCJTSUdLSUxMXCItZmxhZyBkaWRuJ3Qgd29yayAtIHRocm93IGVycm9yXG4gICAgdGhyb3cgbmV3IEVycm9yKGtpbGxQcm9jZXNzVGltZW91dEVycm9yKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuV01JQyAoYXJncykge1xuICAgIGNvbnN0IHdtaWNQcm9jZXNzID0gc3Bhd24oJ3dtaWMuZXhlJywgYXJncywgeyBkZXRhY2hlZDogdHJ1ZSB9KTtcblxuICAgIGxldCB3bWljT3V0cHV0ID0gJyc7XG5cbiAgICB3bWljUHJvY2Vzcy5zdGRvdXQub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgICAgd21pY091dHB1dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgcHJvbWlzaWZ5RXZlbnQod21pY1Byb2Nlc3Muc3Rkb3V0LCAnZW5kJyksXG4gICAgICAgICAgICBwcm9taXNpZnlFdmVudCh3bWljUHJvY2VzcywgJ2Vycm9yJyksXG4gICAgICAgIF0pO1xuXG4gICAgICAgIHJldHVybiB3bWljT3V0cHV0O1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kUHJvY2Vzc1dpbiAoYnJvd3NlcklkKSB7XG4gICAgY29uc3Qgd21pY0FyZ3MgICAgPSBbJ3Byb2Nlc3MnLCAnd2hlcmUnLCBgY29tbWFuZGxpbmUgbGlrZSAnJSR7YnJvd3NlcklkfSUnIGFuZCBuYW1lIDw+ICdjbWQuZXhlJyBhbmQgbmFtZSA8PiAnd21pYy5leGUnYCwgJ2dldCcsICdwcm9jZXNzaWQnXTtcbiAgICBjb25zdCB3bWljT3V0cHV0ICA9IGF3YWl0IHJ1bldNSUMod21pY0FyZ3MpO1xuXG4gICAgbGV0IHByb2Nlc3NMaXN0ID0gd21pY091dHB1dC5zcGxpdCgvXFxzKlxcbi8pO1xuXG4gICAgcHJvY2Vzc0xpc3QgPSBwcm9jZXNzTGlzdFxuICAgIC8vIE5PVEU6IHJlbW92ZSBsaXN0J3MgaGVhZGVyIGFuZCBlbXB0eSBsYXN0IGVsZW1lbnQsIGNhdXNlZCBieSB0cmFpbGluZyBuZXdsaW5lXG4gICAgICAgIC5zbGljZSgxLCAtMSlcbiAgICAgICAgLm1hcChwaWQgPT4gKHsgcGlkOiBOdW1iZXIocGlkKSB9KSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc0xpc3RbMF0gPyBwcm9jZXNzTGlzdFswXS5waWQgOiBudWxsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2lsbEJyb3dzZXJQcm9jZXNzIChicm93c2VySWQpIHtcbiAgICBjb25zdCBwcm9jZXNzSWQgPSBPUy53aW4gPyBhd2FpdCBmaW5kUHJvY2Vzc1dpbihicm93c2VySWQpIDogYXdhaXQgZmluZFByb2Nlc3NVbml4KGJyb3dzZXJJZCk7XG5cbiAgICBpZiAoIXByb2Nlc3NJZClcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgICBpZiAoT1Mud2luKVxuICAgICAgICAgICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IGtpbGxQcm9jZXNzVW5peChwcm9jZXNzSWQpO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUFzQztBQUN0QywwREFBMkI7QUFDM0Isc0VBQTZDO0FBQzdDLDJEQUFtQztBQUVuQyxNQUFNLGtCQUFrQixHQUFnQixJQUFJLENBQUM7QUFDN0MsTUFBTSxjQUFjLEdBQW9CLFNBQVMsQ0FBQztBQUNsRCxNQUFNLHFCQUFxQixHQUFhLHNCQUFzQixDQUFDO0FBQy9ELE1BQU0sMkJBQTJCLEdBQU8sOEJBQThCLENBQUM7QUFDdkUsTUFBTSx1QkFBdUIsR0FBVyxzQkFBc0IsQ0FBQztBQUUvRCxTQUFTLG9CQUFvQjtJQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBRXJELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBSyxFQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRWxELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQzNCLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDM0IsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFB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V0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUMsV0FBVyxHQUFHLFdBQVc7UUFDekIsZ0ZBQWdGO1NBQzNFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDWixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV4QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3RELENBQUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUUsU0FBUztJQUMvQyxNQUFNLFNBQVMsR0FBRyxtQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlGLElBQUksQ0FBQyxTQUFTO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFFaEIsSUFBSTtRQUNBLElBQUksbUJBQUUsQ0FBQyxHQUFHO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7WUFFeEIsTUFBTSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sQ0FBQyxFQUFFO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDO0FBakJELGdEQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCBwcm9taXNpZnlFdmVudCBmcm9tICdwcm9taXNpZnktZXZlbnQnO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uL3V0aWxzL2RlbGF5JztcblxuY29uc3QgQ0hFQ0tfS0lMTEVEX0RFTEFZICAgICAgICAgICAgICA9IDIwMDA7XG5jb25zdCBIQVJEX0tJTExfRkxBRyAgICAgICAgICAgICAgICAgID0gJ1NJR0tJTEwnO1xuY29uc3QgTkVXX0xJTkVfU0VQRVJBVE9SX1JFICAgICAgICAgICA9IC8oXFxyXFxuKXwoXFxuXFxyKXxcXG58XFxyL2c7XG5jb25zdCBjYW5ub3RHZXRMaXN0T2ZQcm9jZXNzRXJyb3IgICAgID0gJ0Nhbm5vdCBnZXQgbGlzdCBvZiBwcm9jZXNzZXMnO1xuY29uc3Qga2lsbFByb2Nlc3NUaW1lb3V0RXJyb3IgICAgICAgICA9ICdLaWxsIHByb2Nlc3MgdGltZW91dCc7XG5cbmZ1bmN0aW9uIGdldFByb2Nlc3NPdXRwdXRVbml4ICgpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihjYW5ub3RHZXRMaXN0T2ZQcm9jZXNzRXJyb3IpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSBzcGF3bigncHMnLCBbJy1lbycsICdwaWQsY29tbWFuZCddKTtcblxuICAgICAgICBsZXQgc3Rkb3V0ID0gJyc7XG4gICAgICAgIGxldCBzdGRlcnIgPSAnJztcblxuICAgICAgICBjaGlsZC5zdGRvdXQub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgICAgICAgIHN0ZG91dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNoaWxkLnN0ZGVyci5vbignZGF0YScsIGRhdGEgPT4ge1xuICAgICAgICAgICAgc3RkZXJyICs9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2hpbGQub24oJ2V4aXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RkZXJyKVxuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShzdGRvdXQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjaGlsZC5vbignZXJyb3InLCAoKSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gZmluZFByb2Nlc3NJZFVuaXggKGJyb3dzZXJJZCwgcHNPdXRwdXQpIHtcbiAgICBjb25zdCBwcm9jZXNzSWRSZWdleCAgID0gbmV3IFJlZ0V4cCgnXlxcXFxzKihcXFxcZCspXFxcXHMrLionICsgYnJvd3NlcklkKTtcbiAgICBjb25zdCBsaW5lcyAgICAgICAgICAgID0gcHNPdXRwdXQuc3BsaXQoTkVXX0xJTkVfU0VQRVJBVE9SX1JFKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBwcm9jZXNzSWRSZWdleC5leGVjKGxpbmVzW2ldKTtcblxuICAgICAgICBpZiAobWF0Y2gpXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNVbml4UHJvY2Vzc0V4aXN0IChwcm9jZXNzSWQsIHBzT3V0cHV0KSB7XG4gICAgY29uc3QgcHJvY2Vzc0lkUmVnZXggICA9IG5ldyBSZWdFeHAoJ15cXFxccyonICsgcHJvY2Vzc0lkICsgJ1xcXFxzKy4qJyk7XG4gICAgY29uc3QgbGluZXMgICAgICAgICAgICA9IHBzT3V0cHV0LnNwbGl0KE5FV19MSU5FX1NFUEVSQVRPUl9SRSk7XG5cbiAgICByZXR1cm4gbGluZXMuc29tZShsaW5lID0+IHByb2Nlc3NJZFJlZ2V4LnRlc3QobGluZSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kUHJvY2Vzc1VuaXggKGJyb3dzZXJJZCkge1xuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IGdldFByb2Nlc3NPdXRwdXRVbml4KCk7XG5cbiAgICByZXR1cm4gZmluZFByb2Nlc3NJZFVuaXgoYnJvd3NlcklkLCBvdXRwdXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc1VuaXhQcm9jZXNzS2lsbGVkIChwcm9jZXNzSWQpIHtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBnZXRQcm9jZXNzT3V0cHV0VW5peCgpO1xuXG4gICAgcmV0dXJuICFpc1VuaXhQcm9jZXNzRXhpc3QocHJvY2Vzc0lkLCBvdXRwdXQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBraWxsVW5peFByb2Nlc3NTb2Z0IChwcm9jZXNzSWQpIHtcbiAgICBwcm9jZXNzLmtpbGwocHJvY2Vzc0lkKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24ga2lsbFVuaXhQcm9jZXNzSGFyZCAocHJvY2Vzc0lkKSB7XG4gICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCwgSEFSRF9LSUxMX0ZMQUcpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBraWxsUHJvY2Vzc1VuaXggKHByb2Nlc3NJZCkge1xuICAgIGNvbnN0IG1heFNvZnRUcmllcyA9IDI7XG5cbiAgICBsZXQgc29mdFRyaWVzICAgICAgICAgPSAwO1xuICAgIGxldCB1bml4UHJvY2Vzc0tpbGxlZCA9IGZhbHNlO1xuXG4gICAgZG8ge1xuICAgICAgICBhd2FpdCBraWxsVW5peFByb2Nlc3NTb2Z0KHByb2Nlc3NJZCk7XG5cbiAgICAgICAgc29mdFRyaWVzKys7XG5cbiAgICAgICAgYXdhaXQgZGVsYXkoQ0hFQ0tfS0lMTEVEX0RFTEFZKTtcblxuICAgICAgICB1bml4UHJvY2Vzc0tpbGxlZCA9IGF3YWl0IGlzVW5peFByb2Nlc3NLaWxsZWQocHJvY2Vzc0lkKTtcbiAgICB9XG4gICAgd2hpbGUgKCF1bml4UHJvY2Vzc0tpbGxlZCAmJiBzb2Z0VHJpZXMgPCBtYXhTb2Z0VHJpZXMpO1xuXG4gICAgdW5peFByb2Nlc3NLaWxsZWQgPSBhd2FpdCBpc1VuaXhQcm9jZXNzS2lsbGVkKHByb2Nlc3NJZCk7XG5cbiAgICBpZiAodW5peFByb2Nlc3NLaWxsZWQpXG4gICAgICAgIHJldHVybjtcblxuICAgIGF3YWl0IGtpbGxVbml4UHJvY2Vzc0hhcmQocHJvY2Vzc0lkKTtcblxuICAgIGF3YWl0IGRlbGF5KENIRUNLX0tJTExFRF9ERUxBWSk7XG5cbiAgICB1bml4UHJvY2Vzc0tpbGxlZCA9IGF3YWl0IGlzVW5peFByb2Nlc3NLaWxsZWQocHJvY2Vzc0lkKTtcblxuICAgIGlmICh1bml4UHJvY2Vzc0tpbGxlZCkgcmV0dXJuO1xuXG4gICAgLy8gTk9URTogaWYgMiBzb2Z0LWtpbGwgYW5kIDEgaGFyZC1raWxsIHdpdGggXCJTSUdLSUxMXCItZmxhZyBkaWRuJ3Qgd29yayAtIHRocm93IGVycm9yXG4gICAgdGhyb3cgbmV3IEVycm9yKGtpbGxQcm9jZXNzVGltZW91dEVycm9yKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuV01JQyAoYXJncykge1xuICAgIGNvbnN0IHdtaWNQcm9jZXNzID0gc3Bhd24oJ3dtaWMuZXhlJywgYXJncywgeyBkZXRhY2hlZDogdHJ1ZSB9KTtcblxuICAgIGxldCB3bWljT3V0cHV0ID0gJyc7XG5cbiAgICB3bWljUHJvY2Vzcy5zdGRvdXQub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgICAgd21pY091dHB1dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgcHJvbWlzaWZ5RXZlbnQod21pY1Byb2Nlc3Muc3Rkb3V0LCAnZW5kJyksXG4gICAgICAgICAgICBwcm9taXNpZnlFdmVudCh3bWljUHJvY2VzcywgJ2Vycm9yJyksXG4gICAgICAgIF0pO1xuXG4gICAgICAgIHJldHVybiB3bWljT3V0cHV0O1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kUHJvY2Vzc1dpbiAoYnJvd3NlcklkKSB7XG4gICAgY29uc3Qgd21pY0FyZ3MgICAgPSBbJ3Byb2Nlc3MnLCAnd2hlcmUnLCBgY29tbWFuZGxpbmUgbGlrZSAnJSR7YnJvd3NlcklkfSUnIGFuZCBuYW1lIDw+ICdjbWQuZXhlJyBhbmQgbmFtZSA8PiAnd21pYy5leGUnYCwgJ2dldCcsICdwcm9jZXNzaWQnXTtcbiAgICBjb25zdCB3bWljT3V0cHV0ICA9IGF3YWl0IHJ1bldNSUMod21pY0FyZ3MpO1xuXG4gICAgbGV0IHByb2Nlc3NMaXN0ID0gd21pY091dHB1dC5zcGxpdCgvXFxzKlxcbi8pO1xuXG4gICAgcHJvY2Vzc0xpc3QgPSBwcm9jZXNzTGlzdFxuICAgIC8vIE5PVEU6IHJlbW92ZSBsaXN0J3MgaGVhZGVyIGFuZCBlbXB0eSBsYXN0IGVsZW1lbnQsIGNhdXNlZCBieSB0cmFpbGluZyBuZXdsaW5lXG4gICAgICAgIC5zbGljZSgxLCAtMSlcbiAgICAgICAgLm1hcChwaWQgPT4gKHsgcGlkOiBOdW1iZXIocGlkKSB9KSk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc0xpc3RbMF0gPyBwcm9jZXNzTGlzdFswXS5waWQgOiBudWxsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2lsbEJyb3dzZXJQcm9jZXNzIChicm93c2VySWQpIHtcbiAgICBjb25zdCBwcm9jZXNzSWQgPSBPUy53aW4gPyBhd2FpdCBmaW5kUHJvY2Vzc1dpbihicm93c2VySWQpIDogYXdhaXQgZmluZFByb2Nlc3NVbml4KGJyb3dzZXJJZCk7XG5cbiAgICBpZiAoIXByb2Nlc3NJZClcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgICBpZiAoT1Mud2luKVxuICAgICAgICAgICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IGtpbGxQcm9jZXNzVW5peChwcm9jZXNzSWQpO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
|
|
@@ -9,18 +9,18 @@ const graceful_fs_1 = __importDefault(require("graceful-fs"));
|
|
|
9
9
|
const pngjs_1 = require("pngjs");
|
|
10
10
|
const promisify_event_1 = __importDefault(require("promisify-event"));
|
|
11
11
|
const util_1 = require("util");
|
|
12
|
-
exports.readDir = util_1.promisify(graceful_fs_1.default.readdir);
|
|
13
|
-
exports.stat = util_1.promisify(graceful_fs_1.default.stat);
|
|
14
|
-
exports.writeFile = util_1.promisify(graceful_fs_1.default.writeFile);
|
|
15
|
-
exports.readFile = util_1.promisify(graceful_fs_1.default.readFile);
|
|
16
|
-
exports.deleteFile = util_1.promisify(graceful_fs_1.default.unlink);
|
|
17
|
-
exports.exec = util_1.promisify(child_process_1.default.exec);
|
|
18
|
-
exports.sendMessageToChildProcess = util_1.promisify((process, ...args) => process.send(...args));
|
|
12
|
+
exports.readDir = (0, util_1.promisify)(graceful_fs_1.default.readdir);
|
|
13
|
+
exports.stat = (0, util_1.promisify)(graceful_fs_1.default.stat);
|
|
14
|
+
exports.writeFile = (0, util_1.promisify)(graceful_fs_1.default.writeFile);
|
|
15
|
+
exports.readFile = (0, util_1.promisify)(graceful_fs_1.default.readFile);
|
|
16
|
+
exports.deleteFile = (0, util_1.promisify)(graceful_fs_1.default.unlink);
|
|
17
|
+
exports.exec = (0, util_1.promisify)(child_process_1.default.exec);
|
|
18
|
+
exports.sendMessageToChildProcess = (0, util_1.promisify)((process, ...args) => process.send(...args));
|
|
19
19
|
function readPng(buffer) {
|
|
20
20
|
const png = new pngjs_1.PNG();
|
|
21
21
|
const parsedPromise = Promise.race([
|
|
22
|
-
promisify_event_1.default(png, 'parsed'),
|
|
23
|
-
promisify_event_1.default(png, 'error'),
|
|
22
|
+
(0, promisify_event_1.default)(png, 'parsed'),
|
|
23
|
+
(0, promisify_event_1.default)(png, 'error'),
|
|
24
24
|
]);
|
|
25
25
|
png.parse(buffer);
|
|
26
26
|
return parsedPromise
|
|
@@ -28,7 +28,7 @@ function readPng(buffer) {
|
|
|
28
28
|
}
|
|
29
29
|
exports.readPng = readPng;
|
|
30
30
|
async function readPngFile(filePath) {
|
|
31
|
-
const buffer = await exports.readFile(filePath);
|
|
31
|
+
const buffer = await (0, exports.readFile)(filePath);
|
|
32
32
|
return await readPng(buffer);
|
|
33
33
|
}
|
|
34
34
|
exports.readPngFile = readPngFile;
|
|
@@ -36,12 +36,12 @@ function writePng(filePath, png) {
|
|
|
36
36
|
const outStream = graceful_fs_1.default.createWriteStream(filePath);
|
|
37
37
|
const pngStream = png.pack();
|
|
38
38
|
const finishPromise = Promise.race([
|
|
39
|
-
promisify_event_1.default(outStream, 'finish'),
|
|
40
|
-
promisify_event_1.default(outStream, 'error'),
|
|
41
|
-
promisify_event_1.default(pngStream, 'error'),
|
|
39
|
+
(0, promisify_event_1.default)(outStream, 'finish'),
|
|
40
|
+
(0, promisify_event_1.default)(outStream, 'error'),
|
|
41
|
+
(0, promisify_event_1.default)(pngStream, 'error'),
|
|
42
42
|
]);
|
|
43
43
|
pngStream.pipe(outStream);
|
|
44
44
|
return finishPromise;
|
|
45
45
|
}
|
|
46
46
|
exports.writePng = writePng;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzaWZpZWQtZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrRUFBeUM7QUFDekMsOERBQTZCO0FBQzdCLGlDQUE0QjtBQUM1QixzRUFBNkM7QUFDN0MsK0JBQWlDO0FBRXBCLFFBQUEsT0FBTyxHQUFNLElBQUEsZ0JBQVMsRUFBQyxxQkFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLFFBQUEsSUFBSSxHQUFTLElBQUEsZ0JBQVMsRUFBQyxxQkFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hDLFFBQUEsU0FBUyxHQUFJLElBQUEsZ0JBQVMsRUFBQyxxQkFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLFFBQUEsUUFBUSxHQUFLLElBQUEsZ0JBQVMsRUFBQyxxQkFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLFFBQUEsVUFBVSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxxQkFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRWxDLFFBQUEsSUFBSSxHQUFHLElBQUEsZ0JBQVMsRUFBQyx1QkFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXBDLFFBQUEseUJBQXlCLEdBQUcsSUFBQSxnQkFBUyxFQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUVoRyxTQUFnQixPQUFPLENBQUUsTUFBTTtJQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUcsRUFBRSxDQUFDO0lBRXRCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBQSx5QkFBYyxFQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7UUFDN0IsSUFBQSx5QkFBYyxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUM7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVsQixPQUFPLGFBQWE7U0FDZixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQVpELDBCQVlDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FBRSxRQUFRO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxnQkFBUSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXhDLE9BQU8sTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUpELGtDQUlDO0FBRUQsU0FBZ0IsUUFBUSxDQUFFLFFBQVEsRUFBRSxHQUFHO0lBQ25DLE1BQU0sU0FBUyxHQUFHLHFCQUFFLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTdCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBQSx5QkFBYyxFQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDbkMsSUFBQSx5QkFBYyxFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDbEMsSUFBQSx5QkFBYyxFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7S0FDckMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUxQixPQUFPLGFBQWEsQ0FBQztBQUN6QixDQUFDO0FBYkQsNEJBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hpbGRQcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGZzIGZyb20gJ2dyYWNlZnVsLWZzJztcbmltcG9ydCB7IFBORyB9IGZyb20gJ3BuZ2pzJztcbmltcG9ydCBwcm9taXNpZnlFdmVudCBmcm9tICdwcm9taXNpZnktZXZlbnQnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmV4cG9ydCBjb25zdCByZWFkRGlyICAgID0gcHJvbWlzaWZ5KGZzLnJlYWRkaXIpO1xuZXhwb3J0IGNvbnN0IHN0YXQgICAgICAgPSBwcm9taXNpZnkoZnMuc3RhdCk7XG5leHBvcnQgY29uc3Qgd3JpdGVGaWxlICA9IHByb21pc2lmeShmcy53cml0ZUZpbGUpO1xuZXhwb3J0IGNvbnN0IHJlYWRGaWxlICAgPSBwcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuZXhwb3J0IGNvbnN0IGRlbGV0ZUZpbGUgPSBwcm9taXNpZnkoZnMudW5saW5rKTtcblxuZXhwb3J0IGNvbnN0IGV4ZWMgPSBwcm9taXNpZnkoY2hpbGRQcm9jZXNzLmV4ZWMpO1xuXG5leHBvcnQgY29uc3Qgc2VuZE1lc3NhZ2VUb0NoaWxkUHJvY2VzcyA9IHByb21pc2lmeSgocHJvY2VzcywgLi4uYXJncykgPT4gcHJvY2Vzcy5zZW5kKC4uLmFyZ3MpKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQbmcgKGJ1ZmZlcikge1xuICAgIGNvbnN0IHBuZyA9IG5ldyBQTkcoKTtcblxuICAgIGNvbnN0IHBhcnNlZFByb21pc2UgPSBQcm9taXNlLnJhY2UoW1xuICAgICAgICBwcm9taXNpZnlFdmVudChwbmcsICdwYXJzZWQnKSxcbiAgICAgICAgcHJvbWlzaWZ5RXZlbnQocG5nLCAnZXJyb3InKSxcbiAgICBdKTtcblxuICAgIHBuZy5wYXJzZShidWZmZXIpO1xuXG4gICAgcmV0dXJuIHBhcnNlZFByb21pc2VcbiAgICAgICAgLnRoZW4oKCkgPT4gcG5nKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQbmdGaWxlIChmaWxlUGF0aCkge1xuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBhd2FpdCByZWFkUG5nKGJ1ZmZlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVBuZyAoZmlsZVBhdGgsIHBuZykge1xuICAgIGNvbnN0IG91dFN0cmVhbSA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKGZpbGVQYXRoKTtcbiAgICBjb25zdCBwbmdTdHJlYW0gPSBwbmcucGFjaygpO1xuXG4gICAgY29uc3QgZmluaXNoUHJvbWlzZSA9IFByb21pc2UucmFjZShbXG4gICAgICAgIHByb21pc2lmeUV2ZW50KG91dFN0cmVhbSwgJ2ZpbmlzaCcpLFxuICAgICAgICBwcm9taXNpZnlFdmVudChvdXRTdHJlYW0sICdlcnJvcicpLFxuICAgICAgICBwcm9taXNpZnlFdmVudChwbmdTdHJlYW0sICdlcnJvcicpLFxuICAgIF0pO1xuXG4gICAgcG5nU3RyZWFtLnBpcGUob3V0U3RyZWFtKTtcblxuICAgIHJldHVybiBmaW5pc2hQcm9taXNlO1xufVxuIl19
|
|
@@ -9,7 +9,7 @@ const lodash_1 = require("lodash");
|
|
|
9
9
|
class Render {
|
|
10
10
|
static getCommandStr(command) {
|
|
11
11
|
const { type, assertionType, selector, actual, expected, } = command;
|
|
12
|
-
const mainStr = `${lodash_1.upperFirst(lodash_1.camelCase(type))} (${(assertionType ? actual === null || actual === void 0 ? void 0 : actual.value : selector === null || selector === void 0 ? void 0 : selector.value) || ''})`;
|
|
12
|
+
const mainStr = `${(0, lodash_1.upperFirst)((0, lodash_1.camelCase)(type))} (${(assertionType ? actual === null || actual === void 0 ? void 0 : actual.value : selector === null || selector === void 0 ? void 0 : selector.value) || ''})`;
|
|
13
13
|
const subStr = assertionType ? ` ${assertionType} (${(expected === null || expected === void 0 ? void 0 : expected.value) || ''})` : '';
|
|
14
14
|
return `${mainStr}${subStr}`;
|
|
15
15
|
}
|
|
@@ -70,4 +70,4 @@ class RawCommandCallsiteRecord {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
exports.RawCommandCallsiteRecord = RawCommandCallsiteRecord;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LWNvbW1hbmQtY2FsbHNpdGUtcmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3Jhdy1jb21tYW5kLWNhbGxzaXRlLXJlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsbUNBQStDO0FBcUIvQyxNQUFhLE1BQU07SUFDUixNQUFNLENBQUMsYUFBYSxDQUFFLE9BQWdCO1FBQ3pDLE1BQU0sRUFDRixJQUFJLEVBQ0osYUFBYSxFQUNiLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxHQUNYLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFBLG1CQUFVLEVBQUMsSUFBQSxrQkFBUyxFQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM5RyxNQUFNLE1BQU0sR0FBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxLQUFLLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEtBQUssS0FBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXBGLE9BQU8sR0FBRyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNNLE1BQU0sQ0FBQyxTQUFTLENBQUUsR0FBVztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDTSxNQUFNLENBQUMsV0FBVyxDQUFFLEdBQVcsRUFBRSxPQUFnQixFQUFFLElBQWE7UUFDbkUsSUFBSSxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxH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QztDQUNKO0FBakNELDREQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBjYW1lbENhc2UsIHVwcGVyRmlyc3QgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbnRlcmZhY2UgQ29tbWFuZCB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBzZWxlY3Rvcj86IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgIH07XG4gICAgYWN0dWFsPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBleHBlY3RlZD86IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgIH07XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFzc2VydGlvblR5cGU/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlbmRlciB7XG4gICAgcHVibGljIHN0YXRpYyBnZXRDb21tYW5kU3RyIChjb21tYW5kOiBDb21tYW5kKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFzc2VydGlvblR5cGUsXG4gICAgICAgICAgICBzZWxlY3RvcixcbiAgICAgICAgICAgIGFjdHVhbCxcbiAgICAgICAgICAgIGV4cGVjdGVkLFxuICAgICAgICB9ID0gY29tbWFuZDtcblxuICAgICAgICBjb25zdCBtYWluU3RyID0gYCR7dXBwZXJGaXJzdChjYW1lbENhc2UodHlwZSkpfSAoJHsoYXNzZXJ0aW9uVHlwZSA/IGFjdHVhbD8udmFsdWUgOiBzZWxlY3Rvcj8udmFsdWUpIHx8ICcnfSlgO1xuICAgICAgICBjb25zdCBzdWJTdHIgID0gYXNzZXJ0aW9uVHlwZSA/IGAgJHthc3NlcnRpb25UeXBlfSAoJHtleHBlY3RlZD8udmFsdWUgfHwgJyd9KWAgOiAnJztcblxuICAgICAgICByZXR1cm4gYCR7bWFpblN0cn0ke3N1YlN0cn1gO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGNvZGVGcmFtZSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgICBwdWJsaWMgc3RhdGljIGNvbW1hbmRMaW5lIChudW06IG51bWJlciwgY29tbWFuZDogQ29tbWFuZCwgYmFzZTogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGxldCBjb21tYW5kTnVtID0gYCR7YmFzZSA/ICcgPiAnIDogJyAgICd9JHtudW19IGA7XG5cbiAgICAgICAgaWYgKGJhc2UpXG4gICAgICAgICAgICBjb21tYW5kTnVtID0gY2hhbGsuYmdSZWQoY29tbWFuZE51bSk7XG5cbiAgICAgICAgcmV0dXJuIGAke2NvbW1hbmROdW19fCR7UmVuZGVyLmdldENvbW1hbmRTdHIoY29tbWFuZCl9XFxuYDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb0NvbG9yUmVuZGVyIGV4dGVuZHMgUmVuZGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGNvbW1hbmRMaW5lIChudW06IG51bWJlciwgY29tbWFuZDogQ29tbWFuZCwgYmFzZTogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmROdW0gPSBgJHtiYXNlID8gJyA+ICcgOiAnICAgJ30ke251bX0gYDtcblxuICAgICAgICByZXR1cm4gYCR7Y29tbWFuZE51bX18JHtSZW5kZXIuZ2V0Q29tbWFuZFN0cihjb21tYW5kKX1cXG5gO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEh0bWxSZW5kZXIgZXh0ZW5kcyBSZW5kZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgY29kZUZyYW1lIChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImNvZGUtZnJhbWVcIj4nICsgc3RyICsgJzwvZGl2Pic7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjb21tYW5kTGluZSAobnVtOiBudW1iZXIsIGNvbW1hbmQ6IENvbW1hbmQsIGJhc2U6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBudW1DbGFzcyAgPSBiYXNlID8gJ2NvZGUtbGluZS1udW0tYmFzZScgOiAnY29kZS1saW5lLW51bSc7XG5cbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29kZS1saW5lXCI+YCArXG4gICAgICAgICAgICBgPGRpdiBjbGFzcz1cIiR7bnVtQ2xhc3N9XCI+JHtudW19PC9kaXY+YCArXG4gICAgICAgICAgICBgPGRpdiBjbGFzcz1cImNvZGUtbGluZS1zcmNcIj4ke1JlbmRlci5nZXRDb21tYW5kU3RyKGNvbW1hbmQpfTwvZGl2PmAgK1xuICAgICAgICAgICAgYDwvZGl2PmA7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgUmVuZGVyT3B0aW9ucyB7XG4gICAgcmVuZGVyZXI/OiB0eXBlb2YgUmVuZGVyO1xuICAgIGZyYW1lU2l6ZT86IG51bWJlcjtcbiAgICBjb2RlRnJhbWU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgcmVuZGVyZXJzID0ge1xuICAgIGRlZmF1bHQ6IFJlbmRlcixcbiAgICBodG1sOiAgICBIdG1sUmVuZGVyLFxuICAgIG5vQ29sb3I6IE5vQ29sb3JSZW5kZXIsXG59O1xuXG5leHBvcnQgY2xhc3MgUmF3Q29tbWFuZENhbGxzaXRlUmVjb3JkIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uSWQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXN0OiBDb21tYW5kW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGFjdGlvbklkOiBudW1iZXIsIGxpc3Q6IENvbW1hbmRbXSkge1xuICAgICAgICB0aGlzLmFjdGlvbklkID0gYWN0aW9uSWQ7XG4gICAgICAgIHRoaXMuX2xpc3QgICAgPSBsaXN0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXJTeW5jIChvcHRzOiBSZW5kZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgcmVuZGVyZXIgPSBSZW5kZXIsXG4gICAgICAgICAgICBmcmFtZVNpemUgPSAxLFxuICAgICAgICAgICAgY29kZUZyYW1lID0gdHJ1ZSxcbiAgICAgICAgfSA9IG9wdHM7XG5cbiAgICAgICAgaWYgKCFjb2RlRnJhbWUpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG5cbiAgICAgICAgY29uc3QgYmFzZUlkID0gdGhpcy5fbGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmFjdGlvbklkID09PSB0aGlzLmFjdGlvbklkKTtcblxuICAgICAgICBpZiAoYmFzZUlkIDwgMClcbiAgICAgICAgICAgIHJldHVybiAnJztcblxuICAgICAgICBjb25zdCBmaXJzdElkID0gTWF0aC5tYXgoYmFzZUlkIC0gZnJhbWVTaXplLCAwKTtcbiAgICAgICAgY29uc3QgbGFzdElkICA9IE1hdGgubWluKGJhc2VJZCArIGZyYW1lU2l6ZSwgdGhpcy5fbGlzdC5sZW5ndGggLSAxKTtcbiAgICAgICAgbGV0IGZyYW1lICAgICA9ICcnO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBmaXJzdElkOyBpIDw9IGxhc3RJZDsgaSsrKVxuICAgICAgICAgICAgZnJhbWUgKz0gcmVuZGVyZXIuY29tbWFuZExpbmUoaSArIDEsIHRoaXMuX2xpc3RbaV0sIGkgPT09IGJhc2VJZCk7XG5cbiAgICAgICAgcmV0dXJuIHJlbmRlcmVyLmNvZGVGcmFtZShmcmFtZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const path_1 = require("path");
|
|
4
4
|
function default_1(path) {
|
|
5
|
-
return path_1.resolve(process.cwd(), path);
|
|
5
|
+
return (0, path_1.resolve)(process.cwd(), path);
|
|
6
6
|
}
|
|
7
7
|
exports.default = default_1;
|
|
8
8
|
module.exports = exports.default;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1wYXRoLXJlbGF0aXZlbHktY3dkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3Jlc29sdmUtcGF0aC1yZWxhdGl2ZWx5LWN3ZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtCQUErQjtBQUUvQixtQkFBeUIsSUFBSTtJQUN6QixPQUFPLElBQUEsY0FBTyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsNEJBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChwYXRoKSB7XG4gICAgcmV0dXJuIHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcGF0aCk7XG59XG4iXX0=
|
package/lib/utils/string.js
CHANGED
|
@@ -20,7 +20,7 @@ function wordWrap(str, indent, width) {
|
|
|
20
20
|
let curStr = '';
|
|
21
21
|
let wrappedMsg = '';
|
|
22
22
|
if (removeTTYColors(str).length <= width - indent)
|
|
23
|
-
return indent_string_1.default(str, ' ', indent);
|
|
23
|
+
return (0, indent_string_1.default)(str, ' ', indent);
|
|
24
24
|
str = str.replace(/(\r\n)/gm, '\n')
|
|
25
25
|
.split(/(\S+[ \t]+)|(\S+(?:\n))|(\n)/m)
|
|
26
26
|
//NOTE: cut empty elements
|
|
@@ -39,7 +39,7 @@ function wordWrap(str, indent, width) {
|
|
|
39
39
|
curStr += word;
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
|
-
return indent_string_1.default(wrappedMsg + curStr, ' ', indent);
|
|
42
|
+
return (0, indent_string_1.default)(wrappedMsg + curStr, ' ', indent);
|
|
43
43
|
}
|
|
44
44
|
exports.wordWrap = wordWrap;
|
|
45
45
|
function splitQuotedText(str, splitChar, quotes = '"\'') {
|
|
@@ -103,4 +103,4 @@ function createList(array, PREFIX = '- ', SEPARATOR = '\n') {
|
|
|
103
103
|
return array.map(option => PREFIX + option).join(SEPARATOR);
|
|
104
104
|
}
|
|
105
105
|
exports.createList = createList;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3N0cmluZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrRUFBeUM7QUFFekMsTUFBTSwyQkFBMkIsR0FBRztJQUNoQyxTQUFTLEVBQUcsSUFBSTtJQUNoQixVQUFVLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBRUYsU0FBUyxLQUFLLENBQUUsR0FBRztJQUNmLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBRSxHQUFHO0lBQ2hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixRQUFRLENBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQ3hDLElBQUksTUFBTSxHQUFPLEVBQUUsQ0FBQztJQUNwQixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFcEIsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssR0FBRyxNQUFNO1FBQzdDLE9BQU8sSUFBQSx1QkFBWSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFMUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztTQUM5QixLQUFLLENBQUMsK0JBQStCLENBQUM7UUFDdkMsMEJBQTBCO1NBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztRQUU3QixJQUFJLGVBQWUsQ0FBQyxNQUFNLENB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QUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDL0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2QixPQUFPLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO0tBQ3BHO0lBRUQsTUFBTSxRQUFRLEdBQVUsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkcsT0FBTyxHQUFHLGVBQWUsU0FBUyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNsRixDQUFDO0FBcEJELGtFQW9CQztBQUVELFNBQWdCLGtCQUFrQixDQUFFLEtBQUs7SUFDckMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDN0MsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLFNBQVMsR0FBRyxJQUFJO0lBQzlELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUZELGdDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGluZGVudFN0cmluZyBmcm9tICdpbmRlbnQtc3RyaW5nJztcblxuY29uc3QgREVGQVVMVF9DT05DQVRFTkFURURfVkFMVUVTID0ge1xuICAgIFNFUEFSQVRPUjogICcsICcsXG4gICAgUVVPVEVfQ0hBUjogJ1wiJyxcbn07XG5cbmZ1bmN0aW9uIHJ0cmltIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xccyskLywgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVFRZQ29sb3JzIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcMDMzXFxbWzAtOTtdKm0vZywgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd29yZFdyYXAgKHN0ciwgaW5kZW50LCB3aWR0aCkge1xuICAgIGxldCBjdXJTdHIgICAgID0gJyc7XG4gICAgbGV0IHdyYXBwZWRNc2cgPSAnJztcblxuICAgIGlmIChyZW1vdmVUVFlDb2xvcnMoc3RyKS5sZW5ndGggPD0gd2lkdGggLSBpbmRlbnQpXG4gICAgICAgIHJldHVybiBpbmRlbnRTdHJpbmcoc3RyLCAnICcsIGluZGVudCk7XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvKFxcclxcbikvZ20sICdcXG4nKVxuICAgICAgICAuc3BsaXQoLyhcXFMrWyBcXHRdKyl8KFxcUysoPzpcXG4pKXwoXFxuKS9tKVxuICAgICAgICAvL05PVEU6IGN1dCBlbXB0eSBlbGVtZW50c1xuICAgICAgICAuZmlsdGVyKGVsbSA9PiAhIWVsbSk7XG5cbiAgICBzdHIuZm9yRWFjaCh3b3JkID0+IHtcbiAgICAgICAgY29uc3QgbmV3U3RyID0gY3VyU3RyICsgd29yZDtcblxuICAgICAgICBpZiAocmVtb3ZlVFRZQ29sb3JzKG5ld1N0cikubGVuZ3RoID4gd2lkdGggLSBpbmRlbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZWRNc2cgKz0gYCR7cnRyaW0oY3VyU3RyKX1cXG5gO1xuICAgICAgICAgICAgY3VyU3RyID0gd29yZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJTdHJbY3VyU3RyLmxlbmd0aCAtIDFdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHdyYXBwZWRNc2cgKz0gYCR7cnRyaW0oY3VyU3RyKX1cXG5gO1xuICAgICAgICAgICAgICAgIGN1clN0ciA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJTdHIgKz0gd29yZDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGluZGVudFN0cmluZyh3cmFwcGVkTXNnICsgY3VyU3RyLCAnICcsIGluZGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFF1b3RlZFRleHQgKHN0ciwgc3BsaXRDaGFyLCBxdW90ZXMgPSAnXCJcXCcnKSB7XG4gICAgbGV0IGN1cnJlbnRQYXJ0ID0gJyc7XG4gICAgY29uc3QgcGFydHMgICAgICAgPSBbXTtcbiAgICBsZXQgcXVvdGVDaGFyICAgPSBudWxsO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY3VycmVudENoYXIgPSBzdHJbaV07XG5cbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyID09PSBzcGxpdENoYXIpIHtcbiAgICAgICAgICAgIGlmIChxdW90ZUNoYXIpXG4gICAgICAgICAgICAgICAgY3VycmVudFBhcnQgKz0gY3VycmVudENoYXI7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKGN1cnJlbnRQYXJ0KTtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFydCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHF1b3Rlcy5pbmRleE9mKGN1cnJlbnRDaGFyKSA+IC0xKSB7XG4gICAgICAgICAgICBpZiAocXVvdGVDaGFyID09PSBjdXJyZW50Q2hhcilcbiAgICAgICAgICAgICAgICBxdW90ZUNoYXIgPSBudWxsO1xuICAgICAgICAgICAgZWxzZSBpZiAoIXF1b3RlQ2hhcilcbiAgICAgICAgICAgICAgICBxdW90ZUNoYXIgPSBjdXJyZW50Q2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFydCArPSBjdXJyZW50Q2hhcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBjdXJyZW50UGFydCArPSBjdXJyZW50Q2hhcjtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFBhcnQpXG4gICAgICAgIHBhcnRzLnB1c2goY3VycmVudFBhcnQpO1xuXG4gICAgcmV0dXJuIHBhcnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1cmFsU3VmZml4IChhcnJheSkge1xuICAgIHJldHVybiBhcnJheS5sZW5ndGggPiAxID8gJ3MnIDogJyc7XG59XG5cbmZ1bmN0aW9uIGdldERpc3BsYXllZEl0ZW1UZXh0IChpdGVtLCBxdW90ZSkge1xuICAgIHJldHVybiBgJHtxdW90ZX0ke2l0ZW19JHtxdW90ZX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uY2F0ZW5hdGVkVmFsdWVzU3RyaW5nIChhcnJheSwgc2VwYXJhdG9yID0gREVGQVVMVF9DT05DQVRFTkFURURfVkFMVUVTLlNFUEFSQVRPUiwgcXVvdGVDaGFyID0gREVGQVVMVF9DT05DQVRFTkFURURfVkFMVUVTLlFVT1RFX0NIQVIpIHtcbiAgICBjb25zdCBjbG9uZWRBcnJheSA9IFsuLi5hcnJheV07XG5cbiAgICBpZiAoc2VwYXJhdG9yID09PSAnXFxuJylcbiAgICAgICAgcmV0dXJuIGNsb25lZEFycmF5Lm1hcChpdGVtID0+IGdldERpc3BsYXllZEl0ZW1UZXh0KGl0ZW0sIHF1b3RlQ2hhcikpLmpvaW4oc2VwYXJhdG9yKTtcblxuICAgIGVsc2UgaWYgKGNsb25lZEFycmF5Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgcmV0dXJuIGdldERpc3BsYXllZEl0ZW1UZXh0KGNsb25lZEFycmF5WzBdLCBxdW90ZUNoYXIpO1xuXG4gICAgZWxzZSBpZiAoY2xvbmVkQXJyYXkubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0xID0gYXJyYXlbMF07XG4gICAgICAgIGNvbnN0IGl0ZW0yID0gYXJyYXlbMV07XG5cbiAgICAgICAgcmV0dXJuIGAke2dldERpc3BsYXllZEl0ZW1UZXh0KGl0ZW0xLCBxdW90ZUNoYXIpfSBhbmQgJHtnZXREaXNwbGF5ZWRJdGVtVGV4dChpdGVtMiwgcXVvdGVDaGFyKX1gO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3RJdGVtICAgICAgICA9IGNsb25lZEFycmF5LnBvcCgpO1xuICAgIGNvbnN0IG90aGVySXRlbVN0cmluZyA9IGNsb25lZEFycmF5Lm1hcChpdGVtID0+IGdldERpc3BsYXllZEl0ZW1UZXh0KGl0ZW0sIHF1b3RlQ2hhcikpLmpvaW4oc2VwYXJhdG9yKTtcblxuICAgIHJldHVybiBgJHtvdGhlckl0ZW1TdHJpbmd9LCBhbmQgJHtnZXREaXNwbGF5ZWRJdGVtVGV4dChsYXN0SXRlbSwgcXVvdGVDaGFyKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9CZUluUGFzdFRlbnNlIChhcnJheSkge1xuICAgIHJldHVybiBhcnJheS5sZW5ndGggPiAxID8gJ3dlcmUnIDogJ3dhcyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaXN0IChhcnJheSwgUFJFRklYID0gJy0gJywgU0VQQVJBVE9SID0gJ1xcbicpIHtcbiAgICByZXR1cm4gYXJyYXkubWFwKG9wdGlvbiA9PiBQUkVGSVggKyBvcHRpb24pLmpvaW4oU0VQQVJBVE9SKTtcbn1cbiJdfQ==
|