testcafe 1.13.0 → 1.14.2
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/CHANGELOG.md +88 -10
- package/LICENSE +21 -21
- package/README.md +52 -48
- package/bin/testcafe-with-v8-flag-filter.js +0 -0
- package/lib/api/exportable-lib/index.js +50 -50
- package/lib/api/request-hooks/assert-type.js +7 -7
- package/lib/api/request-hooks/hook-method-names.js +11 -0
- package/lib/api/request-hooks/hook.js +33 -39
- package/lib/api/request-hooks/interfaces.js +3 -3
- package/lib/api/request-hooks/request-logger.js +113 -111
- package/lib/api/request-hooks/request-mock/create-request-mock.js +12 -0
- package/lib/api/request-hooks/request-mock/index.js +46 -0
- package/lib/api/request-hooks/request-mock.js +47 -48
- package/lib/api/structure/base-unit.js +11 -11
- package/lib/api/structure/fixture.js +75 -75
- package/lib/api/structure/interfaces.js +2 -2
- package/lib/api/structure/test-file.js +31 -31
- package/lib/api/structure/test-timeout.js +9 -9
- package/lib/api/structure/test.js +85 -85
- package/lib/api/structure/testing-unit.js +89 -89
- package/lib/api/structure/unit-type.js +9 -9
- package/lib/api/test-controller/assertion.js +88 -88
- package/lib/api/test-controller/execution-context.js +82 -82
- package/lib/api/test-controller/index.js +359 -319
- package/lib/api/test-controller/proxy.js +28 -28
- package/lib/api/test-page-url.js +60 -60
- package/lib/api/test-run-tracker.js +68 -68
- package/lib/api/wrap-test-function.js +49 -49
- package/lib/assertions/executor.js +74 -74
- package/lib/assertions/get-fn.js +46 -46
- package/lib/assertions/type.js +20 -20
- package/lib/assets/content-types.js +9 -9
- package/lib/assets/injectables.js +18 -18
- package/lib/browser/connection/command.js +10 -10
- package/lib/browser/connection/error-hints.js +9 -9
- package/lib/browser/connection/gateway.js +159 -159
- package/lib/browser/connection/get-hints.js +33 -33
- package/lib/browser/connection/heartbeat-status.js +8 -8
- package/lib/browser/connection/index.js +328 -328
- package/lib/browser/connection/remotes-queue.js +46 -46
- package/lib/browser/connection/service-routes.js +12 -12
- package/lib/browser/connection/status.js +12 -12
- package/lib/browser/interfaces.js +2 -2
- package/lib/browser/provider/built-in/dedicated/base.js +80 -80
- package/lib/browser/provider/built-in/dedicated/chrome/browser-client.js +204 -204
- package/lib/browser/provider/built-in/dedicated/chrome/build-chrome-args.js +17 -17
- package/lib/browser/provider/built-in/dedicated/chrome/config.js +110 -110
- package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +45 -45
- package/lib/browser/provider/built-in/dedicated/chrome/elapsed-upperbounds.js +15 -15
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +102 -102
- package/lib/browser/provider/built-in/dedicated/chrome/interfaces.js +2 -2
- package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +24 -24
- package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +29 -29
- package/lib/browser/provider/built-in/dedicated/edge/index.js +10 -10
- package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +29 -29
- package/lib/browser/provider/built-in/dedicated/firefox/config.js +33 -33
- package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +78 -78
- package/lib/browser/provider/built-in/dedicated/firefox/index.js +73 -73
- package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +36 -36
- package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/commands.js +13 -13
- package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +200 -200
- package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +17 -17
- package/lib/browser/provider/built-in/index.js +21 -21
- package/lib/browser/provider/built-in/locally-installed.js +30 -30
- package/lib/browser/provider/built-in/path.js +47 -47
- package/lib/browser/provider/built-in/remote.js +58 -58
- package/lib/browser/provider/index.js +303 -303
- package/lib/browser/provider/parse-provider-name.js +16 -16
- package/lib/browser/provider/plugin-host.js +121 -121
- package/lib/browser/provider/pool.js +115 -115
- package/lib/browser/provider/utils/argument-parsing.js +74 -74
- package/lib/browser/provider/utils/browser-starter.js +34 -34
- package/lib/browser/provider/utils/client-functions.js +24 -24
- package/lib/browser/provider/utils/get-maximized-headless-window-size.js +9 -9
- package/lib/cli/argument-parser.js +284 -279
- package/lib/cli/authentication-helper.js +35 -35
- package/lib/cli/cli.js +134 -134
- package/lib/cli/correct-browsers-and-sources.js +40 -40
- package/lib/cli/index.js +19 -19
- package/lib/cli/log.js +43 -43
- package/lib/cli/remotes-wizard.js +36 -36
- package/lib/cli/termination-handler.js +38 -38
- package/lib/client/automation/index.js +144 -46
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/browser/idle-page/index.html.mustache +35 -35
- package/lib/client/browser/idle-page/logo.svg +86 -86
- package/lib/client/browser/service-worker.js +4 -6
- package/lib/client/core/index.js +19 -13
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/driver/index.js +1807 -451
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/driver/internal-properties.js +9 -9
- package/lib/client/test-run/iframe.js.mustache +17 -17
- package/lib/client/test-run/index.js.mustache +51 -51
- package/lib/client/ui/index.js +14 -12
- package/lib/client/ui/index.min.js +1 -1
- package/lib/client/ui/sprite.svg +42 -42
- package/lib/client-functions/builder-symbol.js +4 -4
- package/lib/client-functions/client-function-builder.js +156 -135
- package/lib/client-functions/replicator.js +61 -61
- package/lib/client-functions/return-single-prop-mode.js +8 -8
- package/lib/client-functions/selector-api-execution-mode.js +22 -0
- package/lib/client-functions/selectors/add-api.js +646 -588
- package/lib/client-functions/selectors/create-snapshot-methods.js +13 -13
- package/lib/client-functions/selectors/prepare-api-args.js +20 -20
- package/lib/client-functions/selectors/selector-attribute-filter.js +22 -22
- package/lib/client-functions/selectors/selector-builder.js +154 -150
- package/lib/client-functions/selectors/selector-text-filter.js +43 -43
- package/lib/client-functions/selectors/snapshot-properties.js +48 -48
- package/lib/client-functions/types.js +18 -18
- package/lib/compiler/babel/format-babel-produced-code.js +10 -10
- package/lib/compiler/babel/get-base-babel-options.js +11 -11
- package/lib/compiler/babel/load-libs.js +64 -62
- package/lib/compiler/babel/preset-stage-2.js +19 -19
- package/lib/compiler/compile-client-function.js +73 -73
- package/lib/compiler/compilers.js +33 -33
- package/lib/compiler/index.js +92 -92
- package/lib/compiler/interfaces.js +2 -2
- package/lib/compiler/test-file/api-based.js +146 -146
- package/lib/compiler/test-file/base.js +36 -36
- package/lib/compiler/test-file/exportble-lib-path.js +5 -5
- package/lib/compiler/test-file/formats/coffeescript/compiler.js +38 -38
- package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +29 -29
- package/lib/compiler/test-file/formats/es-next/compiler.js +43 -43
- package/lib/compiler/test-file/formats/es-next/get-test-list.js +166 -166
- package/lib/compiler/test-file/formats/es-next/is-flow-code.js +7 -7
- package/lib/compiler/test-file/formats/raw.js +85 -85
- package/lib/compiler/test-file/formats/typescript/compiler.js +135 -135
- package/lib/compiler/test-file/formats/typescript/get-test-list.js +185 -185
- package/lib/compiler/test-file/test-file-parser-base.js +214 -214
- package/lib/configuration/configuration-base.js +165 -165
- package/lib/configuration/constants.js +9 -9
- package/lib/configuration/customizable-compilers.js +7 -7
- package/lib/configuration/default-values.js +51 -51
- package/lib/configuration/interfaces.js +3 -3
- package/lib/configuration/option-names.js +53 -53
- package/lib/configuration/option-source.js +9 -9
- package/lib/configuration/option.js +14 -14
- package/lib/configuration/quarantine-option-names.js +10 -0
- package/lib/configuration/run-option-names.js +26 -26
- package/lib/configuration/screenshot-option-names.js +10 -10
- package/lib/configuration/testcafe-configuration.js +164 -165
- package/lib/configuration/types.js +2 -2
- package/lib/configuration/typescript-configuration.js +62 -62
- package/lib/custom-client-scripts/assert-type.js +7 -7
- package/lib/custom-client-scripts/client-script-init.js +3 -3
- package/lib/custom-client-scripts/client-script.js +107 -108
- package/lib/custom-client-scripts/get-code.js +11 -11
- package/lib/custom-client-scripts/get-url.js +6 -6
- package/lib/custom-client-scripts/load.js +15 -15
- package/lib/custom-client-scripts/problematic-scripts.js +2 -2
- package/lib/custom-client-scripts/routing.js +36 -36
- package/lib/custom-client-scripts/utils.js +60 -60
- package/lib/embedding-utils.js +83 -83
- package/lib/errors/create-stack-filter.js +18 -18
- package/lib/errors/error-list.js +26 -26
- package/lib/errors/get-callsite.js +31 -31
- package/lib/errors/internal-modules-prefix.js +8 -8
- package/lib/errors/is-internal-stack-frame.js +46 -46
- package/lib/errors/process-test-fn-error.js +37 -37
- package/lib/errors/runtime/index.js +123 -123
- package/lib/errors/runtime/templates.js +116 -114
- package/lib/errors/runtime/type-assertions.js +112 -112
- package/lib/errors/stack-cleaning-hook.js +64 -64
- package/lib/errors/test-run/formattable-adapter.js +59 -59
- package/lib/errors/test-run/index.js +302 -302
- package/lib/errors/test-run/render-error-template.js +31 -31
- package/lib/errors/test-run/templates.js +93 -95
- package/lib/errors/test-run/utils.js +90 -85
- package/lib/errors/types.js +157 -155
- package/lib/index.js +81 -81
- package/lib/live/bootstrapper.js +44 -44
- package/lib/live/controller.js +107 -107
- package/lib/live/file-watcher/index.js +67 -67
- package/lib/live/file-watcher/modules-graph.js +58 -58
- package/lib/live/keyboard-observer.js +76 -76
- package/lib/live/logger/index.js +64 -64
- package/lib/live/test-run-controller.js +96 -96
- package/lib/live/test-run-state.js +6 -6
- package/lib/live/test-run.js +56 -56
- package/lib/live/test-runner.js +168 -168
- package/lib/load-assets.js +29 -29
- package/lib/notifications/add-rendered-warning.js +16 -16
- package/lib/notifications/debug-logger.js +78 -78
- package/lib/notifications/deprecated.js +24 -24
- package/lib/notifications/information-message.js +12 -12
- package/lib/notifications/warning-log.js +32 -31
- package/lib/notifications/warning-message.js +48 -48
- package/lib/reporter/command/command-formatter.js +120 -109
- package/lib/reporter/command/format-command.js +8 -8
- package/lib/reporter/command/interfaces.js +2 -2
- package/lib/reporter/index.js +319 -314
- package/lib/reporter/interfaces.js +2 -2
- package/lib/reporter/plugin-host.js +136 -137
- package/lib/reporter/plugin-methods.js +12 -12
- package/lib/role/index.js +74 -74
- package/lib/role/marker-symbol.js +7 -7
- package/lib/role/phase.js +9 -9
- package/lib/runner/bootstrapper.js +272 -272
- package/lib/runner/browser-job-result.js +9 -9
- package/lib/runner/browser-job.js +153 -123
- package/lib/runner/browser-set.js +114 -114
- package/lib/runner/fixture-hook-controller.js +85 -85
- package/lib/runner/index.js +450 -442
- package/lib/runner/interfaces.js +3 -3
- package/lib/runner/reporter-stream-controller.js +28 -28
- package/lib/runner/task/index.js +152 -133
- package/lib/runner/task/phase.js +9 -9
- package/lib/runner/test-run-controller.js +166 -185
- package/lib/runner/tested-app.js +73 -72
- package/lib/screenshots/capturer.js +141 -141
- package/lib/screenshots/constants.js +11 -11
- package/lib/screenshots/crop.js +111 -111
- package/lib/screenshots/default-extension.js +4 -4
- package/lib/screenshots/index.js +67 -67
- package/lib/screenshots/utils.js +39 -39
- package/lib/services/compiler/host.js +190 -106
- package/lib/services/compiler/io.js +9 -9
- package/lib/services/compiler/protocol.js +17 -16
- package/lib/services/compiler/service.js +225 -106
- package/lib/services/compiler/test-run-proxy.js +111 -73
- package/lib/services/interfaces.js +3 -0
- package/lib/services/process-title.js +8 -8
- package/lib/services/serialization/prepare-options.js +17 -17
- package/lib/services/serialization/replicator/create-replicator.js +27 -0
- package/lib/services/serialization/replicator/custom-error-transform.js +28 -0
- package/lib/services/serialization/test-structure.js +93 -77
- package/lib/services/utils/ipc/interfaces.js +30 -30
- package/lib/services/utils/ipc/io.js +108 -108
- package/lib/services/utils/ipc/message.js +76 -73
- package/lib/services/utils/ipc/packet.js +55 -55
- package/lib/services/utils/ipc/proxy.js +110 -118
- package/lib/services/utils/ipc/transport.js +64 -64
- package/lib/shared/errors/index.js +382 -382
- package/lib/shared/node-modules-folder-name.js +4 -4
- package/lib/test-run/bookmark.js +90 -90
- package/lib/test-run/browser-console-messages.js +73 -73
- package/lib/test-run/browser-manipulation-queue.js +92 -92
- package/lib/test-run/client-messages.js +9 -9
- package/lib/test-run/commands/actions.js +486 -425
- package/lib/test-run/commands/assertion.js +45 -45
- package/lib/test-run/commands/base.js +14 -14
- package/lib/test-run/commands/browser-manipulation.js +95 -95
- package/lib/test-run/commands/from-object.js +82 -82
- package/lib/test-run/commands/observation.js +61 -61
- package/lib/test-run/commands/options.js +231 -215
- package/lib/test-run/commands/service.js +54 -48
- package/lib/test-run/commands/type.js +65 -60
- package/lib/test-run/commands/utils.js +87 -87
- package/lib/test-run/commands/validations/argument.js +90 -90
- package/lib/test-run/commands/validations/factories.js +47 -47
- package/lib/test-run/commands/validations/initializers.js +44 -44
- package/lib/test-run/debug-log.js +32 -32
- package/lib/test-run/execute-js-expression.js +74 -74
- package/lib/test-run/index.js +823 -752
- package/lib/test-run/marker-symbol.js +7 -7
- package/lib/test-run/observed-callsites-storage.js +17 -17
- package/lib/test-run/phase.js +16 -16
- package/lib/test-run/session-controller.js +104 -104
- package/lib/testcafe.js +119 -114
- package/lib/utils/assignable.js +39 -39
- package/lib/utils/async-event-emitter.js +28 -28
- package/lib/utils/async-queue.js +14 -14
- package/lib/utils/browser-connection-timeouts.js +19 -19
- package/lib/utils/callsite.js +17 -17
- package/lib/utils/check-file-path.js +31 -31
- package/lib/utils/check-url.js +51 -51
- package/lib/utils/convert-to-best-fit-type.js +16 -16
- package/lib/utils/correct-file-path.js +21 -21
- package/lib/utils/define-lazy-property.js +13 -13
- package/lib/utils/delay.js +6 -6
- package/lib/utils/delegated-api.js +44 -44
- package/lib/utils/detect-display.js +6 -6
- package/lib/utils/detect-ffmpeg.js +44 -44
- package/lib/utils/diff/colors.js +29 -29
- package/lib/utils/diff/index.js +53 -53
- package/lib/utils/diff/util.js +24 -22
- package/lib/utils/diff.js +29 -29
- package/lib/utils/escape-user-agent.js +10 -10
- package/lib/utils/flag-list.js +17 -17
- package/lib/utils/get-any-key.js +8 -8
- package/lib/utils/get-browser.js +8 -8
- package/lib/utils/get-common-path.js +34 -34
- package/lib/utils/get-filter-fn.js +40 -40
- package/lib/utils/get-options/base.js +36 -36
- package/lib/utils/get-options/compiler.js +33 -33
- package/lib/utils/get-options/grep.js +15 -15
- package/lib/utils/get-options/index.js +21 -19
- package/lib/utils/get-options/meta.js +22 -22
- package/lib/utils/get-options/quarantine.js +92 -0
- package/lib/utils/get-options/screenshot.js +17 -17
- package/lib/utils/get-options/ssl.js +45 -45
- package/lib/utils/get-options/video.js +10 -10
- package/lib/utils/get-viewport-width.js +18 -18
- package/lib/utils/guard-time-execution.js +10 -10
- package/lib/utils/handle-errors.js +74 -74
- package/lib/utils/handle-tag-args.js +8 -8
- package/lib/utils/http.js +30 -30
- package/lib/utils/is-localhost.js +11 -11
- package/lib/utils/is-password-input.js +11 -0
- package/lib/utils/is-repl.js +12 -0
- package/lib/utils/is-window-in-iframe.js +6 -6
- package/lib/utils/limit-number.js +10 -10
- package/lib/utils/make-reg-exp.js +7 -7
- package/lib/utils/moment-loader.js +20 -20
- package/lib/utils/parse-file-list.js +71 -71
- package/lib/utils/parse-user-agent.js +55 -55
- package/lib/utils/path-pattern.js +114 -114
- package/lib/utils/prepare-reporters.js +30 -30
- package/lib/utils/prerender-callsite.js +18 -18
- package/lib/utils/process.js +119 -119
- package/lib/utils/promisified-functions.js +46 -46
- package/lib/utils/re-executable-promise.js +39 -39
- package/lib/utils/render-callsite-sync.js +29 -29
- package/lib/utils/render-template.js +10 -10
- package/lib/utils/reporter.js +30 -30
- package/lib/utils/resolve-path-relatively-cwd.js +7 -7
- package/lib/utils/string.js +105 -105
- package/lib/utils/temp-directory/cleanup-process/commands.js +7 -7
- package/lib/utils/temp-directory/cleanup-process/index.js +143 -143
- package/lib/utils/temp-directory/cleanup-process/worker.js +58 -58
- package/lib/utils/temp-directory/index.js +87 -87
- package/lib/utils/temp-directory/lockfile.js +56 -56
- package/lib/utils/thennable.js +7 -7
- package/lib/utils/timer.js +15 -15
- package/lib/utils/to-posix-path.js +8 -8
- package/lib/utils/types.js +2 -2
- package/lib/video-recorder/interfaces.js +2 -2
- package/lib/video-recorder/process.js +126 -126
- package/lib/video-recorder/recorder.js +136 -136
- package/lib/video-recorder/test-run-video-recorder.js +69 -69
- package/lib/video-recorder/videos.js +37 -37
- package/package.json +7 -7
- package/ts-defs/index.d.ts +109 -17
- package/ts-defs/selectors.d.ts +95 -7
- package/ts-defs/testcafe-scripts.d.ts +96 -8
package/lib/embedding-utils.js
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const lazyRequire = require('import-lazy')(require);
|
|
4
|
-
const hammerhead = lazyRequire('testcafe-hammerhead');
|
|
5
|
-
const ReporterPluginHost = lazyRequire('./reporter/plugin-host');
|
|
6
|
-
const getTestListModule = lazyRequire('./compiler/test-file/formats/es-next/get-test-list');
|
|
7
|
-
const getTypeScriptTestListModule = lazyRequire('./compiler/test-file/formats/typescript/get-test-list');
|
|
8
|
-
const getCoffeeScriptTestListModule = lazyRequire('./compiler/test-file/formats/coffeescript/get-test-list');
|
|
9
|
-
const COMMAND_TYPE = lazyRequire('./test-run/commands/type');
|
|
10
|
-
const ASSERTION_TYPE = lazyRequire('./assertions/type');
|
|
11
|
-
const TEST_RUN_PHASE = lazyRequire('./test-run/phase');
|
|
12
|
-
const createCommandFromObject = lazyRequire('./test-run/commands/from-object');
|
|
13
|
-
const initializers = lazyRequire('./test-run/commands/validations/initializers');
|
|
14
|
-
const errorTypes = lazyRequire('./errors/types');
|
|
15
|
-
const TestRunErrorFormattableAdapter = lazyRequire('./errors/test-run/formattable-adapter');
|
|
16
|
-
const testRunErrors = lazyRequire('./errors/test-run');
|
|
17
|
-
const processTestFnError = lazyRequire('./errors/process-test-fn-error');
|
|
18
|
-
const testRunErrorUtils = lazyRequire('./errors/test-run/utils');
|
|
19
|
-
const browserProviderPool = lazyRequire('./browser/provider/pool');
|
|
20
|
-
const BrowserConnection = lazyRequire('./browser/connection');
|
|
21
|
-
// NOTE: we can't use lazy require for TestRun and Assignable, because it breaks prototype chain for inherited classes
|
|
22
|
-
let TestRun = null;
|
|
23
|
-
let Assignable = null;
|
|
24
|
-
exports.default = {
|
|
25
|
-
TestRunErrorFormattableAdapter,
|
|
26
|
-
testRunErrors,
|
|
27
|
-
COMMAND_TYPE,
|
|
28
|
-
ASSERTION_TYPE,
|
|
29
|
-
TEST_RUN_PHASE,
|
|
30
|
-
errorTypes,
|
|
31
|
-
testRunErrorUtils,
|
|
32
|
-
BrowserConnection,
|
|
33
|
-
get Assignable() {
|
|
34
|
-
if (!Assignable)
|
|
35
|
-
Assignable = require('./utils/assignable');
|
|
36
|
-
return Assignable;
|
|
37
|
-
},
|
|
38
|
-
get TestRun() {
|
|
39
|
-
if (!TestRun)
|
|
40
|
-
TestRun = require('./test-run');
|
|
41
|
-
return TestRun;
|
|
42
|
-
},
|
|
43
|
-
get getTestList() {
|
|
44
|
-
return getTestListModule.getTestList;
|
|
45
|
-
},
|
|
46
|
-
get getTypeScriptTestList() {
|
|
47
|
-
return getTypeScriptTestListModule.getTypeScriptTestList;
|
|
48
|
-
},
|
|
49
|
-
get getCoffeeScriptTestList() {
|
|
50
|
-
return getCoffeeScriptTestListModule.getCoffeeScriptTestList;
|
|
51
|
-
},
|
|
52
|
-
get getTestListFromCode() {
|
|
53
|
-
return getTestListModule.getTestListFromCode;
|
|
54
|
-
},
|
|
55
|
-
get getTypeScriptTestListFromCode() {
|
|
56
|
-
return getTypeScriptTestListModule.getTypeScriptTestListFromCode;
|
|
57
|
-
},
|
|
58
|
-
get getCoffeeScriptTestListFromCode() {
|
|
59
|
-
return getCoffeeScriptTestListModule.getCoffeeScriptTestListFromCode;
|
|
60
|
-
},
|
|
61
|
-
get initSelector() {
|
|
62
|
-
return initializers.initSelector;
|
|
63
|
-
},
|
|
64
|
-
get createCommandFromObject() {
|
|
65
|
-
return createCommandFromObject;
|
|
66
|
-
},
|
|
67
|
-
get processTestFnError() {
|
|
68
|
-
return processTestFnError;
|
|
69
|
-
},
|
|
70
|
-
get browserProviderPool() {
|
|
71
|
-
return browserProviderPool;
|
|
72
|
-
},
|
|
73
|
-
ensureUploadDirectory(...args) {
|
|
74
|
-
return hammerhead.UploadStorage.ensureUploadsRoot(...args);
|
|
75
|
-
},
|
|
76
|
-
copyFilesToUploadFolder(...args) {
|
|
77
|
-
return hammerhead.UploadStorage.copy(...args);
|
|
78
|
-
},
|
|
79
|
-
buildReporterPlugin(pluginFactory, outStream) {
|
|
80
|
-
const plugin = pluginFactory();
|
|
81
|
-
return new ReporterPluginHost(plugin, outStream);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lazyRequire = require('import-lazy')(require);
|
|
4
|
+
const hammerhead = lazyRequire('testcafe-hammerhead');
|
|
5
|
+
const ReporterPluginHost = lazyRequire('./reporter/plugin-host');
|
|
6
|
+
const getTestListModule = lazyRequire('./compiler/test-file/formats/es-next/get-test-list');
|
|
7
|
+
const getTypeScriptTestListModule = lazyRequire('./compiler/test-file/formats/typescript/get-test-list');
|
|
8
|
+
const getCoffeeScriptTestListModule = lazyRequire('./compiler/test-file/formats/coffeescript/get-test-list');
|
|
9
|
+
const COMMAND_TYPE = lazyRequire('./test-run/commands/type');
|
|
10
|
+
const ASSERTION_TYPE = lazyRequire('./assertions/type');
|
|
11
|
+
const TEST_RUN_PHASE = lazyRequire('./test-run/phase');
|
|
12
|
+
const createCommandFromObject = lazyRequire('./test-run/commands/from-object');
|
|
13
|
+
const initializers = lazyRequire('./test-run/commands/validations/initializers');
|
|
14
|
+
const errorTypes = lazyRequire('./errors/types');
|
|
15
|
+
const TestRunErrorFormattableAdapter = lazyRequire('./errors/test-run/formattable-adapter');
|
|
16
|
+
const testRunErrors = lazyRequire('./errors/test-run');
|
|
17
|
+
const processTestFnError = lazyRequire('./errors/process-test-fn-error');
|
|
18
|
+
const testRunErrorUtils = lazyRequire('./errors/test-run/utils');
|
|
19
|
+
const browserProviderPool = lazyRequire('./browser/provider/pool');
|
|
20
|
+
const BrowserConnection = lazyRequire('./browser/connection');
|
|
21
|
+
// NOTE: we can't use lazy require for TestRun and Assignable, because it breaks prototype chain for inherited classes
|
|
22
|
+
let TestRun = null;
|
|
23
|
+
let Assignable = null;
|
|
24
|
+
exports.default = {
|
|
25
|
+
TestRunErrorFormattableAdapter,
|
|
26
|
+
testRunErrors,
|
|
27
|
+
COMMAND_TYPE,
|
|
28
|
+
ASSERTION_TYPE,
|
|
29
|
+
TEST_RUN_PHASE,
|
|
30
|
+
errorTypes,
|
|
31
|
+
testRunErrorUtils,
|
|
32
|
+
BrowserConnection,
|
|
33
|
+
get Assignable() {
|
|
34
|
+
if (!Assignable)
|
|
35
|
+
Assignable = require('./utils/assignable');
|
|
36
|
+
return Assignable;
|
|
37
|
+
},
|
|
38
|
+
get TestRun() {
|
|
39
|
+
if (!TestRun)
|
|
40
|
+
TestRun = require('./test-run');
|
|
41
|
+
return TestRun;
|
|
42
|
+
},
|
|
43
|
+
get getTestList() {
|
|
44
|
+
return getTestListModule.getTestList;
|
|
45
|
+
},
|
|
46
|
+
get getTypeScriptTestList() {
|
|
47
|
+
return getTypeScriptTestListModule.getTypeScriptTestList;
|
|
48
|
+
},
|
|
49
|
+
get getCoffeeScriptTestList() {
|
|
50
|
+
return getCoffeeScriptTestListModule.getCoffeeScriptTestList;
|
|
51
|
+
},
|
|
52
|
+
get getTestListFromCode() {
|
|
53
|
+
return getTestListModule.getTestListFromCode;
|
|
54
|
+
},
|
|
55
|
+
get getTypeScriptTestListFromCode() {
|
|
56
|
+
return getTypeScriptTestListModule.getTypeScriptTestListFromCode;
|
|
57
|
+
},
|
|
58
|
+
get getCoffeeScriptTestListFromCode() {
|
|
59
|
+
return getCoffeeScriptTestListModule.getCoffeeScriptTestListFromCode;
|
|
60
|
+
},
|
|
61
|
+
get initSelector() {
|
|
62
|
+
return initializers.initSelector;
|
|
63
|
+
},
|
|
64
|
+
get createCommandFromObject() {
|
|
65
|
+
return createCommandFromObject;
|
|
66
|
+
},
|
|
67
|
+
get processTestFnError() {
|
|
68
|
+
return processTestFnError;
|
|
69
|
+
},
|
|
70
|
+
get browserProviderPool() {
|
|
71
|
+
return browserProviderPool;
|
|
72
|
+
},
|
|
73
|
+
ensureUploadDirectory(...args) {
|
|
74
|
+
return hammerhead.UploadStorage.ensureUploadsRoot(...args);
|
|
75
|
+
},
|
|
76
|
+
copyFilesToUploadFolder(...args) {
|
|
77
|
+
return hammerhead.UploadStorage.copy(...args);
|
|
78
|
+
},
|
|
79
|
+
buildReporterPlugin(pluginFactory, outStream) {
|
|
80
|
+
const plugin = pluginFactory();
|
|
81
|
+
return new ReporterPluginHost(plugin, outStream);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
84
|
module.exports = exports.default;
|
|
85
85
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VtYmVkZGluZy11dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVwRCxNQUFNLFVBQVUsR0FBdUIsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDMUUsTUFBTSxrQkFBa0IsR0FBZSxXQUFXLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUM3RSxNQUFNLGlCQUFpQixHQUFnQixXQUFXLENBQUMsb0RBQW9ELENBQUMsQ0FBQztBQUN6RyxNQUFNLDJCQUEyQixHQUFNLFdBQVcsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0FBQzVHLE1BQU0sNkJBQTZCLEdBQUksV0FBVyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDOUcsTUFBTSxZQUFZLEdBQXFCLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQy9FLE1BQU0sY0FBYyxHQUFtQixXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUN4RSxNQUFNLGNBQWMsR0FBbUIsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDdkUsTUFBTSx1QkFBdUIsR0FBVSxXQUFXLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUN0RixNQUFNLFlBQVksR0FBcUIsV0FBVyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7QUFDbkcsTUFBTSxVQUFVLEdBQXVCLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sOEJBQThCLEdBQUcsV0FBVyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFDNUYsTUFBTSxhQUFhLEdBQW9CLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQWUsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFDckYsTUFBTSxpQkFBaUIsR0FBZ0IsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDOUUsTUFBTSxtQkFBbUIsR0FBYyxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM5RSxNQUFNLGlCQUFpQixHQUFnQixXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUczRSxzSEFBc0g7QUFDdEgsSUFBSSxPQUFPLEdBQU0sSUFBSSxDQUFDO0FBQ3RCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztBQUV0QixrQkFBZTtJQUNYLDhCQUE4QjtJQUM5QixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxjQUFjO0lBQ2QsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFFakIsSUFBSSxVQUFVO1FBQ1YsSUFBSSxDQUFDLFVBQVU7WUFDWCxVQUFVLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFL0MsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLElBQUksQ0FBQyxPQUFPO1lBQ1IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVwQyxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3JCLE9BQU8sMkJBQTJCLENBQUMscUJBQXFCLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3ZCLE9BQU8sNkJBQTZCLENBQUMsdUJBQXVCLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8saUJBQWlCLENBQUMsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksNkJBQTZCO1FBQzdCLE9BQU8sMkJBQTJCLENBQUMsNkJBQTZCLENBQUM7SUFDckUsQ0FBQztJQUVELElBQUksK0JBQStCO1FBQy9CLE9BQU8sNkJBQTZCLENBQUMsK0JBQStCLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sWUFBWSxDQUFDLFlBQVksQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDdkIsT0FBTyx1QkFBdUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxrQkFBa0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxtQkFBbUIsQ0FBQztJQUMvQixDQUFDO0lBRUQscUJBQXFCLENBQUUsR0FBRyxJQUFJO1FBQzFCLE9BQU8sVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCx1QkFBdUIsQ0FBRSxHQUFHLElBQUk7UUFDNUIsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxtQkFBbUIsQ0FBRSxhQUFhLEVBQUUsU0FBUztRQUN6QyxNQUFNLE1BQU0sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUUvQixPQUFPLElBQUksa0JBQWtCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbGF6eVJlcXVpcmUgPSByZXF1aXJlKCdpbXBvcnQtbGF6eScpKHJlcXVpcmUpO1xuXG5jb25zdCBoYW1tZXJoZWFkICAgICAgICAgICAgICAgICAgICAgPSBsYXp5UmVxdWlyZSgndGVzdGNhZmUtaGFtbWVyaGVhZCcpO1xuY29uc3QgUmVwb3J0ZXJQbHVnaW5Ib3N0ICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vcmVwb3J0ZXIvcGx1Z2luLWhvc3QnKTtcbmNvbnN0IGdldFRlc3RMaXN0TW9kdWxlICAgICAgICAgICAgICA9IGxhenlSZXF1aXJlKCcuL2NvbXBpbGVyL3Rlc3QtZmlsZS9mb3JtYXRzL2VzLW5leHQvZ2V0LXRlc3QtbGlzdCcpO1xuY29uc3QgZ2V0VHlwZVNjcmlwdFRlc3RMaXN0TW9kdWxlICAgID0gbGF6eVJlcXVpcmUoJy4vY29tcGlsZXIvdGVzdC1maWxlL2Zvcm1hdHMvdHlwZXNjcmlwdC9nZXQtdGVzdC1saXN0Jyk7XG5jb25zdCBnZXRDb2ZmZWVTY3JpcHRUZXN0TGlzdE1vZHVsZSAgPSBsYXp5UmVxdWlyZSgnLi9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy9jb2ZmZWVzY3JpcHQvZ2V0LXRlc3QtbGlzdCcpO1xuY29uc3QgQ09NTUFORF9UWVBFICAgICAgICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vdGVzdC1ydW4vY29tbWFuZHMvdHlwZScpO1xuY29uc3QgQVNTRVJUSU9OX1RZUEUgICAgICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vYXNzZXJ0aW9ucy90eXBlJyk7XG5jb25zdCBURVNUX1JVTl9QSEFTRSAgICAgICAgICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi90ZXN0LXJ1bi9waGFzZScpO1xuY29uc3QgY3JlYXRlQ29tbWFuZEZyb21PYmplY3QgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vdGVzdC1ydW4vY29tbWFuZHMvZnJvbS1vYmplY3QnKTtcbmNvbnN0IGluaXRpYWxpemVycyAgICAgICAgICAgICAgICAgICA9IGxhenlSZXF1aXJlKCcuL3Rlc3QtcnVuL2NvbW1hbmRzL3ZhbGlkYXRpb25zL2luaXRpYWxpemVycycpO1xuY29uc3QgZXJyb3JUeXBlcyAgICAgICAgICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vZXJyb3JzL3R5cGVzJyk7XG5jb25zdCBUZXN0UnVuRXJyb3JGb3JtYXR0YWJsZUFkYXB0ZXIgPSBsYXp5UmVxdWlyZSgnLi9lcnJvcnMvdGVzdC1ydW4vZm9ybWF0dGFibGUtYWRhcHRlcicpO1xuY29uc3QgdGVzdFJ1bkVycm9ycyAgICAgICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vZXJyb3JzL3Rlc3QtcnVuJyk7XG5jb25zdCBwcm9jZXNzVGVzdEZuRXJyb3IgICAgICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi9lcnJvcnMvcHJvY2Vzcy10ZXN0LWZuLWVycm9yJyk7XG5jb25zdCB0ZXN0UnVuRXJyb3JVdGlscyAgICAgICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi9lcnJvcnMvdGVzdC1ydW4vdXRpbHMnKTtcbmNvbnN0IGJyb3dzZXJQcm92aWRlclBvb2wgICAgICAgICAgICA9IGxhenlSZXF1aXJlKCcuL2Jyb3dzZXIvcHJvdmlkZXIvcG9vbCcpO1xuY29uc3QgQnJvd3NlckNvbm5lY3Rpb24gICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4vYnJvd3Nlci9jb25uZWN0aW9uJyk7XG5cblxuLy8gTk9URTogd2UgY2FuJ3QgdXNlIGxhenkgcmVxdWlyZSBmb3IgVGVzdFJ1biBhbmQgQXNzaWduYWJsZSwgYmVjYXVzZSBpdCBicmVha3MgcHJvdG90eXBlIGNoYWluIGZvciBpbmhlcml0ZWQgY2xhc3Nlc1xubGV0IFRlc3RSdW4gICAgPSBudWxsO1xubGV0IEFzc2lnbmFibGUgPSBudWxsO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgVGVzdFJ1bkVycm9yRm9ybWF0dGFibGVBZGFwdGVyLFxuICAgIHRlc3RSdW5FcnJvcnMsXG4gICAgQ09NTUFORF9UWVBFLFxuICAgIEFTU0VSVElPTl9UWVBFLFxuICAgIFRFU1RfUlVOX1BIQVNFLFxuICAgIGVycm9yVHlwZXMsXG4gICAgdGVzdFJ1bkVycm9yVXRpbHMsXG4gICAgQnJvd3NlckNvbm5lY3Rpb24sXG5cbiAgICBnZXQgQXNzaWduYWJsZSAoKSB7XG4gICAgICAgIGlmICghQXNzaWduYWJsZSlcbiAgICAgICAgICAgIEFzc2lnbmFibGUgPSByZXF1aXJlKCcuL3V0aWxzL2Fzc2lnbmFibGUnKTtcblxuICAgICAgICByZXR1cm4gQXNzaWduYWJsZTtcbiAgICB9LFxuXG4gICAgZ2V0IFRlc3RSdW4gKCkge1xuICAgICAgICBpZiAoIVRlc3RSdW4pXG4gICAgICAgICAgICBUZXN0UnVuID0gcmVxdWlyZSgnLi90ZXN0LXJ1bicpO1xuXG4gICAgICAgIHJldHVybiBUZXN0UnVuO1xuICAgIH0sXG5cbiAgICBnZXQgZ2V0VGVzdExpc3QgKCkge1xuICAgICAgICByZXR1cm4gZ2V0VGVzdExpc3RNb2R1bGUuZ2V0VGVzdExpc3Q7XG4gICAgfSxcblxuICAgIGdldCBnZXRUeXBlU2NyaXB0VGVzdExpc3QgKCkge1xuICAgICAgICByZXR1cm4gZ2V0VHlwZVNjcmlwdFRlc3RMaXN0TW9kdWxlLmdldFR5cGVTY3JpcHRUZXN0TGlzdDtcbiAgICB9LFxuXG4gICAgZ2V0IGdldENvZmZlZVNjcmlwdFRlc3RMaXN0ICgpIHtcbiAgICAgICAgcmV0dXJuIGdldENvZmZlZVNjcmlwdFRlc3RMaXN0TW9kdWxlLmdldENvZmZlZVNjcmlwdFRlc3RMaXN0O1xuICAgIH0sXG5cbiAgICBnZXQgZ2V0VGVzdExpc3RGcm9tQ29kZSAoKSB7XG4gICAgICAgIHJldHVybiBnZXRUZXN0TGlzdE1vZHVsZS5nZXRUZXN0TGlzdEZyb21Db2RlO1xuICAgIH0sXG5cbiAgICBnZXQgZ2V0VHlwZVNjcmlwdFRlc3RMaXN0RnJvbUNvZGUgKCkge1xuICAgICAgICByZXR1cm4gZ2V0VHlwZVNjcmlwdFRlc3RMaXN0TW9kdWxlLmdldFR5cGVTY3JpcHRUZXN0TGlzdEZyb21Db2RlO1xuICAgIH0sXG5cbiAgICBnZXQgZ2V0Q29mZmVlU2NyaXB0VGVzdExpc3RGcm9tQ29kZSAoKSB7XG4gICAgICAgIHJldHVybiBnZXRDb2ZmZWVTY3JpcHRUZXN0TGlzdE1vZHVsZS5nZXRDb2ZmZWVTY3JpcHRUZXN0TGlzdEZyb21Db2RlO1xuICAgIH0sXG5cbiAgICBnZXQgaW5pdFNlbGVjdG9yICgpIHtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVycy5pbml0U2VsZWN0b3I7XG4gICAgfSxcblxuICAgIGdldCBjcmVhdGVDb21tYW5kRnJvbU9iamVjdCAoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVDb21tYW5kRnJvbU9iamVjdDtcbiAgICB9LFxuXG4gICAgZ2V0IHByb2Nlc3NUZXN0Rm5FcnJvciAoKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzVGVzdEZuRXJyb3I7XG4gICAgfSxcblxuICAgIGdldCBicm93c2VyUHJvdmlkZXJQb29sICgpIHtcbiAgICAgICAgcmV0dXJuIGJyb3dzZXJQcm92aWRlclBvb2w7XG4gICAgfSxcblxuICAgIGVuc3VyZVVwbG9hZERpcmVjdG9yeSAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gaGFtbWVyaGVhZC5VcGxvYWRTdG9yYWdlLmVuc3VyZVVwbG9hZHNSb290KC4uLmFyZ3MpO1xuICAgIH0sXG5cbiAgICBjb3B5RmlsZXNUb1VwbG9hZEZvbGRlciAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gaGFtbWVyaGVhZC5VcGxvYWRTdG9yYWdlLmNvcHkoLi4uYXJncyk7XG4gICAgfSxcblxuICAgIGJ1aWxkUmVwb3J0ZXJQbHVnaW4gKHBsdWdpbkZhY3RvcnksIG91dFN0cmVhbSkge1xuICAgICAgICBjb25zdCBwbHVnaW4gPSBwbHVnaW5GYWN0b3J5KCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBSZXBvcnRlclBsdWdpbkhvc3QocGx1Z2luLCBvdXRTdHJlYW0pO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const is_internal_stack_frame_1 = __importDefault(require("./is-internal-stack-frame"));
|
|
7
|
-
function createStackFilter(limit) {
|
|
8
|
-
let passedFramesCount = 0;
|
|
9
|
-
return function stackFilter(frame) {
|
|
10
|
-
if (passedFramesCount >= limit)
|
|
11
|
-
return false;
|
|
12
|
-
const pass = !is_internal_stack_frame_1.default(frame);
|
|
13
|
-
if (pass)
|
|
14
|
-
passedFramesCount++;
|
|
15
|
-
return pass;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
exports.default = createStackFilter;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const is_internal_stack_frame_1 = __importDefault(require("./is-internal-stack-frame"));
|
|
7
|
+
function createStackFilter(limit) {
|
|
8
|
+
let passedFramesCount = 0;
|
|
9
|
+
return function stackFilter(frame) {
|
|
10
|
+
if (passedFramesCount >= limit)
|
|
11
|
+
return false;
|
|
12
|
+
const pass = !is_internal_stack_frame_1.default(frame);
|
|
13
|
+
if (pass)
|
|
14
|
+
passedFramesCount++;
|
|
15
|
+
return pass;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.default = createStackFilter;
|
|
19
19
|
module.exports = exports.default;
|
|
20
20
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN0YWNrLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvY3JlYXRlLXN0YWNrLWZpbHRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdGQUE2RDtBQUU3RCxTQUF3QixpQkFBaUIsQ0FBRSxLQUFLO0lBQzVDLElBQUksaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBRTFCLE9BQU8sU0FBUyxXQUFXLENBQUUsS0FBSztRQUM5QixJQUFJLGlCQUFpQixJQUFJLEtBQUs7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFFakIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxpQ0FBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUk7WUFDSixpQkFBaUIsRUFBRSxDQUFDO1FBRXhCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFkRCxvQ0FjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0ludGVybmFsU3RhY2tGcmFtZSBmcm9tICcuL2lzLWludGVybmFsLXN0YWNrLWZyYW1lJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU3RhY2tGaWx0ZXIgKGxpbWl0KSB7XG4gICAgbGV0IHBhc3NlZEZyYW1lc0NvdW50ID0gMDtcblxuICAgIHJldHVybiBmdW5jdGlvbiBzdGFja0ZpbHRlciAoZnJhbWUpIHtcbiAgICAgICAgaWYgKHBhc3NlZEZyYW1lc0NvdW50ID49IGxpbWl0KVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHBhc3MgPSAhaXNJbnRlcm5hbFN0YWNrRnJhbWUoZnJhbWUpO1xuXG4gICAgICAgIGlmIChwYXNzKVxuICAgICAgICAgICAgcGFzc2VkRnJhbWVzQ291bnQrKztcblxuICAgICAgICByZXR1cm4gcGFzcztcbiAgICB9O1xufVxuIl19
|
package/lib/errors/error-list.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const process_test_fn_error_1 = __importDefault(require("./process-test-fn-error"));
|
|
7
|
-
const test_run_1 = require("./test-run");
|
|
8
|
-
class TestCafeErrorList {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.items = [];
|
|
11
|
-
this.name = TestCafeErrorList.name;
|
|
12
|
-
}
|
|
13
|
-
get hasErrors() {
|
|
14
|
-
return !!this.items.length;
|
|
15
|
-
}
|
|
16
|
-
get hasUncaughtErrorsInTestCode() {
|
|
17
|
-
return this.items.some(item => item instanceof test_run_1.UncaughtErrorInTestCode);
|
|
18
|
-
}
|
|
19
|
-
addError(err) {
|
|
20
|
-
if (err instanceof TestCafeErrorList)
|
|
21
|
-
this.items = this.items.concat(err.items);
|
|
22
|
-
else
|
|
23
|
-
this.items.push(process_test_fn_error_1.default(err));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.default = TestCafeErrorList;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const process_test_fn_error_1 = __importDefault(require("./process-test-fn-error"));
|
|
7
|
+
const test_run_1 = require("./test-run");
|
|
8
|
+
class TestCafeErrorList {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.items = [];
|
|
11
|
+
this.name = TestCafeErrorList.name;
|
|
12
|
+
}
|
|
13
|
+
get hasErrors() {
|
|
14
|
+
return !!this.items.length;
|
|
15
|
+
}
|
|
16
|
+
get hasUncaughtErrorsInTestCode() {
|
|
17
|
+
return this.items.some(item => item instanceof test_run_1.UncaughtErrorInTestCode);
|
|
18
|
+
}
|
|
19
|
+
addError(err) {
|
|
20
|
+
if (err instanceof TestCafeErrorList)
|
|
21
|
+
this.items = this.items.concat(err.items);
|
|
22
|
+
else
|
|
23
|
+
this.items.push(process_test_fn_error_1.default(err));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.default = TestCafeErrorList;
|
|
27
27
|
module.exports = exports.default;
|
|
28
28
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvZXJyb3ItbGlzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9GQUF5RDtBQUN6RCx5Q0FBcUQ7QUFFckQsTUFBcUIsaUJBQWlCO0lBQ2xDO1FBQ0ksSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLGtDQUF1QixDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFFBQVEsQ0FBRSxHQUFHO1FBQ1QsSUFBSSxHQUFHLFlBQVksaUJBQWlCO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUUxQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDSjtBQXBCRCxvQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHJvY2Vzc1Rlc3RGbkVycm9yIGZyb20gJy4vcHJvY2Vzcy10ZXN0LWZuLWVycm9yJztcbmltcG9ydCB7IFVuY2F1Z2h0RXJyb3JJblRlc3RDb2RlIH0gZnJvbSAnLi90ZXN0LXJ1bic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RDYWZlRXJyb3JMaXN0IHtcbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5uYW1lICA9IFRlc3RDYWZlRXJyb3JMaXN0Lm5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Vycm9ycyAoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaXRlbXMubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBoYXNVbmNhdWdodEVycm9yc0luVGVzdENvZGUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5zb21lKGl0ZW0gPT4gaXRlbSBpbnN0YW5jZW9mIFVuY2F1Z2h0RXJyb3JJblRlc3RDb2RlKTtcbiAgICB9XG5cbiAgICBhZGRFcnJvciAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBUZXN0Q2FmZUVycm9yTGlzdClcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmNvbmNhdChlcnIuaXRlbXMpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2gocHJvY2Vzc1Rlc3RGbkVycm9yKGVycikpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getCallsiteForError = exports.getCallsiteForMethod = void 0;
|
|
7
|
-
const callsite_record_1 = __importDefault(require("callsite-record"));
|
|
8
|
-
const stack_cleaning_hook_1 = __importDefault(require("./stack-cleaning-hook"));
|
|
9
|
-
const source_map_support_1 = require("source-map-support");
|
|
10
|
-
const STACK_TRACE_LIMIT = 2000;
|
|
11
|
-
function getCallsite(options) {
|
|
12
|
-
const originalStackCleaningEnabled = stack_cleaning_hook_1.default.enabled;
|
|
13
|
-
const originalStackTraceLimit = Error.stackTraceLimit;
|
|
14
|
-
stack_cleaning_hook_1.default.enabled = false;
|
|
15
|
-
Error.stackTraceLimit = STACK_TRACE_LIMIT;
|
|
16
|
-
const callsiteRecord = callsite_record_1.default(options);
|
|
17
|
-
Error.stackTraceLimit = originalStackTraceLimit;
|
|
18
|
-
stack_cleaning_hook_1.default.enabled = originalStackCleaningEnabled;
|
|
19
|
-
return callsiteRecord;
|
|
20
|
-
}
|
|
21
|
-
function getCallsiteForMethod(methodName, typeName) {
|
|
22
|
-
return getCallsite({ byFunctionName: methodName, typeName, processFrameFn: source_map_support_1.wrapCallSite });
|
|
23
|
-
}
|
|
24
|
-
exports.getCallsiteForMethod = getCallsiteForMethod;
|
|
25
|
-
function getCallsiteForError(error, isCallsiteFrame) {
|
|
26
|
-
// NOTE: "source-map-support" process this kind of error automatically, cause
|
|
27
|
-
// in this case there is an appeal to "err.stack" inside "callsite-record" which
|
|
28
|
-
// provokes wrapping of frames, so there is no need to specify "processFrameFn".
|
|
29
|
-
return getCallsite({ forError: error, isCallsiteFrame });
|
|
30
|
-
}
|
|
31
|
-
exports.getCallsiteForError = getCallsiteForError;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getCallsiteForError = exports.getCallsiteForMethod = void 0;
|
|
7
|
+
const callsite_record_1 = __importDefault(require("callsite-record"));
|
|
8
|
+
const stack_cleaning_hook_1 = __importDefault(require("./stack-cleaning-hook"));
|
|
9
|
+
const source_map_support_1 = require("source-map-support");
|
|
10
|
+
const STACK_TRACE_LIMIT = 2000;
|
|
11
|
+
function getCallsite(options) {
|
|
12
|
+
const originalStackCleaningEnabled = stack_cleaning_hook_1.default.enabled;
|
|
13
|
+
const originalStackTraceLimit = Error.stackTraceLimit;
|
|
14
|
+
stack_cleaning_hook_1.default.enabled = false;
|
|
15
|
+
Error.stackTraceLimit = STACK_TRACE_LIMIT;
|
|
16
|
+
const callsiteRecord = callsite_record_1.default(options);
|
|
17
|
+
Error.stackTraceLimit = originalStackTraceLimit;
|
|
18
|
+
stack_cleaning_hook_1.default.enabled = originalStackCleaningEnabled;
|
|
19
|
+
return callsiteRecord;
|
|
20
|
+
}
|
|
21
|
+
function getCallsiteForMethod(methodName, typeName) {
|
|
22
|
+
return getCallsite({ byFunctionName: methodName, typeName, processFrameFn: source_map_support_1.wrapCallSite });
|
|
23
|
+
}
|
|
24
|
+
exports.getCallsiteForMethod = getCallsiteForMethod;
|
|
25
|
+
function getCallsiteForError(error, isCallsiteFrame) {
|
|
26
|
+
// NOTE: "source-map-support" process this kind of error automatically, cause
|
|
27
|
+
// in this case there is an appeal to "err.stack" inside "callsite-record" which
|
|
28
|
+
// provokes wrapping of frames, so there is no need to specify "processFrameFn".
|
|
29
|
+
return getCallsite({ forError: error, isCallsiteFrame });
|
|
30
|
+
}
|
|
31
|
+
exports.getCallsiteForError = getCallsiteForError;
|
|
32
32
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhbGxzaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9nZXQtY2FsbHNpdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0VBQW1EO0FBQ25ELGdGQUFzRDtBQUN0RCwyREFBa0Q7QUFFbEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFFL0IsU0FBUyxXQUFXLENBQUUsT0FBTztJQUN6QixNQUFNLDRCQUE0QixHQUFHLDZCQUFpQixDQUFDLE9BQU8sQ0FBQztJQUMvRCxNQUFNLHVCQUF1QixHQUFRLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFFM0QsNkJBQWlCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNsQyxLQUFLLENBQUMsZUFBZSxHQUFPLGlCQUFpQixDQUFDO0lBRTlDLE1BQU0sY0FBYyxHQUFHLHlCQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXJELEtBQUssQ0FBQyxlQUFlLEdBQU8sdUJBQXVCLENBQUM7SUFDcEQsNkJBQWlCLENBQUMsT0FBTyxHQUFHLDRCQUE0QixDQUFDO0lBRXpELE9BQU8sY0FBYyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBRSxVQUFVLEVBQUUsUUFBUTtJQUN0RCxPQUFPLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxpQ0FBWSxFQUFFLENBQUMsQ0FBQztBQUMvRixDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBRSxLQUFLLEVBQUUsZUFBZTtJQUN2RCw2RUFBNkU7SUFDN0UsZ0ZBQWdGO0lBQ2hGLGdGQUFnRjtJQUNoRixPQUFPLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBTEQsa0RBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlQ2FsbHNpdGVSZWNvcmQgZnJvbSAnY2FsbHNpdGUtcmVjb3JkJztcbmltcG9ydCBzdGFja0NsZWFuaW5nSG9vayBmcm9tICcuL3N0YWNrLWNsZWFuaW5nLWhvb2snO1xuaW1wb3J0IHsgd3JhcENhbGxTaXRlIH0gZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcblxuY29uc3QgU1RBQ0tfVFJBQ0VfTElNSVQgPSAyMDAwO1xuXG5mdW5jdGlvbiBnZXRDYWxsc2l0ZSAob3B0aW9ucykge1xuICAgIGNvbnN0IG9yaWdpbmFsU3RhY2tDbGVhbmluZ0VuYWJsZWQgPSBzdGFja0NsZWFuaW5nSG9vay5lbmFibGVkO1xuICAgIGNvbnN0IG9yaWdpbmFsU3RhY2tUcmFjZUxpbWl0ICAgICAgPSBFcnJvci5zdGFja1RyYWNlTGltaXQ7XG5cbiAgICBzdGFja0NsZWFuaW5nSG9vay5lbmFibGVkID0gZmFsc2U7XG4gICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ICAgICA9IFNUQUNLX1RSQUNFX0xJTUlUO1xuXG4gICAgY29uc3QgY2FsbHNpdGVSZWNvcmQgPSBjcmVhdGVDYWxsc2l0ZVJlY29yZChvcHRpb25zKTtcblxuICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCAgICAgPSBvcmlnaW5hbFN0YWNrVHJhY2VMaW1pdDtcbiAgICBzdGFja0NsZWFuaW5nSG9vay5lbmFibGVkID0gb3JpZ2luYWxTdGFja0NsZWFuaW5nRW5hYmxlZDtcblxuICAgIHJldHVybiBjYWxsc2l0ZVJlY29yZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbGxzaXRlRm9yTWV0aG9kIChtZXRob2ROYW1lLCB0eXBlTmFtZSkge1xuICAgIHJldHVybiBnZXRDYWxsc2l0ZSh7IGJ5RnVuY3Rpb25OYW1lOiBtZXRob2ROYW1lLCB0eXBlTmFtZSwgcHJvY2Vzc0ZyYW1lRm46IHdyYXBDYWxsU2l0ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhbGxzaXRlRm9yRXJyb3IgKGVycm9yLCBpc0NhbGxzaXRlRnJhbWUpIHtcbiAgICAvLyBOT1RFOiBcInNvdXJjZS1tYXAtc3VwcG9ydFwiIHByb2Nlc3MgdGhpcyBraW5kIG9mIGVycm9yIGF1dG9tYXRpY2FsbHksIGNhdXNlXG4gICAgLy8gaW4gdGhpcyBjYXNlIHRoZXJlIGlzIGFuIGFwcGVhbCB0byBcImVyci5zdGFja1wiIGluc2lkZSBcImNhbGxzaXRlLXJlY29yZFwiIHdoaWNoXG4gICAgLy8gcHJvdm9rZXMgd3JhcHBpbmcgb2YgZnJhbWVzLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHNwZWNpZnkgXCJwcm9jZXNzRnJhbWVGblwiLlxuICAgIHJldHVybiBnZXRDYWxsc2l0ZSh7IGZvckVycm9yOiBlcnJvciwgaXNDYWxsc2l0ZUZyYW1lIH0pO1xufVxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const semver_1 = __importDefault(require("semver"));
|
|
7
|
-
const INTERNAL_MODULES_PREFIX = semver_1.default.gte(process.version, '15.0.0') ? 'node:' : 'internal/';
|
|
8
|
-
exports.default = INTERNAL_MODULES_PREFIX;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const semver_1 = __importDefault(require("semver"));
|
|
7
|
+
const INTERNAL_MODULES_PREFIX = semver_1.default.gte(process.version, '15.0.0') ? 'node:' : 'internal/';
|
|
8
|
+
exports.default = INTERNAL_MODULES_PREFIX;
|
|
9
9
|
module.exports = exports.default;
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtbW9kdWxlcy1wcmVmaXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL2ludGVybmFsLW1vZHVsZXMtcHJlZml4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLE1BQU0sdUJBQXVCLEdBQUcsZ0JBQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7QUFFOUYsa0JBQWUsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmNvbnN0IElOVEVSTkFMX01PRFVMRVNfUFJFRklYID0gc2VtdmVyLmd0ZShwcm9jZXNzLnZlcnNpb24sICcxNS4wLjAnKSA/ICdub2RlOicgOiAnaW50ZXJuYWwvJztcblxuZXhwb3J0IGRlZmF1bHQgSU5URVJOQUxfTU9EVUxFU19QUkVGSVg7XG4iXX0=
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const lodash_1 = require("lodash");
|
|
8
|
-
const internal_modules_prefix_1 = __importDefault(require("./internal-modules-prefix"));
|
|
9
|
-
const BABEL = require.resolve('@babel/core');
|
|
10
|
-
const BABEL_MODULES_DIR = BABEL.replace(new RegExp(`^(.*${lodash_1.escapeRegExp(path_1.sep)}node_modules${lodash_1.escapeRegExp(path_1.sep)})(.*)`), '$1');
|
|
11
|
-
const BABEL_7 = BABEL_MODULES_DIR + '@babel';
|
|
12
|
-
const BABEL_RELATED = BABEL_MODULES_DIR + 'babel-';
|
|
13
|
-
const REGENERATOR_RUNTIME = BABEL_MODULES_DIR + 'regenerator-runtime' + path_1.sep;
|
|
14
|
-
const GENSYNC = BABEL_MODULES_DIR + 'gensync'; // NOTE: @babel/parser uses this module internally.
|
|
15
|
-
const TESTCAFE_LIB = path_1.join(__dirname, '../');
|
|
16
|
-
const TESTCAFE_BIN = path_1.join(__dirname, '../../bin');
|
|
17
|
-
const TESTCAFE_SRC = path_1.join(__dirname, '../../src');
|
|
18
|
-
const TESTCAFE_HAMMERHEAD =
|
|
19
|
-
const SOURCE_MAP_SUPPORT =
|
|
20
|
-
const INTERNAL_STARTS_WITH_PATH_SEGMENTS = [
|
|
21
|
-
TESTCAFE_LIB,
|
|
22
|
-
TESTCAFE_BIN,
|
|
23
|
-
TESTCAFE_SRC,
|
|
24
|
-
BABEL_RELATED,
|
|
25
|
-
REGENERATOR_RUNTIME,
|
|
26
|
-
GENSYNC,
|
|
27
|
-
BABEL_7,
|
|
28
|
-
internal_modules_prefix_1.default
|
|
29
|
-
];
|
|
30
|
-
const INTERNAL_INCLUDES_PATH_SEGMENTS = [
|
|
31
|
-
SOURCE_MAP_SUPPORT,
|
|
32
|
-
TESTCAFE_HAMMERHEAD
|
|
33
|
-
];
|
|
34
|
-
function isInternalFile(filename = '') {
|
|
35
|
-
return !filename ||
|
|
36
|
-
!filename.includes(path_1.sep) ||
|
|
37
|
-
INTERNAL_INCLUDES_PATH_SEGMENTS.some(pathSegment => filename.includes(pathSegment)) ||
|
|
38
|
-
INTERNAL_STARTS_WITH_PATH_SEGMENTS.some(pathSegment => filename.startsWith(pathSegment));
|
|
39
|
-
}
|
|
40
|
-
function default_1(frame) {
|
|
41
|
-
// NOTE: filter out the internals of node.js and assertion libraries
|
|
42
|
-
const filename = frame.getFileName();
|
|
43
|
-
return isInternalFile(filename);
|
|
44
|
-
}
|
|
45
|
-
exports.default = default_1;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const internal_modules_prefix_1 = __importDefault(require("./internal-modules-prefix"));
|
|
9
|
+
const BABEL = require.resolve('@babel/core');
|
|
10
|
+
const BABEL_MODULES_DIR = BABEL.replace(new RegExp(`^(.*${lodash_1.escapeRegExp(path_1.sep)}node_modules${lodash_1.escapeRegExp(path_1.sep)})(.*)`), '$1');
|
|
11
|
+
const BABEL_7 = BABEL_MODULES_DIR + '@babel';
|
|
12
|
+
const BABEL_RELATED = BABEL_MODULES_DIR + 'babel-';
|
|
13
|
+
const REGENERATOR_RUNTIME = BABEL_MODULES_DIR + 'regenerator-runtime' + path_1.sep;
|
|
14
|
+
const GENSYNC = BABEL_MODULES_DIR + 'gensync'; // NOTE: @babel/parser uses this module internally.
|
|
15
|
+
const TESTCAFE_LIB = path_1.join(__dirname, '../');
|
|
16
|
+
const TESTCAFE_BIN = path_1.join(__dirname, '../../bin');
|
|
17
|
+
const TESTCAFE_SRC = path_1.join(__dirname, '../../src');
|
|
18
|
+
const TESTCAFE_HAMMERHEAD = require.resolve('testcafe-hammerhead');
|
|
19
|
+
const SOURCE_MAP_SUPPORT = require.resolve('source-map-support');
|
|
20
|
+
const INTERNAL_STARTS_WITH_PATH_SEGMENTS = [
|
|
21
|
+
TESTCAFE_LIB,
|
|
22
|
+
TESTCAFE_BIN,
|
|
23
|
+
TESTCAFE_SRC,
|
|
24
|
+
BABEL_RELATED,
|
|
25
|
+
REGENERATOR_RUNTIME,
|
|
26
|
+
GENSYNC,
|
|
27
|
+
BABEL_7,
|
|
28
|
+
internal_modules_prefix_1.default
|
|
29
|
+
];
|
|
30
|
+
const INTERNAL_INCLUDES_PATH_SEGMENTS = [
|
|
31
|
+
SOURCE_MAP_SUPPORT,
|
|
32
|
+
TESTCAFE_HAMMERHEAD
|
|
33
|
+
];
|
|
34
|
+
function isInternalFile(filename = '') {
|
|
35
|
+
return !filename ||
|
|
36
|
+
!filename.includes(path_1.sep) ||
|
|
37
|
+
INTERNAL_INCLUDES_PATH_SEGMENTS.some(pathSegment => filename.includes(pathSegment)) ||
|
|
38
|
+
INTERNAL_STARTS_WITH_PATH_SEGMENTS.some(pathSegment => filename.startsWith(pathSegment));
|
|
39
|
+
}
|
|
40
|
+
function default_1(frame) {
|
|
41
|
+
// NOTE: filter out the internals of node.js and assertion libraries
|
|
42
|
+
const filename = frame.getFileName();
|
|
43
|
+
return isInternalFile(filename);
|
|
44
|
+
}
|
|
45
|
+
exports.default = default_1;
|
|
46
46
|
module.exports = exports.default;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW50ZXJuYWwtc3RhY2stZnJhbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL2lzLWludGVybmFsLXN0YWNrLWZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWlDO0FBQ2pDLG1DQUFrRDtBQUNsRCx3RkFBZ0U7QUFHaEUsTUFBTSxLQUFLLEdBQWlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDM0QsTUFBTSxpQkFBaUIsR0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8scUJBQVEsQ0FBQyxVQUFHLENBQUMsZUFBZSxxQkFBUSxDQUFDLFVBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNySCxNQUFNLE9BQU8sR0FBZSxpQkFBaUIsR0FBRyxRQUFRLENBQUM7QUFDekQsTUFBTSxhQUFhLEdBQVMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO0FBQ3pELE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLEdBQUcscUJBQXFCLEdBQUcsVUFBRyxDQUFDO0FBQzVFLE1BQU0sT0FBTyxHQUFlLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDLG1EQUFtRDtBQUM5RyxNQUFNLFlBQVksR0FBVSxXQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ25ELE1BQU0sWUFBWSxHQUFVLFdBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDekQsTUFBTSxZQUFZLEdBQVUsV0FBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN6RCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNuRSxNQUFNLGtCQUFrQixHQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVsRSxNQUFNLGtDQUFrQyxHQUFHO0lBQ3ZDLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsT0FBTztJQUNQLE9BQU87SUFDUCxpQ0FBdUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sK0JBQStCLEdBQUc7SUFDcEMsa0JBQWtCO0lBQ2xCLG1CQUFtQjtDQUN0QixDQUFDO0FBRUYsU0FBUyxjQUFjLENBQUUsV0FBbUIsRUFBRTtJQUMxQyxPQUFPLENBQUMsUUFBUTtRQUNaLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFHLENBQUM7UUFDdkIsK0JBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRixrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDakcsQ0FBQztBQUVELG1CQUF5QixLQUFpQjtJQUN0QyxvRUFBb0U7SUFDcEUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXJDLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFMRCw0QkFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNlcCwgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZXNjYXBlUmVnRXhwIGFzIGVzY2FwZVJlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBJTlRFUk5BTF9NT0RVTEVTX1BSRUZJWCBmcm9tICcuL2ludGVybmFsLW1vZHVsZXMtcHJlZml4JztcbmltcG9ydCB7IFN0YWNrRnJhbWUgfSBmcm9tICdlcnJvci1zdGFjay1wYXJzZXInO1xuXG5jb25zdCBCQUJFTCAgICAgICAgICAgICAgID0gcmVxdWlyZS5yZXNvbHZlKCdAYmFiZWwvY29yZScpO1xuY29uc3QgQkFCRUxfTU9EVUxFU19ESVIgICA9IEJBQkVMLnJlcGxhY2UobmV3IFJlZ0V4cChgXiguKiR7ZXNjYXBlUmUoc2VwKX1ub2RlX21vZHVsZXMke2VzY2FwZVJlKHNlcCl9KSguKilgKSwgJyQxJyk7XG5jb25zdCBCQUJFTF83ICAgICAgICAgICAgID0gQkFCRUxfTU9EVUxFU19ESVIgKyAnQGJhYmVsJztcbmNvbnN0IEJBQkVMX1JFTEFURUQgICAgICAgPSBCQUJFTF9NT0RVTEVTX0RJUiArICdiYWJlbC0nO1xuY29uc3QgUkVHRU5FUkFUT1JfUlVOVElNRSA9IEJBQkVMX01PRFVMRVNfRElSICsgJ3JlZ2VuZXJhdG9yLXJ1bnRpbWUnICsgc2VwO1xuY29uc3QgR0VOU1lOQyAgICAgICAgICAgICA9IEJBQkVMX01PRFVMRVNfRElSICsgJ2dlbnN5bmMnOyAvLyBOT1RFOiBAYmFiZWwvcGFyc2VyIHVzZXMgdGhpcyBtb2R1bGUgaW50ZXJuYWxseS5cbmNvbnN0IFRFU1RDQUZFX0xJQiAgICAgICAgPSBqb2luKF9fZGlybmFtZSwgJy4uLycpO1xuY29uc3QgVEVTVENBRkVfQklOICAgICAgICA9IGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vYmluJyk7XG5jb25zdCBURVNUQ0FGRV9TUkMgICAgICAgID0gam9pbihfX2Rpcm5hbWUsICcuLi8uLi9zcmMnKTtcbmNvbnN0IFRFU1RDQUZFX0hBTU1FUkhFQUQgPSByZXF1aXJlLnJlc29sdmUoJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnKTtcbmNvbnN0IFNPVVJDRV9NQVBfU1VQUE9SVCAgPSByZXF1aXJlLnJlc29sdmUoJ3NvdXJjZS1tYXAtc3VwcG9ydCcpO1xuXG5jb25zdCBJTlRFUk5BTF9TVEFSVFNfV0lUSF9QQVRIX1NFR01FTlRTID0gW1xuICAgIFRFU1RDQUZFX0xJQixcbiAgICBURVNUQ0FGRV9CSU4sXG4gICAgVEVTVENBRkVfU1JDLFxuICAgIEJBQkVMX1JFTEFURUQsXG4gICAgUkVHRU5FUkFUT1JfUlVOVElNRSxcbiAgICBHRU5TWU5DLFxuICAgIEJBQkVMXzcsXG4gICAgSU5URVJOQUxfTU9EVUxFU19QUkVGSVhcbl07XG5cbmNvbnN0IElOVEVSTkFMX0lOQ0xVREVTX1BBVEhfU0VHTUVOVFMgPSBbXG4gICAgU09VUkNFX01BUF9TVVBQT1JULFxuICAgIFRFU1RDQUZFX0hBTU1FUkhFQURcbl07XG5cbmZ1bmN0aW9uIGlzSW50ZXJuYWxGaWxlIChmaWxlbmFtZTogc3RyaW5nID0gJycpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWZpbGVuYW1lIHx8XG4gICAgICAgICFmaWxlbmFtZS5pbmNsdWRlcyhzZXApIHx8XG4gICAgICAgIElOVEVSTkFMX0lOQ0xVREVTX1BBVEhfU0VHTUVOVFMuc29tZShwYXRoU2VnbWVudCA9PiBmaWxlbmFtZS5pbmNsdWRlcyhwYXRoU2VnbWVudCkpIHx8XG4gICAgICAgIElOVEVSTkFMX1NUQVJUU19XSVRIX1BBVEhfU0VHTUVOVFMuc29tZShwYXRoU2VnbWVudCA9PiBmaWxlbmFtZS5zdGFydHNXaXRoKHBhdGhTZWdtZW50KSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChmcmFtZTogU3RhY2tGcmFtZSk6IGJvb2xlYW4ge1xuICAgIC8vIE5PVEU6IGZpbHRlciBvdXQgdGhlIGludGVybmFscyBvZiBub2RlLmpzIGFuZCBhc3NlcnRpb24gbGlicmFyaWVzXG4gICAgY29uc3QgZmlsZW5hbWUgPSBmcmFtZS5nZXRGaWxlTmFtZSgpO1xuXG4gICAgcmV0dXJuIGlzSW50ZXJuYWxGaWxlKGZpbGVuYW1lKTtcbn1cbiJdfQ==
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const get_callsite_1 = require("./get-callsite");
|
|
8
|
-
const runtime_1 = require("./runtime");
|
|
9
|
-
const error_list_1 = __importDefault(require("./error-list"));
|
|
10
|
-
const internal_modules_prefix_1 = __importDefault(require("./internal-modules-prefix"));
|
|
11
|
-
const node_modules_folder_name_1 = __importDefault(require("../shared/node-modules-folder-name"));
|
|
12
|
-
const test_run_1 = require("./test-run");
|
|
13
|
-
function isAssertionErrorCallsiteFrame(frame) {
|
|
14
|
-
const filename = frame.getFileName();
|
|
15
|
-
// NOTE: filter out the internals of node.js and assertion libraries
|
|
16
|
-
return filename &&
|
|
17
|
-
filename.includes(path_1.sep) &&
|
|
18
|
-
!filename.startsWith(internal_modules_prefix_1.default) &&
|
|
19
|
-
!filename.includes(`${path_1.sep}${node_modules_folder_name_1.default}${path_1.sep}`);
|
|
20
|
-
}
|
|
21
|
-
function processTestFnError(err) {
|
|
22
|
-
if (err && (err.isTestCafeError || err instanceof error_list_1.default))
|
|
23
|
-
return err;
|
|
24
|
-
if (err && err instanceof runtime_1.APIError)
|
|
25
|
-
return new test_run_1.UncaughtErrorInTestCode(err);
|
|
26
|
-
if (err instanceof Error) {
|
|
27
|
-
const isAssertionError = err.name === 'AssertionError' || err.constructor.name === 'AssertionError';
|
|
28
|
-
// NOTE: assertion libraries can add their source files to the error stack frames.
|
|
29
|
-
// We should skip them to create a correct callsite for the assertion error.
|
|
30
|
-
const callsite = isAssertionError ? get_callsite_1.getCallsiteForError(err, isAssertionErrorCallsiteFrame) : get_callsite_1.getCallsiteForError(err);
|
|
31
|
-
return isAssertionError ?
|
|
32
|
-
new test_run_1.ExternalAssertionLibraryError(err, callsite) :
|
|
33
|
-
new test_run_1.UncaughtErrorInTestCode(err, callsite);
|
|
34
|
-
}
|
|
35
|
-
return new test_run_1.UncaughtNonErrorObjectInTestCode(err);
|
|
36
|
-
}
|
|
37
|
-
exports.default = processTestFnError;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const get_callsite_1 = require("./get-callsite");
|
|
8
|
+
const runtime_1 = require("./runtime");
|
|
9
|
+
const error_list_1 = __importDefault(require("./error-list"));
|
|
10
|
+
const internal_modules_prefix_1 = __importDefault(require("./internal-modules-prefix"));
|
|
11
|
+
const node_modules_folder_name_1 = __importDefault(require("../shared/node-modules-folder-name"));
|
|
12
|
+
const test_run_1 = require("./test-run");
|
|
13
|
+
function isAssertionErrorCallsiteFrame(frame) {
|
|
14
|
+
const filename = frame.getFileName();
|
|
15
|
+
// NOTE: filter out the internals of node.js and assertion libraries
|
|
16
|
+
return filename &&
|
|
17
|
+
filename.includes(path_1.sep) &&
|
|
18
|
+
!filename.startsWith(internal_modules_prefix_1.default) &&
|
|
19
|
+
!filename.includes(`${path_1.sep}${node_modules_folder_name_1.default}${path_1.sep}`);
|
|
20
|
+
}
|
|
21
|
+
function processTestFnError(err) {
|
|
22
|
+
if (err && (err.isTestCafeError || err instanceof error_list_1.default))
|
|
23
|
+
return err;
|
|
24
|
+
if (err && err instanceof runtime_1.APIError)
|
|
25
|
+
return new test_run_1.UncaughtErrorInTestCode(err);
|
|
26
|
+
if (err instanceof Error) {
|
|
27
|
+
const isAssertionError = err.name === 'AssertionError' || err.constructor.name === 'AssertionError';
|
|
28
|
+
// NOTE: assertion libraries can add their source files to the error stack frames.
|
|
29
|
+
// We should skip them to create a correct callsite for the assertion error.
|
|
30
|
+
const callsite = isAssertionError ? get_callsite_1.getCallsiteForError(err, isAssertionErrorCallsiteFrame) : get_callsite_1.getCallsiteForError(err);
|
|
31
|
+
return isAssertionError ?
|
|
32
|
+
new test_run_1.ExternalAssertionLibraryError(err, callsite) :
|
|
33
|
+
new test_run_1.UncaughtErrorInTestCode(err, callsite);
|
|
34
|
+
}
|
|
35
|
+
return new test_run_1.UncaughtNonErrorObjectInTestCode(err);
|
|
36
|
+
}
|
|
37
|
+
exports.default = processTestFnError;
|
|
38
38
|
module.exports = exports.default;
|
|
39
39
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy10ZXN0LWZuLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9wcm9jZXNzLXRlc3QtZm4tZXJyb3IuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBMkI7QUFDM0IsaURBQXFEO0FBQ3JELHVDQUFxQztBQUNyQyw4REFBNkM7QUFDN0Msd0ZBQWdFO0FBQ2hFLGtHQUE4RDtBQUU5RCx5Q0FJb0I7QUFFcEIsU0FBUyw2QkFBNkIsQ0FBRSxLQUFLO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVyQyxvRUFBb0U7SUFDcEUsT0FBTyxRQUFRO1FBQ1gsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFHLENBQUM7UUFDdEIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGlDQUF1QixDQUFDO1FBQzdDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFVBQUcsR0FBRyxrQ0FBWSxHQUFHLFVBQUcsRUFBRSxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQXdCLGtCQUFrQixDQUFFLEdBQUc7SUFDM0MsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEdBQUcsWUFBWSxvQkFBaUIsQ0FBQztRQUNoRSxPQUFPLEdBQUcsQ0FBQztJQUVmLElBQUksR0FBRyxJQUFJLEdBQUcsWUFBWSxrQkFBUTtRQUM5QixPQUFPLElBQUksa0NBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFNUMsSUFBSSxHQUFHLFlBQVksS0FBSyxFQUFFO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQztRQUVwRyxrRkFBa0Y7UUFDbEYsNEVBQTRFO1FBQzVFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxrQ0FBbUIsQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsa0NBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdkgsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JCLElBQUksd0NBQTZCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxrQ0FBdUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDbEQ7SUFFRCxPQUFPLElBQUksMkNBQWdDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQXBCRCxxQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXAgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdldENhbGxzaXRlRm9yRXJyb3IgfSBmcm9tICcuL2dldC1jYWxsc2l0ZSc7XG5pbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJy4vcnVudGltZSc7XG5pbXBvcnQgVGVzdENhZmVFcnJvckxpc3QgZnJvbSAnLi9lcnJvci1saXN0JztcbmltcG9ydCBJTlRFUk5BTF9NT0RVTEVTX1BSRUZJWCBmcm9tICcuL2ludGVybmFsLW1vZHVsZXMtcHJlZml4JztcbmltcG9ydCBOT0RFX01PRFVMRVMgZnJvbSAnLi4vc2hhcmVkL25vZGUtbW9kdWxlcy1mb2xkZXItbmFtZSc7XG5cbmltcG9ydCB7XG4gICAgVW5jYXVnaHRFcnJvckluVGVzdENvZGUsXG4gICAgVW5jYXVnaHROb25FcnJvck9iamVjdEluVGVzdENvZGUsXG4gICAgRXh0ZXJuYWxBc3NlcnRpb25MaWJyYXJ5RXJyb3Jcbn0gZnJvbSAnLi90ZXN0LXJ1bic7XG5cbmZ1bmN0aW9uIGlzQXNzZXJ0aW9uRXJyb3JDYWxsc2l0ZUZyYW1lIChmcmFtZSkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gZnJhbWUuZ2V0RmlsZU5hbWUoKTtcblxuICAgIC8vIE5PVEU6IGZpbHRlciBvdXQgdGhlIGludGVybmFscyBvZiBub2RlLmpzIGFuZCBhc3NlcnRpb24gbGlicmFyaWVzXG4gICAgcmV0dXJuIGZpbGVuYW1lICYmXG4gICAgICAgIGZpbGVuYW1lLmluY2x1ZGVzKHNlcCkgJiZcbiAgICAgICAgIWZpbGVuYW1lLnN0YXJ0c1dpdGgoSU5URVJOQUxfTU9EVUxFU19QUkVGSVgpICYmXG4gICAgICAgICFmaWxlbmFtZS5pbmNsdWRlcyhgJHtzZXB9JHtOT0RFX01PRFVMRVN9JHtzZXB9YCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByb2Nlc3NUZXN0Rm5FcnJvciAoZXJyKSB7XG4gICAgaWYgKGVyciAmJiAoZXJyLmlzVGVzdENhZmVFcnJvciB8fCBlcnIgaW5zdGFuY2VvZiBUZXN0Q2FmZUVycm9yTGlzdCkpXG4gICAgICAgIHJldHVybiBlcnI7XG5cbiAgICBpZiAoZXJyICYmIGVyciBpbnN0YW5jZW9mIEFQSUVycm9yKVxuICAgICAgICByZXR1cm4gbmV3IFVuY2F1Z2h0RXJyb3JJblRlc3RDb2RlKGVycik7XG5cbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY29uc3QgaXNBc3NlcnRpb25FcnJvciA9IGVyci5uYW1lID09PSAnQXNzZXJ0aW9uRXJyb3InIHx8IGVyci5jb25zdHJ1Y3Rvci5uYW1lID09PSAnQXNzZXJ0aW9uRXJyb3InO1xuXG4gICAgICAgIC8vIE5PVEU6IGFzc2VydGlvbiBsaWJyYXJpZXMgY2FuIGFkZCB0aGVpciBzb3VyY2UgZmlsZXMgdG8gdGhlIGVycm9yIHN0YWNrIGZyYW1lcy5cbiAgICAgICAgLy8gV2Ugc2hvdWxkIHNraXAgdGhlbSB0byBjcmVhdGUgYSBjb3JyZWN0IGNhbGxzaXRlIGZvciB0aGUgYXNzZXJ0aW9uIGVycm9yLlxuICAgICAgICBjb25zdCBjYWxsc2l0ZSA9IGlzQXNzZXJ0aW9uRXJyb3IgPyBnZXRDYWxsc2l0ZUZvckVycm9yKGVyciwgaXNBc3NlcnRpb25FcnJvckNhbGxzaXRlRnJhbWUpIDogZ2V0Q2FsbHNpdGVGb3JFcnJvcihlcnIpO1xuXG4gICAgICAgIHJldHVybiBpc0Fzc2VydGlvbkVycm9yID9cbiAgICAgICAgICAgIG5ldyBFeHRlcm5hbEFzc2VydGlvbkxpYnJhcnlFcnJvcihlcnIsIGNhbGxzaXRlKSA6XG4gICAgICAgICAgICBuZXcgVW5jYXVnaHRFcnJvckluVGVzdENvZGUoZXJyLCBjYWxsc2l0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBVbmNhdWdodE5vbkVycm9yT2JqZWN0SW5UZXN0Q29kZShlcnIpO1xufVxuIl19
|