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
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -56,8 +60,8 @@ function getClientDimensions(target) {
|
|
|
56
60
|
if (isElementInIframe) {
|
|
57
61
|
const iframeElement = domUtils.getIframeByElement(target);
|
|
58
62
|
if (iframeElement) {
|
|
59
|
-
const iframeOffset = exports.getOffsetPosition(iframeElement);
|
|
60
|
-
const clientOffset = exports.offsetToClientCoords(axis_values_1.default.create(iframeOffset));
|
|
63
|
+
const iframeOffset = (0, exports.getOffsetPosition)(iframeElement);
|
|
64
|
+
const clientOffset = (0, exports.offsetToClientCoords)(axis_values_1.default.create(iframeOffset));
|
|
61
65
|
const iframeBorders = styleUtils.getBordersWidth(iframeElement);
|
|
62
66
|
elPosition.add(clientOffset).add(axis_values_1.default.create(iframeBorders));
|
|
63
67
|
if (isHtmlElement)
|
|
@@ -108,8 +112,8 @@ function calcRelativePosition(dimensions, toDimensions) {
|
|
|
108
112
|
}
|
|
109
113
|
exports.calcRelativePosition = calcRelativePosition;
|
|
110
114
|
function getIframeClientCoordinates(iframe) {
|
|
111
|
-
const { left, top } = exports.getOffsetPosition(iframe);
|
|
112
|
-
const clientPosition = exports.offsetToClientCoords({ x: left, y: top });
|
|
115
|
+
const { left, top } = (0, exports.getOffsetPosition)(iframe);
|
|
116
|
+
const clientPosition = (0, exports.offsetToClientCoords)({ x: left, y: top });
|
|
113
117
|
const iframeBorders = styleUtils.getBordersWidth(iframe);
|
|
114
118
|
const iframePadding = styleUtils.getElementPadding(iframe);
|
|
115
119
|
const iframeRectangleLeft = clientPosition.x + iframeBorders.left + iframePadding.left;
|
|
@@ -136,7 +140,7 @@ function getEventAbsoluteCoordinates(ev) {
|
|
|
136
140
|
if (domUtils.isElementInIframe(curDocument.documentElement)) {
|
|
137
141
|
const currentIframe = domUtils.getIframeByElement(curDocument);
|
|
138
142
|
if (currentIframe) {
|
|
139
|
-
const iframeOffset = exports.getOffsetPosition(currentIframe);
|
|
143
|
+
const iframeOffset = (0, exports.getOffsetPosition)(currentIframe);
|
|
140
144
|
const iframeBorders = styleUtils.getBordersWidth(currentIframe);
|
|
141
145
|
xOffset = iframeOffset.left + iframeBorders.left;
|
|
142
146
|
yOffset = iframeOffset.top + iframeBorders.top;
|
|
@@ -163,23 +167,23 @@ function getEventPageCoordinates(ev) {
|
|
|
163
167
|
exports.getEventPageCoordinates = getEventPageCoordinates;
|
|
164
168
|
function getIframePointRelativeToParentFrame(pos, iframeWin) {
|
|
165
169
|
const iframe = domUtils.findIframeByWindow(iframeWin);
|
|
166
|
-
const iframeOffset = exports.getOffsetPosition(iframe);
|
|
170
|
+
const iframeOffset = (0, exports.getOffsetPosition)(iframe);
|
|
167
171
|
const iframeBorders = styleUtils.getBordersWidth(iframe);
|
|
168
172
|
const iframePadding = styleUtils.getElementPadding(iframe);
|
|
169
|
-
return exports.offsetToClientCoords({
|
|
173
|
+
return (0, exports.offsetToClientCoords)({
|
|
170
174
|
x: pos.x + iframeOffset.left + iframeBorders.left + iframePadding.left,
|
|
171
175
|
y: pos.y + iframeOffset.top + iframeBorders.top + iframePadding.top,
|
|
172
176
|
});
|
|
173
177
|
}
|
|
174
178
|
exports.getIframePointRelativeToParentFrame = getIframePointRelativeToParentFrame;
|
|
175
179
|
function findCenter(el) {
|
|
176
|
-
const rectangle = exports.getElementRectangle(el);
|
|
180
|
+
const rectangle = (0, exports.getElementRectangle)(el);
|
|
177
181
|
return new axis_values_1.default(Math.round(rectangle.left + rectangle.width / 2), Math.round(rectangle.top + rectangle.height / 2));
|
|
178
182
|
}
|
|
179
183
|
exports.findCenter = findCenter;
|
|
180
184
|
function getClientPosition(el) {
|
|
181
|
-
const { left, top } = exports.getOffsetPosition(el);
|
|
182
|
-
const clientCoords = exports.offsetToClientCoords({ x: left, y: top });
|
|
185
|
+
const { left, top } = (0, exports.getOffsetPosition)(el);
|
|
186
|
+
const clientCoords = (0, exports.offsetToClientCoords)({ x: left, y: top });
|
|
183
187
|
clientCoords.x = Math.round(clientCoords.x);
|
|
184
188
|
clientCoords.y = Math.round(clientCoords.y);
|
|
185
189
|
return clientCoords;
|
|
@@ -204,7 +208,7 @@ function hiddenUsingStyles(el) {
|
|
|
204
208
|
styleUtils.get(el, 'display') === 'none';
|
|
205
209
|
}
|
|
206
210
|
function hiddenByRectangle(el) {
|
|
207
|
-
const elementRectangle = exports.getElementRectangle(el);
|
|
211
|
+
const elementRectangle = (0, exports.getElementRectangle)(el);
|
|
208
212
|
return elementRectangle.width === 0 ||
|
|
209
213
|
elementRectangle.height === 0;
|
|
210
214
|
}
|
|
@@ -239,4 +243,4 @@ function isElementVisible(el) {
|
|
|
239
243
|
return styleUtils.hasDimensions(el) && !hiddenUsingStyles(el);
|
|
240
244
|
}
|
|
241
245
|
exports.isElementVisible = isElementVisible;
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUE0QztBQUM1QyxvREFBc0M7QUFDdEMsZ0RBQWtDO0FBQ2xDLHVFQUFrRTtBQUNsRSwrRUFBOEU7QUFDOUUscUVBQTZDO0FBR2hDLFFBQUEsbUJBQW1CLEdBQUksb0JBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDO0FBQ3JFLFFBQUEsaUJBQWlCLEdBQU0sb0JBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0FBQ25FLFFBQUEsb0JBQW9CLEdBQUcsb0JBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0FBRW5GLFNBQWdCLG1CQUFtQixDQUFFLE1BQW1CO0lBQ3BELE1BQU0sYUFBYSxHQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsTUFBTSxJQUFJLEdBQWdCLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEYsTUFBTSxXQUFXLEdBQVMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDekQsTUFBTSxTQUFTLEdBQVcseUJBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sUUFBUSxHQUFZLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxNQUFNLFlBQVksR0FB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QU8saUJBQWlCLENBQUMsTUFBZ0MsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVk7WUFDYixPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBNEIsQ0FBQyxDQUFDO1FBRTVELE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQTRCLENBQUMsQ0FBQztBQUMzRyxDQUFDO0FBdENELDRDQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBoYW1tZXJoZWFkIGZyb20gJy4uL2RlcHMvaGFtbWVyaGVhZCc7XG5pbXBvcnQgKiBhcyBzdHlsZVV0aWxzIGZyb20gJy4vc3R5bGUnO1xuaW1wb3J0ICogYXMgZG9tVXRpbHMgZnJvbSAnLi9kb20nO1xuaW1wb3J0IEF4aXNWYWx1ZXMsIHsgQXhpc1ZhbHVlc0RhdGEgfSBmcm9tICcuL3ZhbHVlcy9heGlzLXZhbHVlcyc7XG5pbXBvcnQgQm91bmRhcnlWYWx1ZXMsIHsgQm91bmRhcnlWYWx1ZXNEYXRhIH0gZnJvbSAnLi92YWx1ZXMvYm91bmRhcnktdmFsdWVzJztcbmltcG9ydCBEaW1lbnNpb25zIGZyb20gJy4vdmFsdWVzL2RpbWVuc2lvbnMnO1xuXG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50UmVjdGFuZ2xlICA9IGhhbW1lcmhlYWQudXRpbHMucG9zaXRpb24uZ2V0RWxlbWVudFJlY3RhbmdsZTtcbmV4cG9ydCBjb25zdCBnZXRPZmZzZXRQb3NpdGlvbiAgICA9IGhhbW1lcmhlYWQudXRpbHMucG9zaXRpb24uZ2V0T2Zmc2V0UG9zaXRpb247XG5leHBvcnQgY29uc3Qgb2Zmc2V0VG9DbGllbnRDb29yZHMgPSBoYW1tZXJoZWFkLnV0aWxzLnBvc2l0aW9uLm9mZnNldFRvQ2xpZW50Q29vcmRzO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50RGltZW5zaW9ucyAodGFyZ2V0OiBIVE1MRWxlbWVudCk6IERpbWVuc2lvbnMge1xuICAgIGNvbnN0IGlzSHRtbEVsZW1lbnQgICAgID0gZG9tVXRpbHMuaXNIdG1sRWxlbWVudCh0YXJnZXQpO1xuICAgIGNvbnN0IGJvZHkgICAgICAgICAgICAgID0gaXNIdG1sRWxlbWVudCA/IHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdIDogbnVsbDtcbiAgICBjb25zdCBlbGVtZW50UmVjdCAgICAgICA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBlbEJvcmRlcnMgICAgICAgICA9IEJvdW5kYXJ5VmFsdWVzLmNyZWF0ZShzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aCh0YXJnZXQpKTtcbiAgICBjb25zdCBlbFNjcm9sbCAgICAgICAgICA9IHN0eWxlVXRpbHMuZ2V0RWxlbWVudFNjcm9sbCh0YXJnZXQpO1xuICAgIGNvbnN0IGlzRWxlbWVudEluSWZyYW1lID0gZG9tVXRpbHMuaXNFbGVtZW50SW5JZnJhbWUodGFyZ2V0KTtcbiAgICBjb25zdCBpc0NvbXBhdE1vZGUgICAgICA9IHRhcmdldC5vd25lckRvY3VtZW50LmNvbXBhdE1vZGUgPT09ICdCYWNrQ29tcGF0JztcbiAgICBjb25zdCBlbFBvc2l0aW9uICAgICAgICA9IGlzSHRtbEVsZW1lbnQgPyBuZXcgQXhpc1ZhbHVlcygwLCAwKSA6IEF4aXNWYWx1ZXMuY3JlYXRlKGVsZW1lbnRSZWN0KTtcblxuICAgIGxldCBlbEhlaWdodCAgID0gZWxlbWVudFJlY3QuaGVpZ2h0O1xuICAgIGxldCBlbFdpZHRoICAgID0gZWxlbWVudFJlY3Qud2lkdGg7XG5cbiAgICBpZiAoaXNIdG1sRWxlbWVudCkge1xuICAgICAgICBpZiAoYm9keSAmJiBpc0NvbXBhdE1vZGUpIHtcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gYm9keS5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBlbFdpZHRoICA9IGJvZHkuY2xpZW50V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBlbFdpZHRoICA9IHRhcmdldC5jbGllbnRXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0VsZW1lbnRJbklmcmFtZSkge1xuICAgICAgICBjb25zdCBpZnJhbWVFbGVtZW50ID0gZG9tVXRpbHMuZ2V0SWZyYW1lQnlFbGVtZW50KHRhcmdldCk7XG5cbiAgICAgICAgaWYgKGlmcmFtZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZU9mZnNldCAgPSBnZXRPZmZzZXRQb3NpdGlvbihpZnJhbWVFbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudE9mZnNldCAgPSBvZmZzZXRUb0NsaWVudENvb3JkcyhBeGlzVmFsdWVzLmNyZWF0ZShpZnJhbWVPZmZzZXQpKTtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZUJvcmRlcnMgPSBzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aChpZnJhbWVFbGVtZW50KTtcblxuICAgICAgICAgICAgZWxQb3NpdGlvbi5hZGQoY2xpZW50T2Zmc2V0KS5hZGQoQXhpc1ZhbHVlcy5jcmVhdGUoaWZyYW1lQm9yZGVycykpO1xuXG4gICAgICAgICAgICBpZiAoaXNIdG1sRWxlbWVudClcbiAgICAgICAgICAgICAgICBlbEJvcmRlcnMuYWRkKGlmcmFtZUJvcmRlcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFzUmlnaHRTY3JvbGxiYXIgID0gIWlzSHRtbEVsZW1lbnQgJiYgc3R5bGVVdGlscy5nZXRJbm5lcldpZHRoKHRhcmdldCkgIT09IHRhcmdldC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBoYXNCb3R0b21TY3JvbGxiYXIgPSAhaXNIdG1sRWxlbWVudCAmJiBzdHlsZVV0aWxzLmdldElubmVySGVpZ2h0KHRhcmdldCkgIT09IHRhcmdldC5jbGllbnRIZWlnaHQ7XG5cbiAgICBjb25zdCBzY3JvbGxiYXIgPSB7XG4gICAgICAgIHJpZ2h0OiAgaGFzUmlnaHRTY3JvbGxiYXIgPyBkb21VdGlscy5nZXRTY3JvbGxiYXJTaXplKCkgOiAwLFxuICAgICAgICBib3R0b206IGhhc0JvdHRvbVNjcm9sbGJhciA/IGRvbVV0aWxzLmdldFNjcm9sbGJhclNpemUoKSA6IDAsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgRGltZW5zaW9ucyhlbFdpZHRoLCBlbEhlaWdodCwgZWxQb3NpdGlvbiwgZWxCb3JkZXJzLCBlbFNjcm9sbCwgc2Nyb2xsYmFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRGcm9tUG9pbnQgKHsgeCwgeSB9OiBBeGlzVmFsdWVzRGF0YTxudW1iZXI+KTogRWxlbWVudCB8IG51bGwge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBpZUZuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEZyb21Qb2ludDtcbiAgICBjb25zdCBmdW5jID0gaWVGbiB8fCBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50O1xuXG4gICAgbGV0IGVsOiBFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgICAvLyBQZXJtaXNzaW9uIGRlbmllZCB0byBhY2Nlc3MgcHJvcGVydHkgJ2dldEVsZW1lbnRGcm9tUG9pbnQnIGVycm9yIGluIGlmcmFtZVxuICAgICAgICBlbCA9IGZ1bmMuY2FsbChkb2N1bWVudCwgeCwgeSk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy9OT1RFOiBlbGVtZW50RnJvbVBvaW50IHJldHVybnMgbnVsbCB3aGVuIGlzJ3MgYSBib3JkZXIgb2YgYW4gaWZyYW1lXG4gICAgaWYgKGVsID09PSBudWxsKVxuICAgICAgICBlbCA9IGZ1bmMuY2FsbChkb2N1bWVudCwgeCAtIDEsIHkgLSAxKTtcblxuICAgIHdoaWxlIChlbCAmJiBlbC5zaGFkb3dSb290ICYmIGVsLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCkge1xuICAgICAgICBjb25zdCBzaGFkb3dFbCA9IGVsLnNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4LCB5KTtcblxuICAgICAgICBpZiAoIXNoYWRvd0VsIHx8IGVsID09PSBzaGFkb3dFbClcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGVsID0gc2hhZG93RWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY1JlbGF0aXZlUG9zaXRpb24gKGRpbWVuc2lvbnM6IERpbWVuc2lvbnMsIHRvRGltZW5zaW9uczogRGltZW5zaW9ucyk6IEJvdW5kYXJ5VmFsdWVzRGF0YSB7XG4gICAgY29uc3QgcG9zID0gQm91bmRhcnlWYWx1ZXMuY3JlYXRlKHtcbiAgICAgICAgdG9wOiAgICBkaW1lbnNpb25zLnRvcCAtIHRvRGltZW5zaW9ucy50b3AsXG4gICAgICAgIGxlZnQ6ICAgZGltZW5zaW9ucy5sZWZ0IC0gdG9EaW1lbnNpb25zLmxlZnQsXG4gICAgICAgIHJpZ2h0OiAgdG9EaW1lbnNpb25zLnJpZ2h0IC0gZGltZW5zaW9ucy5yaWdodCxcbiAgICAgICAgYm90dG9tOiB0b0RpbWVuc2lvbnMuYm90dG9tIC0gZGltZW5zaW9ucy5ib3R0b20sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcG9zLnN1Yih0b0RpbWVuc2lvbnMuYm9yZGVyKS5zdWIodG9EaW1lbnNpb25zLnNjcm9sbGJhcikucm91bmQoTWF0aC5jZWlsLCBNYXRoLmZsb29yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElmcmFtZUNsaWVudENvb3JkaW5hdGVzIChpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50KTogQm91bmRhcnlWYWx1ZXMge1xuICAgIGNvbnN0IHsgbGVmdCwgdG9wIH0gICAgICAgPSBnZXRPZmZzZXRQb3NpdGlvbihpZnJhbWUpO1xuICAgIGNvbnN0IGNsaWVudFBvc2l0aW9uICAgICAgPSBvZmZzZXRUb0NsaWVudENvb3Jkcyh7IHg6IGxlZnQsIHk6IHRvcCB9KTtcbiAgICBjb25zdCBpZnJhbWVCb3JkZXJzICAgICAgID0gc3R5bGVVdGlscy5nZXRCb3JkZXJzV2lkdGgoaWZyYW1lKTtcbiAgICBjb25zdCBpZnJhbWVQYWRkaW5nICAgICAgID0gc3R5bGVVdGlscy5nZXRFbGVtZW50UGFkZGluZyhpZnJhbWUpO1xuICAgIGNvbnN0IGlmcmFtZVJlY3RhbmdsZUxlZnQgPSBjbGllbnRQb3NpdGlvbi54ICsgaWZyYW1lQm9yZGVycy5sZWZ0ICsgaWZyYW1lUGFkZGluZy5sZWZ0O1xuICAgIGNvbnN0IGlmcmFtZVJlY3RhbmdsZVRvcCAgPSBjbGllbnRQb3NpdGlvbi55ICsgaWZyYW1lQm9yZGVycy50b3AgKyBpZnJhbWVQYWRkaW5nLnRvcDtcblxuICAgIHJldHVybiBuZXcgQm91bmRhcnlWYWx1ZXMoaWZyYW1lUmVjdGFuZ2xlVG9wLFxuICAgICAgICBpZnJhbWVSZWN0YW5nbGVMZWZ0ICsgc3R5bGVVdGlscy5nZXRXaWR0aChpZnJhbWUpLFxuICAgICAgICBpZnJhbWVSZWN0YW5nbGVUb3AgKyBzdHlsZVV0aWxzLmdldEhlaWdodChpZnJhbWUpLFxuICAgICAgICBpZnJhbWVSZWN0YW5nbGVMZWZ0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zT2Zmc2V0IChlbDogSFRNTEVsZW1lbnQsIG9mZnNldFg/OiBudW1iZXIsIG9mZnNldFk/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaW1lbnNpb25zID0gZ2V0Q2xpZW50RGltZW5zaW9ucyhlbCk7XG4gICAgY29uc3Qgd2lkdGggICAgICA9IE1hdGgubWF4KGVsLnNjcm9sbFdpZHRoLCBkaW1lbnNpb25zLndpZHRoKTtcbiAgICBjb25zdCBoZWlnaHQgICAgID0gTWF0aC5tYXgoZWwuc2Nyb2xsSGVpZ2h0LCBkaW1lbnNpb25zLmhlaWdodCk7XG4gICAgY29uc3QgbWF4WCAgICAgICA9IGRpbWVuc2lvbnMuc2Nyb2xsYmFyLnJpZ2h0ICsgZGltZW5zaW9ucy5ib3JkZXIubGVmdCArIGRpbWVuc2lvbnMuYm9yZGVyLnJpZ2h0ICsgd2lkdGg7XG4gICAgY29uc3QgbWF4WSAgICAgICA9IGRpbWVuc2lvbnMuc2Nyb2xsYmFyLmJvdHRvbSArIGRpbWVuc2lvbnMuYm9yZGVyLnRvcCArIGRpbWVuc2lvbnMuYm9yZGVyLmJvdHRvbSArIGhlaWdodDtcblxuICAgIHJldHVybiAodHlwZW9mIG9mZnNldFggPT09ICd1bmRlZmluZWQnIHx8IG9mZnNldFggPj0gMCAmJiBtYXhYID49IG9mZnNldFgpICYmXG4gICAgICAgICAgICh0eXBlb2Ygb2Zmc2V0WSA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0WSA+PSAwICYmIG1heFkgPj0gb2Zmc2V0WSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudEFic29sdXRlQ29vcmRpbmF0ZXMgKGV2OiBNb3VzZUV2ZW50KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCBlbCAgICAgICAgICAgICAgPSBldi50YXJnZXQgfHwgZXYuc3JjRWxlbWVudDtcbiAgICBjb25zdCBwYWdlQ29vcmRpbmF0ZXMgPSBnZXRFdmVudFBhZ2VDb29yZGluYXRlcyhldik7XG4gICAgY29uc3QgY3VyRG9jdW1lbnQgICAgID0gZG9tVXRpbHMuZmluZERvY3VtZW50KGVsKTtcbiAgICBsZXQgeE9mZnNldCAgICAgICAgID0gMDtcbiAgICBsZXQgeU9mZnNldCAgICAgICAgID0gMDtcblxuICAgIGlmIChkb21VdGlscy5pc0VsZW1lbnRJbklmcmFtZShjdXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJZnJhbWUgPSBkb21VdGlscy5nZXRJZnJhbWVCeUVsZW1lbnQoY3VyRG9jdW1lbnQpO1xuXG4gICAgICAgIGlmIChjdXJyZW50SWZyYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpZnJhbWVPZmZzZXQgID0gZ2V0T2Zmc2V0UG9zaXRpb24oY3VycmVudElmcmFtZSk7XG4gICAgICAgICAgICBjb25zdCBpZnJhbWVCb3JkZXJzID0gc3R5bGVVdGlscy5nZXRCb3JkZXJzV2lkdGgoY3VycmVudElmcmFtZSk7XG5cbiAgICAgICAgICAgIHhPZmZzZXQgPSBpZnJhbWVPZmZzZXQubGVmdCArIGlmcmFtZUJvcmRlcnMubGVmdDtcbiAgICAgICAgICAgIHlPZmZzZXQgPSBpZnJhbWVPZmZzZXQudG9wICsgaWZyYW1lQm9yZGVycy50b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXMocGFnZUNvb3JkaW5hdGVzLnggKyB4T2Zmc2V0LCBwYWdlQ29vcmRpbmF0ZXMueSArIHlPZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRQYWdlQ29vcmRpbmF0ZXMgKGV2OiBNb3VzZUV2ZW50KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCBjdXJDb29yZE9iamVjdCA9IC9edG91Y2gvLnRlc3QoZXYudHlwZSkgJiYgKGV2IGFzIHVua25vd24gYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlcyA/IChldiBhcyB1bmtub3duIGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXNbMF0gfHwgKGV2IGFzIHVua25vd24gYXMgVG91Y2hFdmVudCkuY2hhbmdlZFRvdWNoZXNbMF0gOiBldjtcblxuICAgIGNvbnN0IGJvdGhQYWdlQ29vcmRpbmF0ZXNBcmVaZXJvICAgICAgPSBjdXJDb29yZE9iamVjdC5wYWdlWCA9PT0gMCAmJiBjdXJDb29yZE9iamVjdC5wYWdlWSA9PT0gMDtcbiAgICBjb25zdCBub3RCb3RoQ2xpZW50Q29vcmRpbmF0ZXNBcmVaZXJvID0gY3VyQ29vcmRPYmplY3QuY2xpZW50WCAhPT0gMCB8fCBjdXJDb29yZE9iamVjdC5jbGllbnRZICE9PSAwO1xuXG4gICAgaWYgKChjdXJDb29yZE9iamVjdC5wYWdlWCA9PT0gbnVsbCB8fCBib3RoUGFnZUNvb3JkaW5hdGVzQXJlWmVybyAmJiBub3RCb3RoQ2xpZW50Q29vcmRpbmF0ZXNBcmVaZXJvKSAmJlxuICAgICAgICBjdXJDb29yZE9iamVjdC5jbGllbnRYICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREb2N1bWVudCA9IGRvbVV0aWxzLmZpbmREb2N1bWVudChldi50YXJnZXQgfHwgZXYuc3JjRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGh0bWwgICAgICAgICAgICA9IGN1cnJlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGJvZHkgICAgICAgICAgICA9IGN1cnJlbnREb2N1bWVudC5ib2R5O1xuXG4gICAgICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlczxudW1iZXI+KFxuICAgICAgICAgICAgTWF0aC5yb3VuZChjdXJDb29yZE9iamVjdC5jbGllbnRYICsgKGh0bWwgJiYgaHRtbC5zY3JvbGxMZWZ0IHx8IGJvZHkgJiYgYm9keS5zY3JvbGxMZWZ0IHx8IDApIC1cbiAgICAgICAgICAgICAgICAoaHRtbC5jbGllbnRMZWZ0IHx8IDApKSxcbiAgICAgICAgICAgIE1hdGgucm91bmQoY3VyQ29vcmRPYmplY3QuY2xpZW50WSArIChodG1sICYmIGh0bWwuc2Nyb2xsVG9wIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgfHwgMCkgLVxuICAgICAgICAgICAgICAgIChodG1sLmNsaWVudFRvcCB8fCAwKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4oXG4gICAgICAgIE1hdGgucm91bmQoY3VyQ29vcmRPYmplY3QucGFnZVgpLFxuICAgICAgICBNYXRoLnJvdW5kKGN1ckNvb3JkT2JqZWN0LnBhZ2VZKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZnJhbWVQb2ludFJlbGF0aXZlVG9QYXJlbnRGcmFtZSAocG9zOiBBeGlzVmFsdWVzPG51bWJlcj4sIGlmcmFtZVdpbjogV2luZG93KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCBpZnJhbWUgICAgICAgID0gZG9tVXRpbHMuZmluZElmcmFtZUJ5V2luZG93KGlmcmFtZVdpbik7XG4gICAgY29uc3QgaWZyYW1lT2Zmc2V0ICA9IGdldE9mZnNldFBvc2l0aW9uKGlmcmFtZSk7XG4gICAgY29uc3QgaWZyYW1lQm9yZGVycyA9IHN0eWxlVXRpbHMuZ2V0Qm9yZGVyc1dpZHRoKGlmcmFtZSk7XG4gICAgY29uc3QgaWZyYW1lUGFkZGluZyA9IHN0eWxlVXRpbHMuZ2V0RWxlbWVudFBhZGRpbmcoaWZyYW1lKTtcblxuICAgIHJldHVybiBvZmZzZXRUb0NsaWVudENvb3Jkcyh7XG4gICAgICAgIHg6IHBvcy54ICsgaWZyYW1lT2Zmc2V0LmxlZnQgKyBpZnJhbWVCb3JkZXJzLmxlZnQgKyBpZnJhbWVQYWRkaW5nLmxlZnQsXG4gICAgICAgIHk6IHBvcy55ICsgaWZyYW1lT2Zmc2V0LnRvcCArIGlmcmFtZUJvcmRlcnMudG9wICsgaWZyYW1lUGFkZGluZy50b3AsXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2VudGVyIChlbDogSFRNTEVsZW1lbnQpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldEVsZW1lbnRSZWN0YW5nbGUoZWwpO1xuXG4gICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4oXG4gICAgICAgIE1hdGgucm91bmQocmVjdGFuZ2xlLmxlZnQgKyByZWN0YW5nbGUud2lkdGggLyAyKSxcbiAgICAgICAgTWF0aC5yb3VuZChyZWN0YW5nbGUudG9wICsgcmVjdGFuZ2xlLmhlaWdodCAvIDIpLFxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRQb3NpdGlvbiAoZWw6IEhUTUxFbGVtZW50KTogYW55IHtcbiAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gZ2V0T2Zmc2V0UG9zaXRpb24oZWwpO1xuXG4gICAgY29uc3QgY2xpZW50Q29vcmRzID0gb2Zmc2V0VG9DbGllbnRDb29yZHMoeyB4OiBsZWZ0LCB5OiB0b3AgfSk7XG5cbiAgICBjbGllbnRDb29yZHMueCA9IE1hdGgucm91bmQoY2xpZW50Q29vcmRzLngpO1xuICAgIGNsaWVudENvb3Jkcy55ID0gTWF0aC5yb3VuZChjbGllbnRDb29yZHMueSk7XG5cbiAgICByZXR1cm4gY2xpZW50Q29vcmRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJblJlY3RhbmdsZSAoeyB4LCB5IH06IEF4aXNWYWx1ZXM8bnVtYmVyPiwgcmVjdGFuZ2xlOiBCb3VuZGFyeVZhbHVlcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB4ID49IHJlY3RhbmdsZS5sZWZ0ICYmIHggPD0gcmVjdGFuZ2xlLnJpZ2h0ICYmIHkgPj0gcmVjdGFuZ2xlLnRvcCAmJiB5IDw9IHJlY3RhbmdsZS5ib3R0b207XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaW5kb3dQb3NpdGlvbiAoKTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICBjb25zdCB4ID0gd2luZG93LnNjcmVlbkxlZnQgfHwgd2luZG93LnNjcmVlblg7XG4gICAgY29uc3QgeSA9IHdpbmRvdy5zY3JlZW5Ub3AgfHwgd2luZG93LnNjcmVlblk7XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXMoeCwgeSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lmcmFtZVZpc2libGUgKGVsOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFoaWRkZW5Vc2luZ1N0eWxlcyhlbCBhcyBIVE1MRWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIGhpZGRlblVzaW5nU3R5bGVzIChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3R5bGVVdGlscy5nZXQoZWwsICd2aXNpYmlsaXR5JykgPT09ICdoaWRkZW4nIHx8XG4gICAgICAgIHN0eWxlVXRpbHMuZ2V0KGVsLCAnZGlzcGxheScpID09PSAnbm9uZSc7XG59XG5cbmZ1bmN0aW9uIGhpZGRlbkJ5UmVjdGFuZ2xlIChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbCk7XG5cbiAgICByZXR1cm4gZWxlbWVudFJlY3RhbmdsZS53aWR0aCA9PT0gMCB8fFxuICAgICAgICBlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudFZpc2libGUgKGVsOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgaWYgKGRvbVV0aWxzLmlzVGV4dE5vZGUoZWwpKVxuICAgICAgICByZXR1cm4gIXN0eWxlVXRpbHMuaXNOb3RWaXNpYmxlTm9kZShlbCk7XG5cbiAgICBpZiAoIWRvbVV0aWxzLmlzQ29udGVudEVkaXRhYmxlRWxlbWVudChlbCkgJiZcbiAgICAgICAgIWRvbVV0aWxzLmlzU1ZHRWxlbWVudChlbCkgJiZcbiAgICAgICAgaGlkZGVuQnlSZWN0YW5nbGUoZWwgYXMgSFRNTEVsZW1lbnQpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoZG9tVXRpbHMuaXNNYXBFbGVtZW50KGVsKSkge1xuICAgICAgICBjb25zdCBtYXBDb250YWluZXIgPSBkb21VdGlscy5nZXRNYXBDb250YWluZXIoZG9tVXRpbHMuY2xvc2VzdChlbCwgJ21hcCcpKTtcblxuICAgICAgICByZXR1cm4gbWFwQ29udGFpbmVyID8gaXNFbGVtZW50VmlzaWJsZShtYXBDb250YWluZXIpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHN0eWxlVXRpbHMuaXNTZWxlY3RWaXNpYmxlQ2hpbGQoZWwpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdCAgICAgICAgICAgICAgPSBkb21VdGlscy5nZXRTZWxlY3RQYXJlbnQoZWwpIGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgICAgICBjb25zdCBjaGlsZFJlYWxJbmRleCAgICAgID0gZG9tVXRpbHMuZ2V0Q2hpbGRWaXNpYmxlSW5kZXgoc2VsZWN0LCBlbCk7XG4gICAgICAgIGNvbnN0IHJlYWxTZWxlY3RTaXplVmFsdWUgPSBzdHlsZVV0aWxzLmdldFNlbGVjdEVsZW1lbnRTaXplKHNlbGVjdCk7XG4gICAgICAgIGNvbnN0IHRvcFZpc2libGVJbmRleCAgICAgPSBNYXRoLm1heChzdHlsZVV0aWxzLmdldFNjcm9sbFRvcChzZWxlY3QpIC8gc3R5bGVVdGlscy5nZXRPcHRpb25IZWlnaHQoc2VsZWN0KSwgMCk7XG4gICAgICAgIGNvbnN0IGJvdHRvbVZpc2libGVJbmRleCAgPSB0b3BWaXNpYmxlSW5kZXggKyByZWFsU2VsZWN0U2l6ZVZhbHVlIC0gMTtcbiAgICAgICAgY29uc3Qgb3B0aW9uVmlzaWJsZUluZGV4ICA9IE1hdGgubWF4KGNoaWxkUmVhbEluZGV4IC0gdG9wVmlzaWJsZUluZGV4LCAwKTtcblxuICAgICAgICByZXR1cm4gb3B0aW9uVmlzaWJsZUluZGV4ID49IHRvcFZpc2libGVJbmRleCAmJiBvcHRpb25WaXNpYmxlSW5kZXggPD0gYm90dG9tVmlzaWJsZUluZGV4O1xuICAgIH1cblxuICAgIGlmIChkb21VdGlscy5pc1NWR0VsZW1lbnQoZWwpKSB7XG4gICAgICAgIGNvbnN0IGhpZGRlblBhcmVudCA9IGRvbVV0aWxzLmZpbmRQYXJlbnQoZWwsIHRydWUsIChwYXJlbnQ6IE5vZGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBoaWRkZW5Vc2luZ1N0eWxlcyhwYXJlbnQgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaGlkZGVuUGFyZW50KVxuICAgICAgICAgICAgcmV0dXJuICFoaWRkZW5CeVJlY3RhbmdsZShlbCBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlVXRpbHMuaGFzRGltZW5zaW9ucyhlbCBhcyBIVE1MRWxlbWVudCkgJiYgIWhpZGRlblVzaW5nU3R5bGVzKGVsIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpO1xufVxuXG4iXX0=
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBNEM7QUFDNUMsb0RBQXNDO0FBQ3RDLGdEQUFrQztBQUNsQyx1RUFBa0U7QUFDbEUsK0VBQThFO0FBQzlFLHFFQUE2QztBQUdoQyxRQUFBLG1CQUFtQixHQUFJLG9CQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztBQUNyRSxRQUFBLGlCQUFpQixHQUFNLG9CQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztBQUNuRSxRQUFBLG9CQUFvQixHQUFHLG9CQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztBQUVuRixTQUFnQixtQkFBbUIsQ0FBRSxNQUFtQjtJQUNwRCxNQUFNLGFBQWEsR0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELE1BQU0sSUFBSSxHQUFnQixhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hGLE1BQU0sV0FBVyxHQUFTLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3pELE1BQU0sU0FBUyxHQUFXLHlCQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLFFBQVEsR0FBWSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZ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LFVBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBWSxFQUFFLEVBQUU7WUFDaEUsT0FBTyxpQkFBaUIsQ0FBQyxNQUFnQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWTtZQUNiLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUE0QixDQUFDLENBQUM7UUFFNUQsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBNEIsQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUF0Q0QsNENBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGhhbW1lcmhlYWQgZnJvbSAnLi4vZGVwcy9oYW1tZXJoZWFkJztcbmltcG9ydCAqIGFzIHN0eWxlVXRpbHMgZnJvbSAnLi9zdHlsZSc7XG5pbXBvcnQgKiBhcyBkb21VdGlscyBmcm9tICcuL2RvbSc7XG5pbXBvcnQgQXhpc1ZhbHVlcywgeyBBeGlzVmFsdWVzRGF0YSB9IGZyb20gJy4vdmFsdWVzL2F4aXMtdmFsdWVzJztcbmltcG9ydCBCb3VuZGFyeVZhbHVlcywgeyBCb3VuZGFyeVZhbHVlc0RhdGEgfSBmcm9tICcuL3ZhbHVlcy9ib3VuZGFyeS12YWx1ZXMnO1xuaW1wb3J0IERpbWVuc2lvbnMgZnJvbSAnLi92YWx1ZXMvZGltZW5zaW9ucyc7XG5cblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRSZWN0YW5nbGUgID0gaGFtbWVyaGVhZC51dGlscy5wb3NpdGlvbi5nZXRFbGVtZW50UmVjdGFuZ2xlO1xuZXhwb3J0IGNvbnN0IGdldE9mZnNldFBvc2l0aW9uICAgID0gaGFtbWVyaGVhZC51dGlscy5wb3NpdGlvbi5nZXRPZmZzZXRQb3NpdGlvbjtcbmV4cG9ydCBjb25zdCBvZmZzZXRUb0NsaWVudENvb3JkcyA9IGhhbW1lcmhlYWQudXRpbHMucG9zaXRpb24ub2Zmc2V0VG9DbGllbnRDb29yZHM7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnREaW1lbnNpb25zICh0YXJnZXQ6IEhUTUxFbGVtZW50KTogRGltZW5zaW9ucyB7XG4gICAgY29uc3QgaXNIdG1sRWxlbWVudCAgICAgPSBkb21VdGlscy5pc0h0bWxFbGVtZW50KHRhcmdldCk7XG4gICAgY29uc3QgYm9keSAgICAgICAgICAgICAgPSBpc0h0bWxFbGVtZW50ID8gdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0gOiBudWxsO1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0ICAgICAgID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGVsQm9yZGVycyAgICAgICAgID0gQm91bmRhcnlWYWx1ZXMuY3JlYXRlKHN0eWxlVXRpbHMuZ2V0Qm9yZGVyc1dpZHRoKHRhcmdldCkpO1xuICAgIGNvbnN0IGVsU2Nyb2xsICAgICAgICAgID0gc3R5bGVVdGlscy5nZXRFbGVtZW50U2Nyb2xsKHRhcmdldCk7XG4gICAgY29uc3QgaXNFbGVtZW50SW5JZnJhbWUgPSBkb21VdGlscy5pc0VsZW1lbnRJbklmcmFtZSh0YXJnZXQpO1xuICAgIGNvbnN0IGlzQ29tcGF0TW9kZSAgICAgID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQuY29tcGF0TW9kZSA9PT0gJ0JhY2tDb21wYXQnO1xuICAgIGNvbnN0IGVsUG9zaXRpb24gICAgICAgID0gaXNIdG1sRWxlbWVudCA/IG5ldyBBeGlzVmFsdWVzKDAsIDApIDogQXhpc1ZhbHVlcy5jcmVhdGUoZWxlbWVudFJlY3QpO1xuXG4gICAgbGV0IGVsSGVpZ2h0ICAgPSBlbGVtZW50UmVjdC5oZWlnaHQ7XG4gICAgbGV0IGVsV2lkdGggICAgPSBlbGVtZW50UmVjdC53aWR0aDtcblxuICAgIGlmIChpc0h0bWxFbGVtZW50KSB7XG4gICAgICAgIGlmIChib2R5ICYmIGlzQ29tcGF0TW9kZSkge1xuICAgICAgICAgICAgZWxIZWlnaHQgPSBib2R5LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGVsV2lkdGggID0gYm9keS5jbGllbnRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gdGFyZ2V0LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGVsV2lkdGggID0gdGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRWxlbWVudEluSWZyYW1lKSB7XG4gICAgICAgIGNvbnN0IGlmcmFtZUVsZW1lbnQgPSBkb21VdGlscy5nZXRJZnJhbWVCeUVsZW1lbnQodGFyZ2V0KTtcblxuICAgICAgICBpZiAoaWZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgaWZyYW1lT2Zmc2V0ICA9IGdldE9mZnNldFBvc2l0aW9uKGlmcmFtZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50T2Zmc2V0ICA9IG9mZnNldFRvQ2xpZW50Q29vcmRzKEF4aXNWYWx1ZXMuY3JlYXRlKGlmcmFtZU9mZnNldCkpO1xuICAgICAgICAgICAgY29uc3QgaWZyYW1lQm9yZGVycyA9IHN0eWxlVXRpbHMuZ2V0Qm9yZGVyc1dpZHRoKGlmcmFtZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBlbFBvc2l0aW9uLmFkZChjbGllbnRPZmZzZXQpLmFkZChBeGlzVmFsdWVzLmNyZWF0ZShpZnJhbWVCb3JkZXJzKSk7XG5cbiAgICAgICAgICAgIGlmIChpc0h0bWxFbGVtZW50KVxuICAgICAgICAgICAgICAgIGVsQm9yZGVycy5hZGQoaWZyYW1lQm9yZGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYXNSaWdodFNjcm9sbGJhciAgPSAhaXNIdG1sRWxlbWVudCAmJiBzdHlsZVV0aWxzLmdldElubmVyV2lkdGgodGFyZ2V0KSAhPT0gdGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGhhc0JvdHRvbVNjcm9sbGJhciA9ICFpc0h0bWxFbGVtZW50ICYmIHN0eWxlVXRpbHMuZ2V0SW5uZXJIZWlnaHQodGFyZ2V0KSAhPT0gdGFyZ2V0LmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IHNjcm9sbGJhciA9IHtcbiAgICAgICAgcmlnaHQ6ICBoYXNSaWdodFNjcm9sbGJhciA/IGRvbVV0aWxzLmdldFNjcm9sbGJhclNpemUoKSA6IDAsXG4gICAgICAgIGJvdHRvbTogaGFzQm90dG9tU2Nyb2xsYmFyID8gZG9tVXRpbHMuZ2V0U2Nyb2xsYmFyU2l6ZSgpIDogMCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBEaW1lbnNpb25zKGVsV2lkdGgsIGVsSGVpZ2h0LCBlbFBvc2l0aW9uLCBlbEJvcmRlcnMsIGVsU2Nyb2xsLCBzY3JvbGxiYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudEZyb21Qb2ludCAoeyB4LCB5IH06IEF4aXNWYWx1ZXNEYXRhPG51bWJlcj4pOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGllRm4gPSBkb2N1bWVudC5nZXRFbGVtZW50RnJvbVBvaW50O1xuICAgIGNvbnN0IGZ1bmMgPSBpZUZuIHx8IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQ7XG5cbiAgICBsZXQgZWw6IEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICAgIC8vIFBlcm1pc3Npb24gZGVuaWVkIHRvIGFjY2VzcyBwcm9wZXJ0eSAnZ2V0RWxlbWVudEZyb21Qb2ludCcgZXJyb3IgaW4gaWZyYW1lXG4gICAgICAgIGVsID0gZnVuYy5jYWxsKGRvY3VtZW50LCB4LCB5KTtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvL05PVEU6IGVsZW1lbnRGcm9tUG9pbnQgcmV0dXJucyBudWxsIHdoZW4gaXMncyBhIGJvcmRlciBvZiBhbiBpZnJhbWVcbiAgICBpZiAoZWwgPT09IG51bGwpXG4gICAgICAgIGVsID0gZnVuYy5jYWxsKGRvY3VtZW50LCB4IC0gMSwgeSAtIDEpO1xuXG4gICAgd2hpbGUgKGVsICYmIGVsLnNoYWRvd1Jvb3QgJiYgZWwuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KSB7XG4gICAgICAgIGNvbnN0IHNoYWRvd0VsID0gZWwuc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KHgsIHkpO1xuXG4gICAgICAgIGlmICghc2hhZG93RWwgfHwgZWwgPT09IHNoYWRvd0VsKVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZWwgPSBzaGFkb3dFbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjUmVsYXRpdmVQb3NpdGlvbiAoZGltZW5zaW9uczogRGltZW5zaW9ucywgdG9EaW1lbnNpb25zOiBEaW1lbnNpb25zKTogQm91bmRhcnlWYWx1ZXNEYXRhIHtcbiAgICBjb25zdCBwb3MgPSBCb3VuZGFyeVZhbHVlcy5jcmVhdGUoe1xuICAgICAgICB0b3A6ICAgIGRpbWVuc2lvbnMudG9wIC0gdG9EaW1lbnNpb25zLnRvcCxcbiAgICAgICAgbGVmdDogICBkaW1lbnNpb25zLmxlZnQgLSB0b0RpbWVuc2lvbnMubGVmdCxcbiAgICAgICAgcmlnaHQ6ICB0b0RpbWVuc2lvbnMucmlnaHQgLSBkaW1lbnNpb25zLnJpZ2h0LFxuICAgICAgICBib3R0b206IHRvRGltZW5zaW9ucy5ib3R0b20gLSBkaW1lbnNpb25zLmJvdHRvbSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwb3Muc3ViKHRvRGltZW5zaW9ucy5ib3JkZXIpLnN1Yih0b0RpbWVuc2lvbnMuc2Nyb2xsYmFyKS5yb3VuZChNYXRoLmNlaWwsIE1hdGguZmxvb3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SWZyYW1lQ2xpZW50Q29vcmRpbmF0ZXMgKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQpOiBCb3VuZGFyeVZhbHVlcyB7XG4gICAgY29uc3QgeyBsZWZ0LCB0b3AgfSAgICAgICA9IGdldE9mZnNldFBvc2l0aW9uKGlmcmFtZSk7XG4gICAgY29uc3QgY2xpZW50UG9zaXRpb24gICAgICA9IG9mZnNldFRvQ2xpZW50Q29vcmRzKHsgeDogbGVmdCwgeTogdG9wIH0pO1xuICAgIGNvbnN0IGlmcmFtZUJvcmRlcnMgICAgICAgPSBzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aChpZnJhbWUpO1xuICAgIGNvbnN0IGlmcmFtZVBhZGRpbmcgICAgICAgPSBzdHlsZVV0aWxzLmdldEVsZW1lbnRQYWRkaW5nKGlmcmFtZSk7XG4gICAgY29uc3QgaWZyYW1lUmVjdGFuZ2xlTGVmdCA9IGNsaWVudFBvc2l0aW9uLnggKyBpZnJhbWVCb3JkZXJzLmxlZnQgKyBpZnJhbWVQYWRkaW5nLmxlZnQ7XG4gICAgY29uc3QgaWZyYW1lUmVjdGFuZ2xlVG9wICA9IGNsaWVudFBvc2l0aW9uLnkgKyBpZnJhbWVCb3JkZXJzLnRvcCArIGlmcmFtZVBhZGRpbmcudG9wO1xuXG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcyhpZnJhbWVSZWN0YW5nbGVUb3AsXG4gICAgICAgIGlmcmFtZVJlY3RhbmdsZUxlZnQgKyBzdHlsZVV0aWxzLmdldFdpZHRoKGlmcmFtZSksXG4gICAgICAgIGlmcmFtZVJlY3RhbmdsZVRvcCArIHN0eWxlVXRpbHMuZ2V0SGVpZ2h0KGlmcmFtZSksXG4gICAgICAgIGlmcmFtZVJlY3RhbmdsZUxlZnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNPZmZzZXQgKGVsOiBIVE1MRWxlbWVudCwgb2Zmc2V0WD86IG51bWJlciwgb2Zmc2V0WT86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBnZXRDbGllbnREaW1lbnNpb25zKGVsKTtcbiAgICBjb25zdCB3aWR0aCAgICAgID0gTWF0aC5tYXgoZWwuc2Nyb2xsV2lkdGgsIGRpbWVuc2lvbnMud2lkdGgpO1xuICAgIGNvbnN0IGhlaWdodCAgICAgPSBNYXRoLm1heChlbC5zY3JvbGxIZWlnaHQsIGRpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICBjb25zdCBtYXhYICAgICAgID0gZGltZW5zaW9ucy5zY3JvbGxiYXIucmlnaHQgKyBkaW1lbnNpb25zLmJvcmRlci5sZWZ0ICsgZGltZW5zaW9ucy5ib3JkZXIucmlnaHQgKyB3aWR0aDtcbiAgICBjb25zdCBtYXhZICAgICAgID0gZGltZW5zaW9ucy5zY3JvbGxiYXIuYm90dG9tICsgZGltZW5zaW9ucy5ib3JkZXIudG9wICsgZGltZW5zaW9ucy5ib3JkZXIuYm90dG9tICsgaGVpZ2h0O1xuXG4gICAgcmV0dXJuICh0eXBlb2Ygb2Zmc2V0WCA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0WCA+PSAwICYmIG1heFggPj0gb2Zmc2V0WCkgJiZcbiAgICAgICAgICAgKHR5cGVvZiBvZmZzZXRZID09PSAndW5kZWZpbmVkJyB8fCBvZmZzZXRZID49IDAgJiYgbWF4WSA+PSBvZmZzZXRZKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50QWJzb2x1dGVDb29yZGluYXRlcyAoZXY6IE1vdXNlRXZlbnQpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IGVsICAgICAgICAgICAgICA9IGV2LnRhcmdldCB8fCBldi5zcmNFbGVtZW50O1xuICAgIGNvbnN0IHBhZ2VDb29yZGluYXRlcyA9IGdldEV2ZW50UGFnZUNvb3JkaW5hdGVzKGV2KTtcbiAgICBjb25zdCBjdXJEb2N1bWVudCAgICAgPSBkb21VdGlscy5maW5kRG9jdW1lbnQoZWwpO1xuICAgIGxldCB4T2Zmc2V0ICAgICAgICAgPSAwO1xuICAgIGxldCB5T2Zmc2V0ICAgICAgICAgPSAwO1xuXG4gICAgaWYgKGRvbVV0aWxzLmlzRWxlbWVudEluSWZyYW1lKGN1ckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudElmcmFtZSA9IGRvbVV0aWxzLmdldElmcmFtZUJ5RWxlbWVudChjdXJEb2N1bWVudCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJZnJhbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZU9mZnNldCAgPSBnZXRPZmZzZXRQb3NpdGlvbihjdXJyZW50SWZyYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZUJvcmRlcnMgPSBzdHlsZVV0aWxzLmdldEJvcmRlcnNXaWR0aChjdXJyZW50SWZyYW1lKTtcblxuICAgICAgICAgICAgeE9mZnNldCA9IGlmcmFtZU9mZnNldC5sZWZ0ICsgaWZyYW1lQm9yZGVycy5sZWZ0O1xuICAgICAgICAgICAgeU9mZnNldCA9IGlmcmFtZU9mZnNldC50b3AgKyBpZnJhbWVCb3JkZXJzLnRvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlcyhwYWdlQ29vcmRpbmF0ZXMueCArIHhPZmZzZXQsIHBhZ2VDb29yZGluYXRlcy55ICsgeU9mZnNldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudFBhZ2VDb29yZGluYXRlcyAoZXY6IE1vdXNlRXZlbnQpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IGN1ckNvb3JkT2JqZWN0ID0gL150b3VjaC8udGVzdChldi50eXBlKSAmJiAoZXYgYXMgdW5rbm93biBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzID8gKGV2IGFzIHVua25vd24gYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXSB8fCAoZXYgYXMgdW5rbm93biBhcyBUb3VjaEV2ZW50KS5jaGFuZ2VkVG91Y2hlc1swXSA6IGV2O1xuXG4gICAgY29uc3QgYm90aFBhZ2VDb29yZGluYXRlc0FyZVplcm8gICAgICA9IGN1ckNvb3JkT2JqZWN0LnBhZ2VYID09PSAwICYmIGN1ckNvb3JkT2JqZWN0LnBhZ2VZID09PSAwO1xuICAgIGNvbnN0IG5vdEJvdGhDbGllbnRDb29yZGluYXRlc0FyZVplcm8gPSBjdXJDb29yZE9iamVjdC5jbGllbnRYICE9PSAwIHx8IGN1ckNvb3JkT2JqZWN0LmNsaWVudFkgIT09IDA7XG5cbiAgICBpZiAoKGN1ckNvb3JkT2JqZWN0LnBhZ2VYID09PSBudWxsIHx8IGJvdGhQYWdlQ29vcmRpbmF0ZXNBcmVaZXJvICYmIG5vdEJvdGhDbGllbnRDb29yZGluYXRlc0FyZVplcm8pICYmXG4gICAgICAgIGN1ckNvb3JkT2JqZWN0LmNsaWVudFggIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY3VycmVudERvY3VtZW50ID0gZG9tVXRpbHMuZmluZERvY3VtZW50KGV2LnRhcmdldCB8fCBldi5zcmNFbGVtZW50KTtcbiAgICAgICAgY29uc3QgaHRtbCAgICAgICAgICAgID0gY3VycmVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgYm9keSAgICAgICAgICAgID0gY3VycmVudERvY3VtZW50LmJvZHk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4oXG4gICAgICAgICAgICBNYXRoLnJvdW5kKGN1ckNvb3JkT2JqZWN0LmNsaWVudFggKyAoaHRtbCAmJiBodG1sLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLVxuICAgICAgICAgICAgICAgIChodG1sLmNsaWVudExlZnQgfHwgMCkpLFxuICAgICAgICAgICAgTWF0aC5yb3VuZChjdXJDb29yZE9iamVjdC5jbGllbnRZICsgKGh0bWwgJiYgaHRtbC5zY3JvbGxUb3AgfHwgYm9keSAmJiBib2R5LnNjcm9sbFRvcCB8fCAwKSAtXG4gICAgICAgICAgICAgICAgKGh0bWwuY2xpZW50VG9wIHx8IDApKVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXM8bnVtYmVyPihcbiAgICAgICAgTWF0aC5yb3VuZChjdXJDb29yZE9iamVjdC5wYWdlWCksXG4gICAgICAgIE1hdGgucm91bmQoY3VyQ29vcmRPYmplY3QucGFnZVkpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElmcmFtZVBvaW50UmVsYXRpdmVUb1BhcmVudEZyYW1lIChwb3M6IEF4aXNWYWx1ZXM8bnVtYmVyPiwgaWZyYW1lV2luOiBXaW5kb3cpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IGlmcmFtZSAgICAgICAgPSBkb21VdGlscy5maW5kSWZyYW1lQnlXaW5kb3coaWZyYW1lV2luKTtcbiAgICBjb25zdCBpZnJhbWVPZmZzZXQgID0gZ2V0T2Zmc2V0UG9zaXRpb24oaWZyYW1lKTtcbiAgICBjb25zdCBpZnJhbWVCb3JkZXJzID0gc3R5bGVVdGlscy5nZXRCb3JkZXJzV2lkdGgoaWZyYW1lKTtcbiAgICBjb25zdCBpZnJhbWVQYWRkaW5nID0gc3R5bGVVdGlscy5nZXRFbGVtZW50UGFkZGluZyhpZnJhbWUpO1xuXG4gICAgcmV0dXJuIG9mZnNldFRvQ2xpZW50Q29vcmRzKHtcbiAgICAgICAgeDogcG9zLnggKyBpZnJhbWVPZmZzZXQubGVmdCArIGlmcmFtZUJvcmRlcnMubGVmdCArIGlmcmFtZVBhZGRpbmcubGVmdCxcbiAgICAgICAgeTogcG9zLnkgKyBpZnJhbWVPZmZzZXQudG9wICsgaWZyYW1lQm9yZGVycy50b3AgKyBpZnJhbWVQYWRkaW5nLnRvcCxcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDZW50ZXIgKGVsOiBIVE1MRWxlbWVudCk6IEF4aXNWYWx1ZXM8bnVtYmVyPiB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbCk7XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXM8bnVtYmVyPihcbiAgICAgICAgTWF0aC5yb3VuZChyZWN0YW5nbGUubGVmdCArIHJlY3RhbmdsZS53aWR0aCAvIDIpLFxuICAgICAgICBNYXRoLnJvdW5kKHJlY3RhbmdsZS50b3AgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMiksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudFBvc2l0aW9uIChlbDogSFRNTEVsZW1lbnQpOiBhbnkge1xuICAgIGNvbnN0IHsgbGVmdCwgdG9wIH0gPSBnZXRPZmZzZXRQb3NpdGlvbihlbCk7XG5cbiAgICBjb25zdCBjbGllbnRDb29yZHMgPSBvZmZzZXRUb0NsaWVudENvb3Jkcyh7IHg6IGxlZnQsIHk6IHRvcCB9KTtcblxuICAgIGNsaWVudENvb3Jkcy54ID0gTWF0aC5yb3VuZChjbGllbnRDb29yZHMueCk7XG4gICAgY2xpZW50Q29vcmRzLnkgPSBNYXRoLnJvdW5kKGNsaWVudENvb3Jkcy55KTtcblxuICAgIHJldHVybiBjbGllbnRDb29yZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luUmVjdGFuZ2xlICh7IHgsIHkgfTogQXhpc1ZhbHVlczxudW1iZXI+LCByZWN0YW5nbGU6IEJvdW5kYXJ5VmFsdWVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHggPj0gcmVjdGFuZ2xlLmxlZnQgJiYgeCA8PSByZWN0YW5nbGUucmlnaHQgJiYgeSA+PSByZWN0YW5nbGUudG9wICYmIHkgPD0gcmVjdGFuZ2xlLmJvdHRvbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdpbmRvd1Bvc2l0aW9uICgpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgIGNvbnN0IHggPSB3aW5kb3cuc2NyZWVuTGVmdCB8fCB3aW5kb3cuc2NyZWVuWDtcbiAgICBjb25zdCB5ID0gd2luZG93LnNjcmVlblRvcCB8fCB3aW5kb3cuc2NyZWVuWTtcblxuICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlcyh4LCB5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSWZyYW1lVmlzaWJsZSAoZWw6IE5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWhpZGRlblVzaW5nU3R5bGVzKGVsIGFzIEhUTUxFbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gaGlkZGVuVXNpbmdTdHlsZXMgKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdHlsZVV0aWxzLmdldChlbCwgJ3Zpc2liaWxpdHknKSA9PT0gJ2hpZGRlbicgfHxcbiAgICAgICAgc3R5bGVVdGlscy5nZXQoZWwsICdkaXNwbGF5JykgPT09ICdub25lJztcbn1cblxuZnVuY3Rpb24gaGlkZGVuQnlSZWN0YW5nbGUgKGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsKTtcblxuICAgIHJldHVybiBlbGVtZW50UmVjdGFuZ2xlLndpZHRoID09PSAwIHx8XG4gICAgICAgIGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0ID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50VmlzaWJsZSAoZWw6IE5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAoZG9tVXRpbHMuaXNUZXh0Tm9kZShlbCkpXG4gICAgICAgIHJldHVybiAhc3R5bGVVdGlscy5pc05vdFZpc2libGVOb2RlKGVsKTtcblxuICAgIGlmICghZG9tVXRpbHMuaXNDb250ZW50RWRpdGFibGVFbGVtZW50KGVsKSAmJlxuICAgICAgICAhZG9tVXRpbHMuaXNTVkdFbGVtZW50KGVsKSAmJlxuICAgICAgICBoaWRkZW5CeVJlY3RhbmdsZShlbCBhcyBIVE1MRWxlbWVudCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb21VdGlscy5pc01hcEVsZW1lbnQoZWwpKSB7XG4gICAgICAgIGNvbnN0IG1hcENvbnRhaW5lciA9IGRvbVV0aWxzLmdldE1hcENvbnRhaW5lcihkb21VdGlscy5jbG9zZXN0KGVsLCAnbWFwJykpO1xuXG4gICAgICAgIHJldHVybiBtYXBDb250YWluZXIgPyBpc0VsZW1lbnRWaXNpYmxlKG1hcENvbnRhaW5lcikgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoc3R5bGVVdGlscy5pc1NlbGVjdFZpc2libGVDaGlsZChlbCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ICAgICAgICAgICAgICA9IGRvbVV0aWxzLmdldFNlbGVjdFBhcmVudChlbCkgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNoaWxkUmVhbEluZGV4ICAgICAgPSBkb21VdGlscy5nZXRDaGlsZFZpc2libGVJbmRleChzZWxlY3QsIGVsKTtcbiAgICAgICAgY29uc3QgcmVhbFNlbGVjdFNpemVWYWx1ZSA9IHN0eWxlVXRpbHMuZ2V0U2VsZWN0RWxlbWVudFNpemUoc2VsZWN0KTtcbiAgICAgICAgY29uc3QgdG9wVmlzaWJsZUluZGV4ICAgICA9IE1hdGgubWF4KHN0eWxlVXRpbHMuZ2V0U2Nyb2xsVG9wKHNlbGVjdCkgLyBzdHlsZVV0aWxzLmdldE9wdGlvbkhlaWdodChzZWxlY3QpLCAwKTtcbiAgICAgICAgY29uc3QgYm90dG9tVmlzaWJsZUluZGV4ICA9IHRvcFZpc2libGVJbmRleCArIHJlYWxTZWxlY3RTaXplVmFsdWUgLSAxO1xuICAgICAgICBjb25zdCBvcHRpb25WaXNpYmxlSW5kZXggID0gTWF0aC5tYXgoY2hpbGRSZWFsSW5kZXggLSB0b3BWaXNpYmxlSW5kZXgsIDApO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25WaXNpYmxlSW5kZXggPj0gdG9wVmlzaWJsZUluZGV4ICYmIG9wdGlvblZpc2libGVJbmRleCA8PSBib3R0b21WaXNpYmxlSW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGRvbVV0aWxzLmlzU1ZHRWxlbWVudChlbCkpIHtcbiAgICAgICAgY29uc3QgaGlkZGVuUGFyZW50ID0gZG9tVXRpbHMuZmluZFBhcmVudChlbCwgdHJ1ZSwgKHBhcmVudDogTm9kZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGhpZGRlblVzaW5nU3R5bGVzKHBhcmVudCBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFoaWRkZW5QYXJlbnQpXG4gICAgICAgICAgICByZXR1cm4gIWhpZGRlbkJ5UmVjdGFuZ2xlKGVsIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVVdGlscy5oYXNEaW1lbnNpb25zKGVsIGFzIEhUTUxFbGVtZW50KSAmJiAhaGlkZGVuVXNpbmdTdHlsZXMoZWwgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCk7XG59XG5cbiJdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -69,7 +73,7 @@ function getViewportDimensions() {
|
|
|
69
73
|
}
|
|
70
74
|
exports.getViewportDimensions = getViewportDimensions;
|
|
71
75
|
function getWindowDimensions(window) {
|
|
72
|
-
return new boundary_values_1.default(0, exports.getWidth(window), exports.getHeight(window), 0);
|
|
76
|
+
return new boundary_values_1.default(0, (0, exports.getWidth)(window), (0, exports.getHeight)(window), 0);
|
|
73
77
|
}
|
|
74
78
|
exports.getWindowDimensions = getWindowDimensions;
|
|
75
79
|
function isVisibilityHiddenNode(node) {
|
|
@@ -91,4 +95,4 @@ function isFixedElement(node) {
|
|
|
91
95
|
return domUtils.isElementNode(node) && styleUtils.get(node, 'position') === 'fixed';
|
|
92
96
|
}
|
|
93
97
|
exports.isFixedElement = isFixedElement;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvc3R5bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBNEM7QUFDNUMsK0VBQXNEO0FBQ3RELGdEQUFrQztBQUVsQyxNQUFNLFVBQVUsR0FBRyxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFFN0IsUUFBQSxlQUFlLEdBQVEsb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztBQUM5RCxRQUFBLGdCQUFnQixHQUFPLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUMvRCxRQUFBLGdCQUFnQixHQUFPLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUMvRCxRQUFBLGlCQUFpQixHQUFNLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztBQUNoRSxRQUFBLGdCQUFnQixHQUFPLG9CQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUMvRCxRQUFBLGVBQWUsR0FBUSxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0FBQzlELFFBQUEsb0JBQW9CLEdBQUcsb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0FBQ25FLFFBQUEsZ0JBQWdCLEdBQU8sb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQy9ELFFBQUEsb0JBQW9CLEdBQUcsb0JBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztBQUM3RCxRQUFBLFFBQVEsR0FBZSxvQkFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0FBQ3ZELFFB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LENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDNUYsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFFLElBQUk7SUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBRSxFQUFFO0lBQzdCLHVHQUF1RztJQUN2RyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBSEQsc0NBR0M7QUFFRCxTQUFnQixjQUFjLENBQUUsSUFBSTtJQUNoQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssT0FBTyxDQUFDO0FBQ3hGLENBQUM7QUFGRCx3Q0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBoYW1tZXJoZWFkIGZyb20gJy4uL2RlcHMvaGFtbWVyaGVhZCc7XG5pbXBvcnQgQm91bmRhcnlWYWx1ZXMgZnJvbSAnLi92YWx1ZXMvYm91bmRhcnktdmFsdWVzJztcbmltcG9ydCAqIGFzIGRvbVV0aWxzIGZyb20gJy4vZG9tJztcblxuY29uc3Qgc3R5bGVVdGlscyA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGU7XG5cbmV4cG9ydCBjb25zdCBnZXRCb3JkZXJzV2lkdGggICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0Qm9yZGVyc1dpZHRoO1xuZXhwb3J0IGNvbnN0IGdldENvbXB1dGVkU3R5bGUgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRDb21wdXRlZFN0eWxlO1xuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRNYXJnaW4gICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRFbGVtZW50TWFyZ2luO1xuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRQYWRkaW5nICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRFbGVtZW50UGFkZGluZztcbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50U2Nyb2xsICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0RWxlbWVudFNjcm9sbDtcbmV4cG9ydCBjb25zdCBnZXRPcHRpb25IZWlnaHQgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0T3B0aW9uSGVpZ2h0O1xuZXhwb3J0IGNvbnN0IGdldFNlbGVjdEVsZW1lbnRTaXplID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRTZWxlY3RFbGVtZW50U2l6ZTtcbmV4cG9ydCBjb25zdCBpc0VsZW1lbnRWaXNpYmxlICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuaXNFbGVtZW50VmlzaWJsZTtcbmV4cG9ydCBjb25zdCBpc1NlbGVjdFZpc2libGVDaGlsZCA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuaXNWaXNpYmxlQ2hpbGQ7XG5leHBvcnQgY29uc3QgZ2V0V2lkdGggICAgICAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldFdpZHRoO1xuZXhwb3J0IGNvbnN0IGdldEhlaWdodCAgICAgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRIZWlnaHQ7XG5leHBvcnQgY29uc3QgZ2V0SW5uZXJXaWR0aCAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldElubmVyV2lkdGg7XG5leHBvcnQgY29uc3QgZ2V0SW5uZXJIZWlnaHQgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLmdldElubmVySGVpZ2h0O1xuZXhwb3J0IGNvbnN0IGdldFNjcm9sbExlZnQgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRTY3JvbGxMZWZ0O1xuZXhwb3J0IGNvbnN0IGdldFNjcm9sbFRvcCAgICAgICAgID0gaGFtbWVyaGVhZC51dGlscy5zdHlsZS5nZXRTY3JvbGxUb3A7XG5leHBvcnQgY29uc3Qgc2V0U2Nyb2xsTGVmdCAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLnNldFNjcm9sbExlZnQ7XG5leHBvcnQgY29uc3Qgc2V0U2Nyb2xsVG9wICAgICAgICAgPSBoYW1tZXJoZWFkLnV0aWxzLnN0eWxlLnNldFNjcm9sbFRvcDtcbmV4cG9ydCBjb25zdCBnZXQgICAgICAgICAgICAgICAgICA9IGhhbW1lcmhlYWQudXRpbHMuc3R5bGUuZ2V0O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQgKGVsLCBzdHlsZSwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHN0eWxlID09PSAnc3RyaW5nJylcbiAgICAgICAgc3R5bGVVdGlscy5zZXQoZWwsIHN0eWxlLCB2YWx1ZSk7XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHN0eWxlKSB7XG4gICAgICAgIGlmIChzdHlsZS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpXG4gICAgICAgICAgICBzdHlsZVV0aWxzLnNldChlbCwgcHJvcGVydHksIHN0eWxlW3Byb3BlcnR5XSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRWaWV3cG9ydERpbWVuc2lvbiAod2luZG93RGltZW5zaW9uLCBkb2N1bWVudERpbWVuc2lvbiwgYm9keURpbWVuc2lvbikge1xuICAgIGlmIChkb2N1bWVudERpbWVuc2lvbiA+IHdpbmRvd0RpbWVuc2lvbilcbiAgICAgICAgcmV0dXJuIGJvZHlEaW1lbnNpb247XG5cbiAgICBpZiAoYm9keURpbWVuc2lvbiA+IHdpbmRvd0RpbWVuc2lvbilcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50RGltZW5zaW9uO1xuXG4gICAgcmV0dXJuIE1hdGgubWF4KGJvZHlEaW1lbnNpb24sIGRvY3VtZW50RGltZW5zaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdwb3J0RGltZW5zaW9ucyAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6ICBnZXRWaWV3cG9ydERpbWVuc2lvbih3aW5kb3cuaW5uZXJXaWR0aCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoKSxcbiAgICAgICAgaGVpZ2h0OiBnZXRWaWV3cG9ydERpbWVuc2lvbih3aW5kb3cuaW5uZXJIZWlnaHQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsIGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2luZG93RGltZW5zaW9ucyAod2luZG93KSB7XG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcygwLCBnZXRXaWR0aCh3aW5kb3cpLCBnZXRIZWlnaHQod2luZG93KSwgMCk7XG59XG5cbmZ1bmN0aW9uIGlzVmlzaWJpbGl0eUhpZGRlbk5vZGUgKG5vZGUpIHtcbiAgICByZXR1cm4gISFkb21VdGlscy5maW5kUGFyZW50KG5vZGUsIHRydWUsIGFuY2VzdG9yID0+XG4gICAgICAgIGRvbVV0aWxzLmlzRWxlbWVudE5vZGUoYW5jZXN0b3IpICYmIHN0eWxlVXRpbHMuZ2V0KGFuY2VzdG9yLCAndmlzaWJpbGl0eScpID09PSAnaGlkZGVuJyk7XG59XG5cbmZ1bmN0aW9uIGlzSGlkZGVuTm9kZSAobm9kZSkge1xuICAgIHJldHVybiAhIWRvbVV0aWxzLmZpbmRQYXJlbnQobm9kZSwgdHJ1ZSwgYW5jZXN0b3IgPT5cbiAgICAgICAgZG9tVXRpbHMuaXNFbGVtZW50Tm9kZShhbmNlc3RvcikgJiYgc3R5bGVVdGlscy5nZXQoYW5jZXN0b3IsICdkaXNwbGF5JykgPT09ICdub25lJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vdFZpc2libGVOb2RlIChub2RlKSB7XG4gICAgcmV0dXJuICFkb21VdGlscy5pc1JlbmRlcmVkTm9kZShub2RlKSB8fCBpc0hpZGRlbk5vZGUobm9kZSkgfHwgaXNWaXNpYmlsaXR5SGlkZGVuTm9kZShub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0RpbWVuc2lvbnMgKGVsKSB7XG4gICAgLy9OT1RFOiBpdCdzIGxpa2UganF1ZXJ5ICc6dmlzaWJsZScgc2VsZWN0b3IgKGh0dHA6Ly9ibG9nLmpxdWVyeS5jb20vMjAwOS8wMi8yMC9qcXVlcnktMS0zLTItcmVsZWFzZWQvKVxuICAgIHJldHVybiBlbCAmJiAhKGVsLm9mZnNldEhlaWdodCA8PSAwICYmIGVsLm9mZnNldFdpZHRoIDw9IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXhlZEVsZW1lbnQgKG5vZGUpIHtcbiAgICByZXR1cm4gZG9tVXRpbHMuaXNFbGVtZW50Tm9kZShub2RlKSAmJiBzdHlsZVV0aWxzLmdldChub2RlLCAncG9zaXRpb24nKSA9PT0gJ2ZpeGVkJztcbn1cbiJdfQ==
|
|
@@ -31,7 +31,7 @@ class SelectorFilter {
|
|
|
31
31
|
this._assertFilterError(nodes, apiInfo, SELECTOR_FILTER_ERROR.filterVisible);
|
|
32
32
|
}
|
|
33
33
|
if (options.filterHidden) {
|
|
34
|
-
nodes = nodes.filter(n => !utils_1.visible(n));
|
|
34
|
+
nodes = nodes.filter(n => !(0, utils_1.visible)(n));
|
|
35
35
|
this._assertFilterError(nodes, apiInfo, SELECTOR_FILTER_ERROR.filterHidden);
|
|
36
36
|
}
|
|
37
37
|
if (options.counterMode) {
|
|
@@ -57,10 +57,10 @@ class SelectorFilter {
|
|
|
57
57
|
return [];
|
|
58
58
|
else if (searchResult instanceof hammerhead_1.nativeMethods.Node)
|
|
59
59
|
return [searchResult];
|
|
60
|
-
else if (utils_1.isArrayOfNodes(searchResult))
|
|
60
|
+
else if ((0, utils_1.isArrayOfNodes)(searchResult))
|
|
61
61
|
return searchResult;
|
|
62
|
-
else if (utils_1.isNodeCollection(searchResult))
|
|
63
|
-
return utils_1.castToArray(searchResult);
|
|
62
|
+
else if ((0, utils_1.isNodeCollection)(searchResult))
|
|
63
|
+
return (0, utils_1.castToArray)(searchResult);
|
|
64
64
|
throw new index_1.InvalidSelectorResultError();
|
|
65
65
|
}
|
|
66
66
|
_assertFilterError(filtered, apiInfo, filterError) {
|
|
@@ -81,4 +81,4 @@ class SelectorFilter {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
exports.default = new SelectorFilter();
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9kcml2ZXIvY29tbWFuZC1leGVjdXRvcnMvY2xpZW50LWZ1bmN0aW9ucy9zZWxlY3Rvci1leGVjdXRvci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4REFBZ0Y7QUFDaEYsbUNBS2lCO0FBRWpCLGFBQWE7QUFDYix5REFBeUQ7QUFHekQsTUFBTSxxQkFBcUIsR0FBRztJQUMxQixhQUFhLEVBQUUsQ0FBQztJQUNoQixZQUFZLEVBQUcsQ0FBQztJQUNoQixHQUFHLEVBQVksQ0FBQztDQUNuQixDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxFQUFFLHVCQUF1QjtJQUM5RCxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxFQUFHLHNCQUFzQjtJQUM3RCxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFZLGdCQUFnQjtDQUMxRCxDQUFDO0FBR0YsTUFBTSxjQUFjO0lBQXBCO1FBQ1ksU0FBSSxHQUFrQixJQUFJLENBQUM7SUFzRnZDLENBQUM7SUFwRkcsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBRSxPQUFzQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRU0sTUFBTSxDQUFFLEtBQWEsRUFBRSxPQUFzQixFQUFFLE9BQWdCO1FBQ2xFLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFPLENBQUMsQ0FBQztZQUU5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNoRjtRQUVELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBQSxlQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvRTtRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSTtnQkFDdEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBRXhCLE9BQU8sY0FBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUN4QixJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUN4QixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRXpFLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFFekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdEU7WUFFRCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFdBQVc7WUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxGLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxJQUFJLENBQUUsWUFBcUI7UUFDOUIsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxLQUFLLENBQUM7WUFDaEQsT0FBTyxFQUFFLENBQUM7YUFFVCxJQUFJLFlBQVksWUFBWSwwQkFBYSxDQUFDLElBQUk7WUFDL0MsT0FBTyxDQUFDLFlBQW9CLENBQUMsQ0FBQzthQUU3QixJQUFJLElBQUEsc0JBQWMsRUFBQyxZQUFZLENBQUM7WUFDakMsT0FBTyxZQUFZLENBQUM7YUFFbkIsSUFBSSxJQUFBLHdCQUFnQixFQUFDLFlBQVksQ0FBQztZQUNuQyxPQUFPLElBQUEsbUJBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxNQUFNLElBQUksa0NBQTBCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sa0JBQWtCLENBQUUsUUFBZ0IsRUFBRSxPQUFnQixFQUFFLFdBQW1CO1FBQy9FLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFXLEVBQUUsR0FBVztRQUN2RSxJQUFJLEdBQUcsRUFBRTtZQUNMLEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQy9DLE9BQU8sQ0FBQyxDQUFDO2FBQ2hCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FBRSxLQUFhLEVBQUUsS0FBYTtRQUN4RCxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNKO0FBRUQsa0JBQWUsSUFBSSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFsaWRTZWxlY3RvclJlc3VsdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2Vycm9ycy9pbmRleCc7XG5pbXBvcnQge1xuICAgIHZpc2libGUsXG4gICAgaXNOb2RlQ29sbGVjdGlvbixcbiAgICBpc0FycmF5T2ZOb2RlcyxcbiAgICBjYXN0VG9BcnJheSxcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBUElJbmZvLCBGaWx0ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgbmF0aXZlTWV0aG9kcyB9IGZyb20gJy4uLy4uLy4uL2RlcHMvaGFtbWVyaGVhZCc7XG5cblxuY29uc3QgU0VMRUNUT1JfRklMVEVSX0VSUk9SID0ge1xuICAgIGZpbHRlclZpc2libGU6IDEsXG4gICAgZmlsdGVySGlkZGVuOiAgMixcbiAgICBudGg6ICAgICAgICAgICAzLFxufTtcblxuY29uc3QgRklMVEVSX0VSUk9SX1RPX0FQSV9SRSA9IHtcbiAgICBbU0VMRUNUT1JfRklMVEVSX0VSUk9SLmZpbHRlclZpc2libGVdOiAvXlxcLmZpbHRlclZpc2libGVcXChcXCkkLyxcbiAgICBbU0VMRUNUT1JfRklMVEVSX0VSUk9SLmZpbHRlckhpZGRlbl06ICAvXlxcLmZpbHRlckhpZGRlblxcKFxcKSQvLFxuICAgIFtTRUxFQ1RPUl9GSUxURVJfRVJST1IubnRoXTogICAgICAgICAgIC9eXFwubnRoXFwoXFxkK1xcKSQvLFxufTtcblxuXG5jbGFzcyBTZWxlY3RvckZpbHRlciB7XG4gICAgcHJpdmF0ZSBfZXJyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBnZXQgZXJyb3IgKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZXJyb3IgKG1lc3NhZ2U6IG51bWJlciB8IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuX2VyciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRoaXMuX2VyciA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlciAobm9kZXM6IE5vZGVbXSwgb3B0aW9uczogRmlsdGVyT3B0aW9ucywgYXBpSW5mbzogQVBJSW5mbyk6IG51bWJlciB8IE5vZGUgfCBOb2RlW10gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAob3B0aW9ucy5maWx0ZXJWaXNpYmxlKSB7XG4gICAgICAgICAgICBub2RlcyA9IG5vZGVzLmZpbHRlcih2aXNpYmxlKTtcblxuICAgICAgICAgICAgdGhpcy5fYXNzZXJ0RmlsdGVyRXJyb3Iobm9kZXMsIGFwaUluZm8sIFNFTEVDVE9SX0ZJTFRFUl9FUlJPUi5maWx0ZXJWaXNpYmxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlckhpZGRlbikge1xuICAgICAgICAgICAgbm9kZXMgPSBub2Rlcy5maWx0ZXIobiA9PiAhdmlzaWJsZShuKSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Fzc2VydEZpbHRlckVycm9yKG5vZGVzLCBhcGlJbmZvLCBTRUxFQ1RPUl9GSUxURVJfRVJST1IuZmlsdGVySGlkZGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNvdW50ZXJNb2RlKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pbmRleCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGaWx0ZXIuX2dldE5vZGVCeUluZGV4KG5vZGVzLCBvcHRpb25zLmluZGV4KSA/IDEgOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuY29sbGVjdGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZU9uSW5kZXggPSBTZWxlY3RvckZpbHRlci5fZ2V0Tm9kZUJ5SW5kZXgobm9kZXMsIG9wdGlvbnMuaW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgbm9kZXMgPSBub2RlT25JbmRleCA/IFtub2RlT25JbmRleF0gOiBbXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2VydEZpbHRlckVycm9yKG5vZGVzLCBhcGlJbmZvLCBTRUxFQ1RPUl9GSUxURVJfRVJST1IubnRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9kZU9uSW5kZXggPSBTZWxlY3RvckZpbHRlci5fZ2V0Tm9kZUJ5SW5kZXgobm9kZXMsIG9wdGlvbnMuaW5kZXggfHwgMCk7XG5cbiAgICAgICAgaWYgKCFub2RlT25JbmRleClcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBTZWxlY3RvckZpbHRlci5fZ2V0RXJyb3JJdGVtKGFwaUluZm8sIFNFTEVDVE9SX0ZJTFRFUl9FUlJPUi5udGgpO1xuXG4gICAgICAgIHJldHVybiBub2RlT25JbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FzdCAoc2VhcmNoUmVzdWx0OiB1bmtub3duKTogTm9kZVtdIHtcbiAgICAgICAgaWYgKHNlYXJjaFJlc3VsdCA9PT0gbnVsbCB8fCBzZWFyY2hSZXN1bHQgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHJldHVybiBbXTtcblxuICAgICAgICBlbHNlIGlmIChzZWFyY2hSZXN1bHQgaW5zdGFuY2VvZiBuYXRpdmVNZXRob2RzLk5vZGUpXG4gICAgICAgICAgICByZXR1cm4gW3NlYXJjaFJlc3VsdCBhcyBOb2RlXTtcblxuICAgICAgICBlbHNlIGlmIChpc0FycmF5T2ZOb2RlcyhzZWFyY2hSZXN1bHQpKVxuICAgICAgICAgICAgcmV0dXJuIHNlYXJjaFJlc3VsdDtcblxuICAgICAgICBlbHNlIGlmIChpc05vZGVDb2xsZWN0aW9uKHNlYXJjaFJlc3VsdCkpXG4gICAgICAgICAgICByZXR1cm4gY2FzdFRvQXJyYXkoc2VhcmNoUmVzdWx0KTtcblxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFNlbGVjdG9yUmVzdWx0RXJyb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NlcnRGaWx0ZXJFcnJvciAoZmlsdGVyZWQ6IE5vZGVbXSwgYXBpSW5mbzogQVBJSW5mbywgZmlsdGVyRXJyb3I6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZmlsdGVyZWQubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgdGhpcy5lcnJvciA9IFNlbGVjdG9yRmlsdGVyLl9nZXRFcnJvckl0ZW0oYXBpSW5mbywgZmlsdGVyRXJyb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRFcnJvckl0ZW0gKHsgYXBpRm5DaGFpbiwgYXBpRm5JRCB9OiBBUElJbmZvLCBlcnI6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gYXBpRm5JRDsgaSA8IGFwaUZuQ2hhaW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoRklMVEVSX0VSUk9SX1RPX0FQSV9SRVtlcnJdLnRlc3QoYXBpRm5DaGFpbltpXSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldE5vZGVCeUluZGV4IChub2RlczogTm9kZVtdLCBpbmRleDogbnVtYmVyKTogTm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBpbmRleCA8IDAgPyBub2Rlc1tub2Rlcy5sZW5ndGggKyBpbmRleF0gOiBub2Rlc1tpbmRleF07XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgU2VsZWN0b3JGaWx0ZXIoKTtcbiJdfQ==
|
|
@@ -10,12 +10,12 @@ const testcafe_ui_1 = require("../../../deps/testcafe-ui");
|
|
|
10
10
|
const position_1 = require("../../../../core/utils/position");
|
|
11
11
|
function visible(el) {
|
|
12
12
|
if (testcafe_core_1.domUtils.isIframeElement(el))
|
|
13
|
-
return position_1.isIframeVisible(el);
|
|
13
|
+
return (0, position_1.isIframeVisible)(el);
|
|
14
14
|
if (!hammerhead_1.utils.dom.isDomElement(el) && !hammerhead_1.utils.dom.isTextNode(el))
|
|
15
15
|
return false;
|
|
16
16
|
if (testcafe_core_1.domUtils.isOptionElement(el) || testcafe_core_1.domUtils.getTagName(el) === 'optgroup')
|
|
17
17
|
return testcafe_ui_1.selectElement.isOptionElementVisible(el);
|
|
18
|
-
return position_1.isElementVisible(el);
|
|
18
|
+
return (0, position_1.isElementVisible)(el);
|
|
19
19
|
}
|
|
20
20
|
exports.visible = visible;
|
|
21
21
|
function isNodeCollection(obj) {
|
|
@@ -41,4 +41,4 @@ function isArrayOfNodes(obj) {
|
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
exports.isArrayOfNodes = isArrayOfNodes;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2RyaXZlci9jb21tYW5kLWV4ZWN1dG9ycy9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9yLWV4ZWN1dG9yL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGFBQWE7QUFDYix5REFBZ0U7QUFDaEUsYUFBYTtBQUNiLCtEQUF1RDtBQUN2RCxhQUFhO0FBQ2IsMkRBQTBEO0FBQzFELDhEQUFvRjtBQUdwRixTQUFnQixPQUFPLENBQUUsRUFBUTtJQUM3QixJQUFJLHdCQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUEsMEJBQWUsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUUvQixJQUFJLENBQUMsa0JBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLEtBQUssQ0FBQztJQUVqQixJQUFJLHdCQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLHdCQUFRLENBQUMsVUFBVSxDQUFDLEVBQWEsQ0FBQyxLQUFLLFVBQVU7UUFDakYsT0FBTywyQkFBYSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBELE9BQU8sSUFBQSwyQkFBZ0IsRUFBQyxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBWEQsMEJBV0M7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBRSxHQUFZO0lBQzFDLE9BQU8sR0FBRyxZQUFZLDBCQUFhLENBQUMsY0FBYyxJQUFJLEdBQUcsWUFBWSwwQkFBYSxDQUFDLFFBQVEsQ0FBQztBQUNoRyxDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixXQUFXLENBQUUsSUFBK0I7SUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUU7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixjQUFjLENBQUUsR0FBWTtJQUN4QyxJQUFJLENBQUMsMEJBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBSSxHQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pDLGFBQWE7UUFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksMEJBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7S0FDcEI7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBWEQsd0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBuYXRpdmVNZXRob2RzLCB1dGlscyB9IGZyb20gJy4uLy4uLy4uL2RlcHMvaGFtbWVyaGVhZCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBkb21VdGlscyB9IGZyb20gJy4uLy4uLy4uL2RlcHMvdGVzdGNhZmUtY29yZSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBzZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vZGVwcy90ZXN0Y2FmZS11aSc7XG5pbXBvcnQgeyBpc0VsZW1lbnRWaXNpYmxlLCBpc0lmcmFtZVZpc2libGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL3Bvc2l0aW9uJztcblxuXG5leHBvcnQgZnVuY3Rpb24gdmlzaWJsZSAoZWw6IE5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAoZG9tVXRpbHMuaXNJZnJhbWVFbGVtZW50KGVsKSlcbiAgICAgICAgcmV0dXJuIGlzSWZyYW1lVmlzaWJsZShlbCk7XG5cbiAgICBpZiAoIXV0aWxzLmRvbS5pc0RvbUVsZW1lbnQoZWwpICYmICF1dGlscy5kb20uaXNUZXh0Tm9kZShlbCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb21VdGlscy5pc09wdGlvbkVsZW1lbnQoZWwpIHx8IGRvbVV0aWxzLmdldFRhZ05hbWUoZWwgYXMgRWxlbWVudCkgPT09ICdvcHRncm91cCcpXG4gICAgICAgIHJldHVybiBzZWxlY3RFbGVtZW50LmlzT3B0aW9uRWxlbWVudFZpc2libGUoZWwpO1xuXG4gICAgcmV0dXJuIGlzRWxlbWVudFZpc2libGUoZWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb2RlQ29sbGVjdGlvbiAob2JqOiB1bmtub3duKTogb2JqIGlzIEhUTUxDb2xsZWN0aW9uIHwgTm9kZUxpc3Qge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBuYXRpdmVNZXRob2RzLkhUTUxDb2xsZWN0aW9uIHx8IG9iaiBpbnN0YW5jZW9mIG5hdGl2ZU1ldGhvZHMuTm9kZUxpc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXN0VG9BcnJheSAobGlzdDogSFRNTENvbGxlY3Rpb24gfCBOb2RlTGlzdCk6IE5vZGVbXSB7XG4gICAgY29uc3QgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKVxuICAgICAgICByZXN1bHQucHVzaChsaXN0W2ldKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5T2ZOb2RlcyAob2JqOiB1bmtub3duKTogb2JqIGlzIE5vZGVbXSB7XG4gICAgaWYgKCFuYXRpdmVNZXRob2RzLmlzQXJyYXkob2JqKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAob2JqIGFzIFtdKS5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICghKG9ialtpXSBpbnN0YW5jZW9mIG5hdGl2ZU1ldGhvZHMuTm9kZSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG4iXX0=
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
18
|
};
|
|
12
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = void 0;
|
|
13
21
|
__exportStar(require("hammerhead"), exports);
|
|
14
22
|
var hammerhead_1 = require("hammerhead");
|
|
15
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return hammerhead_1.default; } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(hammerhead_1).default; } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFtbWVyaGVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvZHJpdmVyL2RlcHMvaGFtbWVyaGVhZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQix5Q0FBcUM7QUFBNUIsc0hBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnaGFtbWVyaGVhZCc7XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnaGFtbWVyaGVhZCc7XG4iXX0=
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
18
|
};
|
|
12
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = void 0;
|
|
13
21
|
__exportStar(require("testcafe-core"), exports);
|
|
14
22
|
var testcafe_core_1 = require("testcafe-core");
|
|
15
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return testcafe_core_1.default; } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(testcafe_core_1).default; } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhZmUtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvZHJpdmVyL2RlcHMvdGVzdGNhZmUtY29yZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5QiwrQ0FBd0M7QUFBL0IseUhBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAndGVzdGNhZmUtY29yZSc7XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAndGVzdGNhZmUtY29yZSc7XG4iXX0=
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
18
|
};
|
|
12
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = void 0;
|
|
13
21
|
__exportStar(require("testcafe-ui"), exports);
|
|
14
22
|
var testcafe_ui_1 = require("testcafe-ui");
|
|
15
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return testcafe_ui_1.default; } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(testcafe_ui_1).default; } });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGNhZmUtdWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2RyaXZlci9kZXBzL3Rlc3RjYWZlLXVpLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUFzQztBQUE3Qix1SEFBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICd0ZXN0Y2FmZS11aSc7XG5leHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAndGVzdGNhZmUtdWknO1xuIl19
|