patchright-core 1.48.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/README.md +3 -0
- package/ThirdPartyNotices.txt +1548 -0
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +2 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/reinstall_chrome_beta_linux.sh +40 -0
- package/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/bin/reinstall_chrome_stable_linux.sh +40 -0
- package/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/bin/reinstall_msedge_beta_linux.sh +40 -0
- package/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/bin/reinstall_msedge_dev_linux.sh +40 -0
- package/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/bin/reinstall_msedge_stable_linux.sh +40 -0
- package/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/browsers.json +57 -0
- package/cli.js +18 -0
- package/index.d.ts +17 -0
- package/index.js +33 -0
- package/index.mjs +28 -0
- package/lib/androidServerImpl.js +69 -0
- package/lib/browserServerImpl.js +92 -0
- package/lib/cli/driver.js +95 -0
- package/lib/cli/program.js +589 -0
- package/lib/cli/programWithTestStub.js +67 -0
- package/lib/client/accessibility.js +50 -0
- package/lib/client/android.js +473 -0
- package/lib/client/api.js +285 -0
- package/lib/client/artifact.js +79 -0
- package/lib/client/browser.js +145 -0
- package/lib/client/browserContext.js +583 -0
- package/lib/client/browserType.js +241 -0
- package/lib/client/cdpSession.js +53 -0
- package/lib/client/channelOwner.js +235 -0
- package/lib/client/clientHelper.js +57 -0
- package/lib/client/clientInstrumentation.js +50 -0
- package/lib/client/clock.js +69 -0
- package/lib/client/connection.js +333 -0
- package/lib/client/consoleMessage.js +55 -0
- package/lib/client/coverage.js +41 -0
- package/lib/client/dialog.js +57 -0
- package/lib/client/download.js +62 -0
- package/lib/client/electron.js +135 -0
- package/lib/client/elementHandle.js +321 -0
- package/lib/client/errors.js +77 -0
- package/lib/client/eventEmitter.js +314 -0
- package/lib/client/events.js +94 -0
- package/lib/client/fetch.js +391 -0
- package/lib/client/fileChooser.js +45 -0
- package/lib/client/frame.js +504 -0
- package/lib/client/harRouter.js +99 -0
- package/lib/client/input.js +111 -0
- package/lib/client/jsHandle.js +121 -0
- package/lib/client/jsonPipe.js +35 -0
- package/lib/client/localUtils.js +36 -0
- package/lib/client/locator.js +441 -0
- package/lib/client/network.js +762 -0
- package/lib/client/page.js +770 -0
- package/lib/client/playwright.js +80 -0
- package/lib/client/selectors.js +67 -0
- package/lib/client/stream.js +54 -0
- package/lib/client/tracing.js +134 -0
- package/lib/client/types.js +24 -0
- package/lib/client/video.js +51 -0
- package/lib/client/waiter.js +158 -0
- package/lib/client/webError.js +37 -0
- package/lib/client/worker.js +71 -0
- package/lib/client/writableStream.js +54 -0
- package/lib/common/socksProxy.js +569 -0
- package/lib/common/timeoutSettings.js +73 -0
- package/lib/common/types.js +5 -0
- package/lib/generated/clockSource.js +7 -0
- package/lib/generated/consoleApiSource.js +7 -0
- package/lib/generated/injectedScriptSource.js +7 -0
- package/lib/generated/pollingRecorderSource.js +7 -0
- package/lib/generated/utilityScriptSource.js +7 -0
- package/lib/generated/webSocketMockSource.js +7 -0
- package/lib/image_tools/colorUtils.js +98 -0
- package/lib/image_tools/compare.js +108 -0
- package/lib/image_tools/imageChannel.js +70 -0
- package/lib/image_tools/stats.js +102 -0
- package/lib/inProcessFactory.js +54 -0
- package/lib/inprocess.js +20 -0
- package/lib/outofprocess.js +67 -0
- package/lib/protocol/debug.js +27 -0
- package/lib/protocol/serializers.js +173 -0
- package/lib/protocol/transport.js +82 -0
- package/lib/protocol/validator.js +2760 -0
- package/lib/protocol/validatorPrimitives.js +139 -0
- package/lib/remote/playwrightConnection.js +274 -0
- package/lib/remote/playwrightServer.js +110 -0
- package/lib/server/accessibility.js +62 -0
- package/lib/server/android/android.js +441 -0
- package/lib/server/android/backendAdb.js +172 -0
- package/lib/server/artifact.js +104 -0
- package/lib/server/bidi/bidiBrowser.js +311 -0
- package/lib/server/bidi/bidiChromium.js +124 -0
- package/lib/server/bidi/bidiConnection.js +206 -0
- package/lib/server/bidi/bidiExecutionContext.js +159 -0
- package/lib/server/bidi/bidiFirefox.js +104 -0
- package/lib/server/bidi/bidiInput.js +158 -0
- package/lib/server/bidi/bidiNetworkManager.js +338 -0
- package/lib/server/bidi/bidiOverCdp.js +103 -0
- package/lib/server/bidi/bidiPage.js +529 -0
- package/lib/server/bidi/bidiPdf.js +140 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +93 -0
- package/lib/server/bidi/third_party/bidiKeyboard.js +238 -0
- package/lib/server/bidi/third_party/bidiProtocol.js +139 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +144 -0
- package/lib/server/bidi/third_party/firefoxPrefs.js +221 -0
- package/lib/server/browser.js +148 -0
- package/lib/server/browserContext.js +666 -0
- package/lib/server/browserType.js +335 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +350 -0
- package/lib/server/chromium/chromiumSwitches.js +36 -0
- package/lib/server/chromium/crAccessibility.js +237 -0
- package/lib/server/chromium/crBrowser.js +522 -0
- package/lib/server/chromium/crConnection.js +228 -0
- package/lib/server/chromium/crCoverage.js +246 -0
- package/lib/server/chromium/crDevTools.js +104 -0
- package/lib/server/chromium/crDragDrop.js +143 -0
- package/lib/server/chromium/crExecutionContext.js +149 -0
- package/lib/server/chromium/crInput.js +171 -0
- package/lib/server/chromium/crNetworkManager.js +809 -0
- package/lib/server/chromium/crPage.js +1235 -0
- package/lib/server/chromium/crPdf.js +153 -0
- package/lib/server/chromium/crProtocolHelper.js +133 -0
- package/lib/server/chromium/crServiceWorker.js +111 -0
- package/lib/server/chromium/defaultFontFamilies.js +145 -0
- package/lib/server/chromium/videoRecorder.js +155 -0
- package/lib/server/clock.js +133 -0
- package/lib/server/codegen/csharp.js +299 -0
- package/lib/server/codegen/java.js +235 -0
- package/lib/server/codegen/javascript.js +223 -0
- package/lib/server/codegen/jsonl.js +47 -0
- package/lib/server/codegen/language.js +88 -0
- package/lib/server/codegen/languages.js +30 -0
- package/lib/server/codegen/python.js +265 -0
- package/lib/server/codegen/types.js +5 -0
- package/lib/server/console.js +57 -0
- package/lib/server/cookieStore.js +185 -0
- package/lib/server/debugController.js +234 -0
- package/lib/server/debugger.js +132 -0
- package/lib/server/deviceDescriptors.js +26 -0
- package/lib/server/deviceDescriptorsSource.json +1669 -0
- package/lib/server/dialog.js +71 -0
- package/lib/server/dispatchers/androidDispatcher.js +193 -0
- package/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/lib/server/dispatchers/browserContextDispatcher.js +368 -0
- package/lib/server/dispatchers/browserDispatcher.js +170 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +55 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +48 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +103 -0
- package/lib/server/dispatchers/dialogDispatcher.js +44 -0
- package/lib/server/dispatchers/dispatcher.js +395 -0
- package/lib/server/dispatchers/electronDispatcher.js +93 -0
- package/lib/server/dispatchers/elementHandlerDispatcher.js +228 -0
- package/lib/server/dispatchers/frameDispatcher.js +286 -0
- package/lib/server/dispatchers/jsHandleDispatcher.js +97 -0
- package/lib/server/dispatchers/jsonPipeDispatcher.js +59 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +413 -0
- package/lib/server/dispatchers/networkDispatchers.js +221 -0
- package/lib/server/dispatchers/pageDispatcher.js +367 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +107 -0
- package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
- package/lib/server/dispatchers/streamDispatcher.js +62 -0
- package/lib/server/dispatchers/tracingDispatcher.js +54 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +189 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +58 -0
- package/lib/server/dom.js +845 -0
- package/lib/server/download.js +60 -0
- package/lib/server/electron/electron.js +296 -0
- package/lib/server/electron/loader.js +57 -0
- package/lib/server/errors.js +68 -0
- package/lib/server/fetch.js +656 -0
- package/lib/server/fileChooser.js +42 -0
- package/lib/server/fileUploadUtils.js +75 -0
- package/lib/server/firefox/ffAccessibility.js +216 -0
- package/lib/server/firefox/ffBrowser.js +460 -0
- package/lib/server/firefox/ffConnection.js +168 -0
- package/lib/server/firefox/ffExecutionContext.js +135 -0
- package/lib/server/firefox/ffInput.js +150 -0
- package/lib/server/firefox/ffNetworkManager.js +233 -0
- package/lib/server/firefox/ffPage.js +559 -0
- package/lib/server/firefox/firefox.js +99 -0
- package/lib/server/formData.js +75 -0
- package/lib/server/frameSelectors.js +171 -0
- package/lib/server/frames.js +1808 -0
- package/lib/server/har/harRecorder.js +139 -0
- package/lib/server/har/harTracer.js +542 -0
- package/lib/server/helper.js +103 -0
- package/lib/server/index.js +114 -0
- package/lib/server/input.js +310 -0
- package/lib/server/instrumentation.js +70 -0
- package/lib/server/isomorphic/utilityScriptSerializers.js +226 -0
- package/lib/server/javascript.js +299 -0
- package/lib/server/launchApp.js +91 -0
- package/lib/server/macEditingCommands.js +139 -0
- package/lib/server/network.js +617 -0
- package/lib/server/page.js +819 -0
- package/lib/server/pipeTransport.js +85 -0
- package/lib/server/playwright.js +88 -0
- package/lib/server/progress.js +102 -0
- package/lib/server/protocolError.js +49 -0
- package/lib/server/recorder/contextRecorder.js +299 -0
- package/lib/server/recorder/recorderApp.js +196 -0
- package/lib/server/recorder/recorderCollection.js +116 -0
- package/lib/server/recorder/recorderFrontend.js +5 -0
- package/lib/server/recorder/recorderInTraceViewer.js +144 -0
- package/lib/server/recorder/recorderRunner.js +155 -0
- package/lib/server/recorder/recorderUtils.js +112 -0
- package/lib/server/recorder/throttledFile.js +46 -0
- package/lib/server/recorder.js +329 -0
- package/lib/server/registry/browserFetcher.js +168 -0
- package/lib/server/registry/dependencies.js +322 -0
- package/lib/server/registry/index.js +1005 -0
- package/lib/server/registry/nativeDeps.js +490 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +138 -0
- package/lib/server/screenshotter.js +348 -0
- package/lib/server/selectors.js +73 -0
- package/lib/server/socksClientCertificatesInterceptor.js +340 -0
- package/lib/server/socksInterceptor.js +100 -0
- package/lib/server/trace/recorder/snapshotter.js +172 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +493 -0
- package/lib/server/trace/recorder/tracing.js +542 -0
- package/lib/server/trace/test/inMemorySnapshotter.js +93 -0
- package/lib/server/trace/viewer/traceViewer.js +213 -0
- package/lib/server/transport.js +191 -0
- package/lib/server/types.js +24 -0
- package/lib/server/usKeyboardLayout.js +555 -0
- package/lib/server/webkit/webkit.js +87 -0
- package/lib/server/webkit/wkAccessibility.js +194 -0
- package/lib/server/webkit/wkBrowser.js +329 -0
- package/lib/server/webkit/wkConnection.js +173 -0
- package/lib/server/webkit/wkExecutionContext.js +143 -0
- package/lib/server/webkit/wkInput.js +169 -0
- package/lib/server/webkit/wkInterceptableRequest.js +162 -0
- package/lib/server/webkit/wkPage.js +1219 -0
- package/lib/server/webkit/wkProvisionalPage.js +94 -0
- package/lib/server/webkit/wkWorkers.js +104 -0
- package/lib/third_party/diff_match_patch.js +2222 -0
- package/lib/third_party/pixelmatch.js +255 -0
- package/lib/utils/ascii.js +31 -0
- package/lib/utils/comparators.js +171 -0
- package/lib/utils/crypto.js +174 -0
- package/lib/utils/debug.js +46 -0
- package/lib/utils/debugLogger.js +91 -0
- package/lib/utils/env.js +49 -0
- package/lib/utils/eventsHelper.js +38 -0
- package/lib/utils/expectUtils.js +33 -0
- package/lib/utils/fileUtils.js +205 -0
- package/lib/utils/happy-eyeballs.js +194 -0
- package/lib/utils/headers.js +52 -0
- package/lib/utils/hostPlatform.js +133 -0
- package/lib/utils/httpServer.js +237 -0
- package/lib/utils/index.js +368 -0
- package/lib/utils/isomorphic/cssParser.js +250 -0
- package/lib/utils/isomorphic/cssTokenizer.js +979 -0
- package/lib/utils/isomorphic/locatorGenerators.js +642 -0
- package/lib/utils/isomorphic/locatorParser.js +179 -0
- package/lib/utils/isomorphic/locatorUtils.js +62 -0
- package/lib/utils/isomorphic/mimeType.js +29 -0
- package/lib/utils/isomorphic/recorderUtils.js +195 -0
- package/lib/utils/isomorphic/selectorParser.js +397 -0
- package/lib/utils/isomorphic/stringUtils.js +139 -0
- package/lib/utils/isomorphic/traceUtils.js +39 -0
- package/lib/utils/isomorphic/urlMatch.js +120 -0
- package/lib/utils/linuxUtils.js +78 -0
- package/lib/utils/manualPromise.js +109 -0
- package/lib/utils/multimap.js +75 -0
- package/lib/utils/network.js +160 -0
- package/lib/utils/processLauncher.js +248 -0
- package/lib/utils/profiler.js +53 -0
- package/lib/utils/rtti.js +44 -0
- package/lib/utils/semaphore.js +51 -0
- package/lib/utils/spawnAsync.js +45 -0
- package/lib/utils/stackTrace.js +121 -0
- package/lib/utils/task.js +58 -0
- package/lib/utils/time.js +37 -0
- package/lib/utils/timeoutRunner.js +66 -0
- package/lib/utils/traceUtils.js +44 -0
- package/lib/utils/userAgent.js +105 -0
- package/lib/utils/wsServer.js +127 -0
- package/lib/utils/zipFile.js +75 -0
- package/lib/utils/zones.js +62 -0
- package/lib/utilsBundle.js +82 -0
- package/lib/utilsBundleImpl/index.js +53 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/htmlReport/index.html +66 -0
- package/lib/vite/recorder/assets/codeMirrorModule-baozm8ur.js +24 -0
- package/lib/vite/recorder/assets/codeMirrorModule-ez37Vkbh.css +1 -0
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-2ElAIWFB.js +42 -0
- package/lib/vite/recorder/assets/index-BW-aOBcL.css +1 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-Bh1rfd2w.js +24 -0
- package/lib/vite/traceViewer/assets/inspectorTab-7GHnKvSD.js +64 -0
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +1 -0
- package/lib/vite/traceViewer/assets/workbench-DPQnTHYP.js +9 -0
- package/lib/vite/traceViewer/assets/xtermModule-BeNbaIVa.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.ez37Vkbh.css +1 -0
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/embedded.BlHoW5LY.js +2 -0
- package/lib/vite/traceViewer/embedded.html +18 -0
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +1 -0
- package/lib/vite/traceViewer/index.CrbWWHbf.css +1 -0
- package/lib/vite/traceViewer/index.DaWVfou1.js +2 -0
- package/lib/vite/traceViewer/index.html +29 -0
- package/lib/vite/traceViewer/inspectorTab.DLjBDrQR.css +1 -0
- package/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.C4zxcvd2.js +2 -0
- package/lib/vite/traceViewer/recorder.html +17 -0
- package/lib/vite/traceViewer/snapshot.html +21 -0
- package/lib/vite/traceViewer/sw.bundle.js +3 -0
- package/lib/vite/traceViewer/uiMode.CAYqod-m.css +1 -0
- package/lib/vite/traceViewer/uiMode.html +20 -0
- package/lib/vite/traceViewer/uiMode.mTXWniJb.js +5 -0
- package/lib/vite/traceViewer/workbench.D3JVcA9K.css +1 -0
- package/lib/vite/traceViewer/xtermModule.DSXBckUd.css +32 -0
- package/lib/zipBundle.js +25 -0
- package/lib/zipBundleImpl.js +5 -0
- package/package.json +44 -0
- package/types/protocol.d.ts +21571 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +22519 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Dialog = void 0;
|
|
7
|
+
var _utils = require("../utils");
|
|
8
|
+
var _instrumentation = require("./instrumentation");
|
|
9
|
+
/**
|
|
10
|
+
* Copyright 2017 Google Inc. All rights reserved.
|
|
11
|
+
* Modifications copyright (c) Microsoft Corporation.
|
|
12
|
+
*
|
|
13
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
+
* you may not use this file except in compliance with the License.
|
|
15
|
+
* You may obtain a copy of the License at
|
|
16
|
+
*
|
|
17
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
20
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
+
* See the License for the specific language governing permissions and
|
|
23
|
+
* limitations under the License.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
class Dialog extends _instrumentation.SdkObject {
|
|
27
|
+
constructor(page, type, message, onHandle, defaultValue) {
|
|
28
|
+
super(page, 'dialog');
|
|
29
|
+
this._page = void 0;
|
|
30
|
+
this._type = void 0;
|
|
31
|
+
this._message = void 0;
|
|
32
|
+
this._onHandle = void 0;
|
|
33
|
+
this._handled = false;
|
|
34
|
+
this._defaultValue = void 0;
|
|
35
|
+
this._page = page;
|
|
36
|
+
this._type = type;
|
|
37
|
+
this._message = message;
|
|
38
|
+
this._onHandle = onHandle;
|
|
39
|
+
this._defaultValue = defaultValue || '';
|
|
40
|
+
this._page._frameManager.dialogDidOpen(this);
|
|
41
|
+
this.instrumentation.onDialog(this);
|
|
42
|
+
}
|
|
43
|
+
page() {
|
|
44
|
+
return this._page;
|
|
45
|
+
}
|
|
46
|
+
type() {
|
|
47
|
+
return this._type;
|
|
48
|
+
}
|
|
49
|
+
message() {
|
|
50
|
+
return this._message;
|
|
51
|
+
}
|
|
52
|
+
defaultValue() {
|
|
53
|
+
return this._defaultValue;
|
|
54
|
+
}
|
|
55
|
+
async accept(promptText) {
|
|
56
|
+
(0, _utils.assert)(!this._handled, 'Cannot accept dialog which is already handled!');
|
|
57
|
+
this._handled = true;
|
|
58
|
+
this._page._frameManager.dialogWillClose(this);
|
|
59
|
+
await this._onHandle(true, promptText);
|
|
60
|
+
}
|
|
61
|
+
async dismiss() {
|
|
62
|
+
(0, _utils.assert)(!this._handled, 'Cannot dismiss dialog which is already handled!');
|
|
63
|
+
this._handled = true;
|
|
64
|
+
this._page._frameManager.dialogWillClose(this);
|
|
65
|
+
await this._onHandle(false);
|
|
66
|
+
}
|
|
67
|
+
async close() {
|
|
68
|
+
if (this._type === 'beforeunload') await this.accept();else await this.dismiss();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.Dialog = Dialog;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AndroidSocketDispatcher = exports.AndroidDispatcher = exports.AndroidDeviceDispatcher = void 0;
|
|
7
|
+
var _dispatcher = require("./dispatcher");
|
|
8
|
+
var _android = require("../android/android");
|
|
9
|
+
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
10
|
+
/**
|
|
11
|
+
* Copyright (c) Microsoft Corporation.
|
|
12
|
+
*
|
|
13
|
+
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
14
|
+
* you may not use this file except in compliance with the License.
|
|
15
|
+
* You may obtain a copy of the License at
|
|
16
|
+
*
|
|
17
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
20
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
+
* See the License for the specific language governing permissions and
|
|
23
|
+
* limitations under the License.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
class AndroidDispatcher extends _dispatcher.Dispatcher {
|
|
27
|
+
constructor(scope, android) {
|
|
28
|
+
super(scope, android, 'Android', {});
|
|
29
|
+
this._type_Android = true;
|
|
30
|
+
}
|
|
31
|
+
async devices(params) {
|
|
32
|
+
const devices = await this._object.devices(params);
|
|
33
|
+
return {
|
|
34
|
+
devices: devices.map(d => AndroidDeviceDispatcher.from(this, d))
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async setDefaultTimeoutNoReply(params) {
|
|
38
|
+
this._object.setDefaultTimeout(params.timeout);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.AndroidDispatcher = AndroidDispatcher;
|
|
42
|
+
class AndroidDeviceDispatcher extends _dispatcher.Dispatcher {
|
|
43
|
+
static from(scope, device) {
|
|
44
|
+
const result = (0, _dispatcher.existingDispatcher)(device);
|
|
45
|
+
return result || new AndroidDeviceDispatcher(scope, device);
|
|
46
|
+
}
|
|
47
|
+
constructor(scope, device) {
|
|
48
|
+
super(scope, device, 'AndroidDevice', {
|
|
49
|
+
model: device.model,
|
|
50
|
+
serial: device.serial
|
|
51
|
+
});
|
|
52
|
+
this._type_EventTarget = true;
|
|
53
|
+
this._type_AndroidDevice = true;
|
|
54
|
+
for (const webView of device.webViews()) this._dispatchEvent('webViewAdded', {
|
|
55
|
+
webView
|
|
56
|
+
});
|
|
57
|
+
this.addObjectListener(_android.AndroidDevice.Events.WebViewAdded, webView => this._dispatchEvent('webViewAdded', {
|
|
58
|
+
webView
|
|
59
|
+
}));
|
|
60
|
+
this.addObjectListener(_android.AndroidDevice.Events.WebViewRemoved, socketName => this._dispatchEvent('webViewRemoved', {
|
|
61
|
+
socketName
|
|
62
|
+
}));
|
|
63
|
+
this.addObjectListener(_android.AndroidDevice.Events.Close, socketName => this._dispatchEvent('close'));
|
|
64
|
+
}
|
|
65
|
+
async wait(params) {
|
|
66
|
+
await this._object.send('wait', params);
|
|
67
|
+
}
|
|
68
|
+
async fill(params) {
|
|
69
|
+
await this._object.send('click', {
|
|
70
|
+
selector: params.selector
|
|
71
|
+
});
|
|
72
|
+
await this._object.send('fill', params);
|
|
73
|
+
}
|
|
74
|
+
async tap(params) {
|
|
75
|
+
await this._object.send('click', params);
|
|
76
|
+
}
|
|
77
|
+
async drag(params) {
|
|
78
|
+
await this._object.send('drag', params);
|
|
79
|
+
}
|
|
80
|
+
async fling(params) {
|
|
81
|
+
await this._object.send('fling', params);
|
|
82
|
+
}
|
|
83
|
+
async longTap(params) {
|
|
84
|
+
await this._object.send('longClick', params);
|
|
85
|
+
}
|
|
86
|
+
async pinchClose(params) {
|
|
87
|
+
await this._object.send('pinchClose', params);
|
|
88
|
+
}
|
|
89
|
+
async pinchOpen(params) {
|
|
90
|
+
await this._object.send('pinchOpen', params);
|
|
91
|
+
}
|
|
92
|
+
async scroll(params) {
|
|
93
|
+
await this._object.send('scroll', params);
|
|
94
|
+
}
|
|
95
|
+
async swipe(params) {
|
|
96
|
+
await this._object.send('swipe', params);
|
|
97
|
+
}
|
|
98
|
+
async info(params) {
|
|
99
|
+
return {
|
|
100
|
+
info: await this._object.send('info', params)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async inputType(params) {
|
|
104
|
+
const text = params.text;
|
|
105
|
+
const keyCodes = [];
|
|
106
|
+
for (let i = 0; i < text.length; ++i) {
|
|
107
|
+
const code = keyMap.get(text[i].toUpperCase());
|
|
108
|
+
if (code === undefined) throw new Error('No mapping for ' + text[i] + ' found');
|
|
109
|
+
keyCodes.push(code);
|
|
110
|
+
}
|
|
111
|
+
await Promise.all(keyCodes.map(keyCode => this._object.send('inputPress', {
|
|
112
|
+
keyCode
|
|
113
|
+
})));
|
|
114
|
+
}
|
|
115
|
+
async inputPress(params) {
|
|
116
|
+
if (!keyMap.has(params.key)) throw new Error('Unknown key: ' + params.key);
|
|
117
|
+
await this._object.send('inputPress', {
|
|
118
|
+
keyCode: keyMap.get(params.key)
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
async inputTap(params) {
|
|
122
|
+
await this._object.send('inputClick', params);
|
|
123
|
+
}
|
|
124
|
+
async inputSwipe(params) {
|
|
125
|
+
await this._object.send('inputSwipe', params);
|
|
126
|
+
}
|
|
127
|
+
async inputDrag(params) {
|
|
128
|
+
await this._object.send('inputDrag', params);
|
|
129
|
+
}
|
|
130
|
+
async screenshot(params) {
|
|
131
|
+
return {
|
|
132
|
+
binary: await this._object.screenshot()
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
async shell(params) {
|
|
136
|
+
return {
|
|
137
|
+
result: await this._object.shell(params.command)
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
async open(params, metadata) {
|
|
141
|
+
const socket = await this._object.open(params.command);
|
|
142
|
+
return {
|
|
143
|
+
socket: new AndroidSocketDispatcher(this, socket)
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
async installApk(params) {
|
|
147
|
+
await this._object.installApk(params.file, {
|
|
148
|
+
args: params.args
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
async push(params) {
|
|
152
|
+
await this._object.push(params.file, params.path, params.mode);
|
|
153
|
+
}
|
|
154
|
+
async launchBrowser(params) {
|
|
155
|
+
const context = await this._object.launchBrowser(params.pkg, params);
|
|
156
|
+
return {
|
|
157
|
+
context: new _browserContextDispatcher.BrowserContextDispatcher(this, context)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
async close(params) {
|
|
161
|
+
await this._object.close();
|
|
162
|
+
}
|
|
163
|
+
async setDefaultTimeoutNoReply(params) {
|
|
164
|
+
this._object.setDefaultTimeout(params.timeout);
|
|
165
|
+
}
|
|
166
|
+
async connectToWebView(params) {
|
|
167
|
+
return {
|
|
168
|
+
context: new _browserContextDispatcher.BrowserContextDispatcher(this, await this._object.connectToWebView(params.socketName))
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.AndroidDeviceDispatcher = AndroidDeviceDispatcher;
|
|
173
|
+
class AndroidSocketDispatcher extends _dispatcher.Dispatcher {
|
|
174
|
+
constructor(scope, socket) {
|
|
175
|
+
super(scope, socket, 'AndroidSocket', {});
|
|
176
|
+
this._type_AndroidSocket = true;
|
|
177
|
+
this.addObjectListener('data', data => this._dispatchEvent('data', {
|
|
178
|
+
data
|
|
179
|
+
}));
|
|
180
|
+
this.addObjectListener('close', () => {
|
|
181
|
+
this._dispatchEvent('close');
|
|
182
|
+
this._dispose();
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
async write(params, metadata) {
|
|
186
|
+
await this._object.write(params.data);
|
|
187
|
+
}
|
|
188
|
+
async close(params, metadata) {
|
|
189
|
+
this._object.close();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.AndroidSocketDispatcher = AndroidSocketDispatcher;
|
|
193
|
+
const keyMap = new Map([['Unknown', 0], ['SoftLeft', 1], ['SoftRight', 2], ['Home', 3], ['Back', 4], ['Call', 5], ['EndCall', 6], ['0', 7], ['1', 8], ['2', 9], ['3', 10], ['4', 11], ['5', 12], ['6', 13], ['7', 14], ['8', 15], ['9', 16], ['Star', 17], ['*', 17], ['Pound', 18], ['#', 18], ['DialUp', 19], ['DialDown', 20], ['DialLeft', 21], ['DialRight', 22], ['DialCenter', 23], ['VolumeUp', 24], ['VolumeDown', 25], ['Power', 26], ['Camera', 27], ['Clear', 28], ['A', 29], ['B', 30], ['C', 31], ['D', 32], ['E', 33], ['F', 34], ['G', 35], ['H', 36], ['I', 37], ['J', 38], ['K', 39], ['L', 40], ['M', 41], ['N', 42], ['O', 43], ['P', 44], ['Q', 45], ['R', 46], ['S', 47], ['T', 48], ['U', 49], ['V', 50], ['W', 51], ['X', 52], ['Y', 53], ['Z', 54], ['Comma', 55], [',', 55], ['Period', 56], ['.', 56], ['AltLeft', 57], ['AltRight', 58], ['ShiftLeft', 59], ['ShiftRight', 60], ['Tab', 61], ['\t', 61], ['Space', 62], [' ', 62], ['Sym', 63], ['Explorer', 64], ['Envelop', 65], ['Enter', 66], ['Del', 67], ['Grave', 68], ['Minus', 69], ['-', 69], ['Equals', 70], ['=', 70], ['LeftBracket', 71], ['(', 71], ['RightBracket', 72], [')', 72], ['Backslash', 73], ['\\', 73], ['Semicolon', 74], [';', 74], ['Apostrophe', 75], ['`', 75], ['Slash', 76], ['/', 76], ['At', 77], ['@', 77], ['Num', 78], ['HeadsetHook', 79], ['Focus', 80], ['Plus', 81], ['Menu', 82], ['Notification', 83], ['Search', 84], ['ChannelUp', 166], ['ChannelDown', 167], ['AppSwitch', 187], ['Assist', 219], ['Cut', 277], ['Copy', 278], ['Paste', 279]]);
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ArtifactDispatcher = void 0;
|
|
7
|
+
var _dispatcher = require("./dispatcher");
|
|
8
|
+
var _streamDispatcher = require("./streamDispatcher");
|
|
9
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
10
|
+
var _fileUtils = require("../../utils/fileUtils");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
/**
|
|
13
|
+
* Copyright (c) Microsoft Corporation.
|
|
14
|
+
*
|
|
15
|
+
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
16
|
+
* you may not use this file except in compliance with the License.
|
|
17
|
+
* You may obtain a copy of the License at
|
|
18
|
+
*
|
|
19
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
20
|
+
*
|
|
21
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
22
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24
|
+
* See the License for the specific language governing permissions and
|
|
25
|
+
* limitations under the License.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
class ArtifactDispatcher extends _dispatcher.Dispatcher {
|
|
29
|
+
static from(parentScope, artifact) {
|
|
30
|
+
return ArtifactDispatcher.fromNullable(parentScope, artifact);
|
|
31
|
+
}
|
|
32
|
+
static fromNullable(parentScope, artifact) {
|
|
33
|
+
if (!artifact) return undefined;
|
|
34
|
+
const result = (0, _dispatcher.existingDispatcher)(artifact);
|
|
35
|
+
return result || new ArtifactDispatcher(parentScope, artifact);
|
|
36
|
+
}
|
|
37
|
+
constructor(scope, artifact) {
|
|
38
|
+
super(scope, artifact, 'Artifact', {
|
|
39
|
+
absolutePath: artifact.localPath()
|
|
40
|
+
});
|
|
41
|
+
this._type_Artifact = true;
|
|
42
|
+
}
|
|
43
|
+
async pathAfterFinished() {
|
|
44
|
+
const path = await this._object.localPathAfterFinished();
|
|
45
|
+
return {
|
|
46
|
+
value: path
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
async saveAs(params) {
|
|
50
|
+
return await new Promise((resolve, reject) => {
|
|
51
|
+
this._object.saveAs(async (localPath, error) => {
|
|
52
|
+
if (error) {
|
|
53
|
+
reject(error);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
await (0, _fileUtils.mkdirIfNeeded)(params.path);
|
|
58
|
+
await _fs.default.promises.copyFile(localPath, params.path);
|
|
59
|
+
resolve();
|
|
60
|
+
} catch (e) {
|
|
61
|
+
reject(e);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async saveAsStream() {
|
|
67
|
+
return await new Promise((resolve, reject) => {
|
|
68
|
+
this._object.saveAs(async (localPath, error) => {
|
|
69
|
+
if (error) {
|
|
70
|
+
reject(error);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const readable = _fs.default.createReadStream(localPath, {
|
|
75
|
+
highWaterMark: 1024 * 1024
|
|
76
|
+
});
|
|
77
|
+
const stream = new _streamDispatcher.StreamDispatcher(this, readable);
|
|
78
|
+
// Resolve with a stream, so that client starts saving the data.
|
|
79
|
+
resolve({
|
|
80
|
+
stream
|
|
81
|
+
});
|
|
82
|
+
// Block the Artifact until the stream is consumed.
|
|
83
|
+
await new Promise(resolve => {
|
|
84
|
+
readable.on('close', resolve);
|
|
85
|
+
readable.on('end', resolve);
|
|
86
|
+
readable.on('error', resolve);
|
|
87
|
+
});
|
|
88
|
+
} catch (e) {
|
|
89
|
+
reject(e);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
async stream() {
|
|
95
|
+
const fileName = await this._object.localPathAfterFinished();
|
|
96
|
+
const readable = _fs.default.createReadStream(fileName, {
|
|
97
|
+
highWaterMark: 1024 * 1024
|
|
98
|
+
});
|
|
99
|
+
return {
|
|
100
|
+
stream: new _streamDispatcher.StreamDispatcher(this, readable)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async failure() {
|
|
104
|
+
const error = await this._object.failureError();
|
|
105
|
+
return {
|
|
106
|
+
error: error || undefined
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
async cancel() {
|
|
110
|
+
await this._object.cancel();
|
|
111
|
+
}
|
|
112
|
+
async delete(_, metadata) {
|
|
113
|
+
metadata.potentiallyClosesScope = true;
|
|
114
|
+
await this._object.delete();
|
|
115
|
+
this._dispose();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.ArtifactDispatcher = ArtifactDispatcher;
|