@checkly/playwright-core 1.51.17-beta.1 → 1.54.2-beta.0
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/ThirdPartyNotices.txt +65 -123
- package/browsers.json +16 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +47 -50
- package/lib/browserServerImpl.js +89 -69
- package/lib/checkly/escapeRegExp.js +23 -27
- package/lib/checkly/fetch.js +64 -46
- package/lib/checkly/secretsFilter.js +49 -36
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +400 -359
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +151 -242
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +96 -71
- package/lib/client/browserContext.js +314 -345
- package/lib/client/browserType.js +103 -127
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +90 -113
- package/lib/client/clientHelper.js +48 -39
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +188 -214
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +80 -77
- package/lib/client/elementHandle.js +120 -159
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +166 -190
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +207 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +42 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -29
- package/lib/client/locator.js +145 -237
- package/lib/client/network.js +282 -307
- package/lib/client/page.js +269 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -76
- package/lib/client/selectors.js +45 -63
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +55 -41
- package/lib/client/tracing.js +49 -96
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +43 -56
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +26 -6
- package/lib/generated/consoleApiSource.js +26 -6
- package/lib/generated/injectedScriptSource.js +26 -6
- package/lib/generated/pollingRecorderSource.js +26 -6
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +26 -6
- package/lib/generated/webSocketMockSource.js +333 -5
- package/lib/inProcessFactory.js +51 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +51 -46
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2807 -2739
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +88 -242
- package/lib/remote/playwrightServer.js +305 -92
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +251 -241
- package/lib/server/android/backendAdb.js +87 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +297 -158
- package/lib/server/bidi/bidiChromium.js +119 -89
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +129 -113
- package/lib/server/bidi/bidiFirefox.js +86 -76
- package/lib/server/bidi/bidiInput.js +106 -117
- package/lib/server/bidi/bidiNetworkManager.js +142 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +260 -260
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
- package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +93 -95
- package/lib/server/browserContext.js +419 -429
- package/lib/server/browserType.js +186 -216
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +235 -203
- package/lib/server/chromium/chromiumSwitches.js +100 -67
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +310 -292
- package/lib/server/chromium/crConnection.js +95 -121
- package/lib/server/chromium/crCoverage.js +121 -131
- package/lib/server/chromium/crDevTools.js +60 -51
- package/lib/server/chromium/crDragDrop.js +68 -84
- package/lib/server/chromium/crExecutionContext.js +89 -83
- package/lib/server/chromium/crInput.js +118 -113
- package/lib/server/chromium/crNetworkManager.js +274 -375
- package/lib/server/chromium/crPage.js +536 -593
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +84 -73
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +66 -99
- package/lib/server/clock.js +107 -83
- package/lib/server/codegen/csharp.js +192 -162
- package/lib/server/codegen/java.js +156 -129
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -126
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +108 -86
- package/lib/server/debugController.js +147 -151
- package/lib/server/debugger.js +86 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +238 -128
- package/lib/server/dialog.js +84 -39
- package/lib/server/dispatchers/androidDispatcher.js +257 -148
- package/lib/server/dispatchers/artifactDispatcher.js +79 -79
- package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
- package/lib/server/dispatchers/browserDispatcher.js +96 -148
- package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
- package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
- package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
- package/lib/server/dispatchers/dialogDispatcher.js +34 -31
- package/lib/server/dispatchers/dispatcher.js +208 -248
- package/lib/server/dispatchers/electronDispatcher.js +66 -70
- package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
- package/lib/server/dispatchers/frameDispatcher.js +211 -272
- package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
- package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
- package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
- package/lib/server/dispatchers/networkDispatchers.js +117 -128
- package/lib/server/dispatchers/pageDispatcher.js +256 -248
- package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
- package/lib/server/dispatchers/streamDispatcher.js +52 -48
- package/lib/server/dispatchers/tracingDispatcher.js +47 -52
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
- package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
- package/lib/server/dom.js +485 -582
- package/lib/server/download.js +47 -37
- package/lib/server/electron/electron.js +216 -243
- package/lib/server/electron/loader.js +9 -37
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +317 -360
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -60
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +268 -305
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +92 -73
- package/lib/server/firefox/ffInput.js +82 -84
- package/lib/server/firefox/ffNetworkManager.js +137 -114
- package/lib/server/firefox/ffPage.js +261 -293
- package/lib/server/firefox/firefox.js +80 -72
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +98 -114
- package/lib/server/frames.js +845 -1055
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +290 -223
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +55 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +151 -189
- package/lib/server/instrumentation.js +57 -44
- package/lib/server/javascript.js +133 -134
- package/lib/server/launchApp.js +113 -75
- package/lib/server/localUtils.js +150 -142
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +299 -303
- package/lib/server/page.js +513 -544
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +58 -67
- package/lib/server/progress.js +137 -68
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/recorderApp.js +341 -176
- package/lib/server/recorder/recorderInTraceViewer.js +65 -94
- package/lib/server/recorder/recorderRunner.js +93 -116
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +104 -47
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +395 -275
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +930 -803
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +160 -191
- package/lib/server/selectors.js +90 -51
- package/lib/server/socksClientCertificatesInterceptor.js +171 -186
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/trace/recorder/snapshotter.js +76 -102
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +354 -362
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +160 -147
- package/lib/server/transport.js +119 -134
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +36 -32
- package/lib/server/utils/debugLogger.js +77 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +141 -126
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +152 -96
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +68 -75
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +77 -61
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +193 -184
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +85 -70
- package/lib/server/webkit/wkInput.js +97 -95
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +568 -667
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +79 -79
- package/lib/utils/expectUtils.js +31 -26
- package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +120 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +358 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +46 -39
- package/lib/utils/isomorphic/mimeType.js +447 -25
- package/lib/utils/isomorphic/multimap.js +34 -27
- package/lib/utils/isomorphic/protocolFormatter.js +68 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/recorderUtils.js +140 -181
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +182 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +98 -112
- package/lib/utils/isomorphic/time.js +46 -22
- package/lib/utils/isomorphic/timeoutRunner.js +53 -53
- package/lib/utils/isomorphic/traceUtils.js +37 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +113 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +101 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +1267 -1057
- package/types/types.d.ts +131 -29
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/compare.js +0 -108
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/image_tools/stats.js +0 -102
- package/lib/protocol/debug.js +0 -27
- package/lib/protocol/transport.js +0 -82
- package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/server/recorder/contextRecorder.js +0 -290
- package/lib/server/recorder/recorderCollection.js +0 -104
- package/lib/server/recorder/recorderFrontend.js +0 -5
- package/lib/server/storageScript.js +0 -160
- package/lib/server/timeoutSettings.js +0 -74
- package/lib/third_party/diff_match_patch.js +0 -2222
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -171
- package/lib/utils/crypto.js +0 -174
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -210
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -133
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -121
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -62
- package/lib/vite/htmlReport/index.html +0 -69
- package/lib/vite/recorder/assets/codeMirrorModule-DrMbgOIo.js +0 -16684
- package/lib/vite/recorder/assets/codeMirrorModule-DuST8d_k.css +0 -344
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-5NM3V7eb.css +0 -2524
- package/lib/vite/recorder/assets/index-CT-scFHn.js +0 -16848
- package/lib/vite/recorder/index.html +0 -29
- package/lib/vite/recorder/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-CB-2okZ8.js +0 -16684
- package/lib/vite/traceViewer/assets/defaultSettingsView-CBiB4avC.js +0 -217
- package/lib/vite/traceViewer/assets/inspectorTab-CwgfffWb.js +0 -25143
- package/lib/vite/traceViewer/assets/workbench-CWZselvp.js +0 -2470
- package/lib/vite/traceViewer/assets/xtermModule-Es_gt_u7.js +0 -5994
- package/lib/vite/traceViewer/codeMirrorModule.DuST8d_k.css +0 -344
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.Dp3b_92q.css +0 -41
- package/lib/vite/traceViewer/embedded.BeldSa2G.css +0 -68
- package/lib/vite/traceViewer/embedded.gzudoghF.js +0 -106
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/index.DilotR1h.js +0 -314
- package/lib/vite/traceViewer/index.QewjJ85u.css +0 -131
- package/lib/vite/traceViewer/index.html +0 -47
- package/lib/vite/traceViewer/inspectorTab.DnGm18kV.css +0 -3178
- package/lib/vite/traceViewer/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/recorder.DLgqV9db.css +0 -15
- package/lib/vite/traceViewer/recorder.DVrkq3Um.js +0 -551
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/snapshot.html +0 -21
- package/lib/vite/traceViewer/sw.bundle.js +0 -3
- package/lib/vite/traceViewer/uiMode.C9_OcpPU.js +0 -1756
- package/lib/vite/traceViewer/uiMode.c5ORgcrX.css +0 -1424
- package/lib/vite/traceViewer/uiMode.html +0 -21
- package/lib/vite/traceViewer/workbench.xUZSA8PY.css +0 -787
- package/lib/vite/traceViewer/xtermModule.EsaqrrTX.css +0 -209
package/lib/client/fetch.js
CHANGED
|
@@ -1,175 +1,187 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty
|
|
4
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var fetch_exports = {};
|
|
30
|
+
__export(fetch_exports, {
|
|
31
|
+
APIRequest: () => APIRequest,
|
|
32
|
+
APIRequestContext: () => APIRequestContext,
|
|
33
|
+
APIResponse: () => APIResponse
|
|
5
34
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
21
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
22
|
-
/**
|
|
23
|
-
* Copyright (c) Microsoft Corporation.
|
|
24
|
-
*
|
|
25
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
26
|
-
* you may not use this file except in compliance with the License.
|
|
27
|
-
* You may obtain a copy of the License at
|
|
28
|
-
*
|
|
29
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
30
|
-
*
|
|
31
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
32
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
33
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
34
|
-
* See the License for the specific language governing permissions and
|
|
35
|
-
* limitations under the License.
|
|
36
|
-
*/
|
|
37
|
-
|
|
35
|
+
module.exports = __toCommonJS(fetch_exports);
|
|
36
|
+
var import_path = __toESM(require("path"));
|
|
37
|
+
var fsPromise = __toESM(require("node:fs/promises"));
|
|
38
|
+
var import_browserContext = require("./browserContext");
|
|
39
|
+
var import_channelOwner = require("./channelOwner");
|
|
40
|
+
var import_errors = require("./errors");
|
|
41
|
+
var import_network = require("./network");
|
|
42
|
+
var import_tracing = require("./tracing");
|
|
43
|
+
var import_assert = require("../utils/isomorphic/assert");
|
|
44
|
+
var import_fileUtils = require("./fileUtils");
|
|
45
|
+
var import_headers = require("../utils/isomorphic/headers");
|
|
46
|
+
var import_rtti = require("../utils/isomorphic/rtti");
|
|
47
|
+
var import_fetch = require("../checkly/fetch");
|
|
48
|
+
var import_timeoutSettings = require("./timeoutSettings");
|
|
38
49
|
class APIRequest {
|
|
39
50
|
constructor(playwright) {
|
|
40
|
-
this.
|
|
41
|
-
this._contexts = new Set();
|
|
51
|
+
this._contexts = /* @__PURE__ */ new Set();
|
|
42
52
|
this._playwright = playwright;
|
|
43
53
|
}
|
|
44
54
|
async newContext(options = {}) {
|
|
45
|
-
var _this$_playwright$_de, _this$_playwright$_de2;
|
|
46
55
|
options = {
|
|
47
56
|
...this._playwright._defaultContextOptions,
|
|
48
|
-
timeout: this._playwright._defaultContextTimeout,
|
|
49
57
|
...options
|
|
50
58
|
};
|
|
51
|
-
const storageState = typeof options.storageState ===
|
|
59
|
+
const storageState = typeof options.storageState === "string" ? JSON.parse(await this._playwright._platform.fs().promises.readFile(options.storageState, "utf8")) : options.storageState;
|
|
52
60
|
const context = APIRequestContext.from((await this._playwright._channel.newRequest({
|
|
53
61
|
...options,
|
|
54
|
-
extraHTTPHeaders: options.extraHTTPHeaders ? (0,
|
|
62
|
+
extraHTTPHeaders: options.extraHTTPHeaders ? (0, import_headers.headersObjectToArray)(options.extraHTTPHeaders) : void 0,
|
|
55
63
|
storageState,
|
|
56
|
-
tracesDir:
|
|
64
|
+
tracesDir: this._playwright._defaultLaunchOptions?.tracesDir,
|
|
57
65
|
// We do not expose tracesDir in the API, so do not allow options to accidentally override it.
|
|
58
|
-
clientCertificates: await (0,
|
|
66
|
+
clientCertificates: await (0, import_browserContext.toClientCertificatesProtocol)(this._playwright._platform, options.clientCertificates)
|
|
59
67
|
})).request);
|
|
60
68
|
this._contexts.add(context);
|
|
61
69
|
context._request = this;
|
|
62
|
-
context.
|
|
70
|
+
context._timeoutSettings.setDefaultTimeout(options.timeout ?? this._playwright._defaultContextTimeout);
|
|
71
|
+
context._tracing._tracesDir = this._playwright._defaultLaunchOptions?.tracesDir;
|
|
63
72
|
await context._instrumentation.runAfterCreateRequestContext(context);
|
|
64
73
|
return context;
|
|
65
74
|
}
|
|
66
75
|
}
|
|
67
|
-
|
|
68
|
-
class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
76
|
+
class APIRequestContext extends import_channelOwner.ChannelOwner {
|
|
69
77
|
static from(channel) {
|
|
70
78
|
return channel._object;
|
|
71
79
|
}
|
|
72
80
|
constructor(parent, type, guid, initializer) {
|
|
73
81
|
super(parent, type, guid, initializer);
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
76
|
-
this._closeReason = void 0;
|
|
77
|
-
this._tracing = _tracing.Tracing.from(initializer.tracing);
|
|
82
|
+
this._tracing = import_tracing.Tracing.from(initializer.tracing);
|
|
83
|
+
this._timeoutSettings = new import_timeoutSettings.TimeoutSettings(this._platform);
|
|
78
84
|
}
|
|
79
85
|
async [Symbol.asyncDispose]() {
|
|
80
86
|
await this.dispose();
|
|
81
87
|
}
|
|
82
88
|
async dispose(options = {}) {
|
|
83
|
-
var _this$_request;
|
|
84
89
|
this._closeReason = options.reason;
|
|
85
90
|
await this._instrumentation.runBeforeCloseRequestContext(this);
|
|
86
91
|
try {
|
|
87
92
|
await this._channel.dispose(options);
|
|
88
93
|
} catch (e) {
|
|
89
|
-
if ((0,
|
|
94
|
+
if ((0, import_errors.isTargetClosedError)(e))
|
|
95
|
+
return;
|
|
90
96
|
throw e;
|
|
91
97
|
}
|
|
92
98
|
this._tracing._resetStackCounter();
|
|
93
|
-
|
|
99
|
+
this._request?._contexts.delete(this);
|
|
94
100
|
}
|
|
95
101
|
async delete(url, options) {
|
|
96
102
|
return await this.fetch(url, {
|
|
97
103
|
...options,
|
|
98
|
-
method:
|
|
104
|
+
method: "DELETE"
|
|
99
105
|
});
|
|
100
106
|
}
|
|
101
107
|
async head(url, options) {
|
|
102
108
|
return await this.fetch(url, {
|
|
103
109
|
...options,
|
|
104
|
-
method:
|
|
110
|
+
method: "HEAD"
|
|
105
111
|
});
|
|
106
112
|
}
|
|
107
113
|
async get(url, options) {
|
|
108
114
|
return await this.fetch(url, {
|
|
109
115
|
...options,
|
|
110
|
-
method:
|
|
116
|
+
method: "GET"
|
|
111
117
|
});
|
|
112
118
|
}
|
|
113
119
|
async patch(url, options) {
|
|
114
120
|
return await this.fetch(url, {
|
|
115
121
|
...options,
|
|
116
|
-
method:
|
|
122
|
+
method: "PATCH"
|
|
117
123
|
});
|
|
118
124
|
}
|
|
119
125
|
async post(url, options) {
|
|
120
126
|
return await this.fetch(url, {
|
|
121
127
|
...options,
|
|
122
|
-
method:
|
|
128
|
+
method: "POST"
|
|
123
129
|
});
|
|
124
130
|
}
|
|
125
131
|
async put(url, options) {
|
|
126
132
|
return await this.fetch(url, {
|
|
127
133
|
...options,
|
|
128
|
-
method:
|
|
134
|
+
method: "PUT"
|
|
129
135
|
});
|
|
130
136
|
}
|
|
131
137
|
async fetch(urlOrRequest, options = {}) {
|
|
132
|
-
const url = (0,
|
|
133
|
-
const request = (0,
|
|
134
|
-
return await this._innerFetch({
|
|
135
|
-
url,
|
|
136
|
-
request,
|
|
137
|
-
...options
|
|
138
|
-
});
|
|
138
|
+
const url = (0, import_rtti.isString)(urlOrRequest) ? urlOrRequest : void 0;
|
|
139
|
+
const request = (0, import_rtti.isString)(urlOrRequest) ? void 0 : urlOrRequest;
|
|
140
|
+
return await this._innerFetch({ url, request, ...options });
|
|
139
141
|
}
|
|
142
|
+
// [Checkly] Function to count API calls made by Playwright.
|
|
140
143
|
async writeApiCallToDisk(options = {}) {
|
|
141
144
|
try {
|
|
142
|
-
await
|
|
145
|
+
await fsPromise.writeFile(
|
|
146
|
+
// eslint-disable-next-line no-restricted-globals
|
|
147
|
+
import_path.default.join(process.env.TEMP_DIR, "apiCall-" + (Math.random() + 1).toString(36).substring(7) + ".txt"),
|
|
148
|
+
options.url !== void 0 ? options.url : options.request.url()
|
|
149
|
+
);
|
|
143
150
|
} catch (e) {
|
|
144
|
-
console.log(
|
|
151
|
+
console.log("Error reporting API call", e?.message);
|
|
145
152
|
}
|
|
146
153
|
}
|
|
147
154
|
async _innerFetch(options = {}) {
|
|
148
|
-
this.writeApiCallToDisk(options);
|
|
155
|
+
await this.writeApiCallToDisk(options);
|
|
149
156
|
return await this._wrapApiCall(async () => {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
(0,
|
|
153
|
-
(0,
|
|
154
|
-
(0,
|
|
155
|
-
(0,
|
|
156
|
-
const url = options.url !==
|
|
157
|
-
const method = options.method ||
|
|
158
|
-
let encodedParams =
|
|
159
|
-
if (typeof options.params ===
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
if (this._closeReason)
|
|
158
|
+
throw new import_errors.TargetClosedError(this._closeReason);
|
|
159
|
+
(0, import_assert.assert)(options.request || typeof options.url === "string", "First argument must be either URL string or Request");
|
|
160
|
+
(0, import_assert.assert)((options.data === void 0 ? 0 : 1) + (options.form === void 0 ? 0 : 1) + (options.multipart === void 0 ? 0 : 1) <= 1, `Only one of 'data', 'form' or 'multipart' can be specified`);
|
|
161
|
+
(0, import_assert.assert)(options.maxRedirects === void 0 || options.maxRedirects >= 0, `'maxRedirects' must be greater than or equal to '0'`);
|
|
162
|
+
(0, import_assert.assert)(options.maxRetries === void 0 || options.maxRetries >= 0, `'maxRetries' must be greater than or equal to '0'`);
|
|
163
|
+
const url = options.url !== void 0 ? options.url : options.request.url();
|
|
164
|
+
const method = options.method || options.request?.method();
|
|
165
|
+
let encodedParams = void 0;
|
|
166
|
+
if (typeof options.params === "string")
|
|
167
|
+
encodedParams = options.params;
|
|
168
|
+
else if (options.params instanceof URLSearchParams)
|
|
169
|
+
encodedParams = options.params.toString();
|
|
170
|
+
const headersObj = options.headers || options.request?.headers();
|
|
171
|
+
const headers = headersObj ? (0, import_headers.headersObjectToArray)(headersObj) : void 0;
|
|
163
172
|
let jsonData;
|
|
164
173
|
let formData;
|
|
165
174
|
let multipartData;
|
|
166
175
|
let postDataBuffer;
|
|
167
|
-
if (options.data !==
|
|
168
|
-
if ((0,
|
|
169
|
-
if (isJsonContentType(headers))
|
|
176
|
+
if (options.data !== void 0) {
|
|
177
|
+
if ((0, import_rtti.isString)(options.data)) {
|
|
178
|
+
if (isJsonContentType(headers))
|
|
179
|
+
jsonData = isJsonParsable(options.data) ? options.data : JSON.stringify(options.data);
|
|
180
|
+
else
|
|
181
|
+
postDataBuffer = Buffer.from(options.data, "utf8");
|
|
170
182
|
} else if (Buffer.isBuffer(options.data)) {
|
|
171
183
|
postDataBuffer = options.data;
|
|
172
|
-
} else if (typeof options.data ===
|
|
184
|
+
} else if (typeof options.data === "object" || typeof options.data === "number" || typeof options.data === "boolean") {
|
|
173
185
|
jsonData = JSON.stringify(options.data);
|
|
174
186
|
} else {
|
|
175
187
|
throw new Error(`Unexpected 'data' type`);
|
|
@@ -178,11 +190,9 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
|
178
190
|
if (globalThis.FormData && options.form instanceof FormData) {
|
|
179
191
|
formData = [];
|
|
180
192
|
for (const [name, value] of options.form.entries()) {
|
|
181
|
-
if (typeof value !==
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
value
|
|
185
|
-
});
|
|
193
|
+
if (typeof value !== "string")
|
|
194
|
+
throw new Error(`Expected string for options.form["${name}"], found File. Please use options.multipart instead.`);
|
|
195
|
+
formData.push({ name, value });
|
|
186
196
|
}
|
|
187
197
|
} else {
|
|
188
198
|
formData = objectToArray(options.form);
|
|
@@ -192,35 +202,30 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
|
192
202
|
if (globalThis.FormData && options.multipart instanceof FormData) {
|
|
193
203
|
const form = options.multipart;
|
|
194
204
|
for (const [name, value] of form.entries()) {
|
|
195
|
-
if ((0,
|
|
196
|
-
multipartData.push({
|
|
197
|
-
name,
|
|
198
|
-
value
|
|
199
|
-
});
|
|
205
|
+
if ((0, import_rtti.isString)(value)) {
|
|
206
|
+
multipartData.push({ name, value });
|
|
200
207
|
} else {
|
|
201
208
|
const file = {
|
|
202
209
|
name: value.name,
|
|
203
210
|
mimeType: value.type,
|
|
204
211
|
buffer: Buffer.from(await value.arrayBuffer())
|
|
205
212
|
};
|
|
206
|
-
multipartData.push({
|
|
207
|
-
name,
|
|
208
|
-
file
|
|
209
|
-
});
|
|
213
|
+
multipartData.push({ name, file });
|
|
210
214
|
}
|
|
211
215
|
}
|
|
212
216
|
} else {
|
|
213
|
-
|
|
214
|
-
|
|
217
|
+
for (const [name, value] of Object.entries(options.multipart))
|
|
218
|
+
multipartData.push(await toFormField(this._platform, name, value));
|
|
215
219
|
}
|
|
216
220
|
}
|
|
217
|
-
if (postDataBuffer ===
|
|
221
|
+
if (postDataBuffer === void 0 && jsonData === void 0 && formData === void 0 && multipartData === void 0)
|
|
222
|
+
postDataBuffer = options.request?.postDataBuffer() || void 0;
|
|
218
223
|
const fixtures = {
|
|
219
224
|
__testHookLookup: options.__testHookLookup
|
|
220
225
|
};
|
|
221
226
|
const result = await this._channel.fetch({
|
|
222
227
|
url,
|
|
223
|
-
params: typeof options.params ===
|
|
228
|
+
params: typeof options.params === "object" ? objectToArray(options.params) : void 0,
|
|
224
229
|
encodedParams,
|
|
225
230
|
method,
|
|
226
231
|
headers,
|
|
@@ -228,69 +233,62 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
|
228
233
|
jsonData,
|
|
229
234
|
formData,
|
|
230
235
|
multipartData,
|
|
231
|
-
timeout:
|
|
236
|
+
timeout: this._timeoutSettings.timeout(options),
|
|
232
237
|
failOnStatusCode: options.failOnStatusCode,
|
|
233
238
|
ignoreHTTPSErrors: options.ignoreHTTPSErrors,
|
|
234
239
|
maxRedirects: options.maxRedirects,
|
|
235
240
|
maxRetries: options.maxRetries,
|
|
241
|
+
// [Checkly]
|
|
236
242
|
tokenizedURL: options.tokenizedURL,
|
|
237
|
-
...
|
|
238
|
-
|
|
243
|
+
...(0, import_fetch.getClientCertificates)(options),
|
|
244
|
+
// [/Checkly]
|
|
245
|
+
...fixtures
|
|
239
246
|
});
|
|
240
247
|
return new APIResponse(this, result.response);
|
|
241
248
|
});
|
|
242
249
|
}
|
|
243
250
|
async storageState(options = {}) {
|
|
244
|
-
const state = await this._channel.storageState({
|
|
245
|
-
indexedDB: options.indexedDB
|
|
246
|
-
});
|
|
251
|
+
const state = await this._channel.storageState({ indexedDB: options.indexedDB });
|
|
247
252
|
if (options.path) {
|
|
248
|
-
await (0,
|
|
249
|
-
await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state,
|
|
253
|
+
await (0, import_fileUtils.mkdirIfNeeded)(this._platform, options.path);
|
|
254
|
+
await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state, void 0, 2), "utf8");
|
|
250
255
|
}
|
|
251
256
|
return state;
|
|
252
257
|
}
|
|
253
258
|
}
|
|
254
|
-
exports.APIRequestContext = APIRequestContext;
|
|
255
259
|
async function toFormField(platform, name, value) {
|
|
256
260
|
const typeOfValue = typeof value;
|
|
257
261
|
if (isFilePayload(value)) {
|
|
258
262
|
const payload = value;
|
|
259
|
-
if (!Buffer.isBuffer(payload.buffer))
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
};
|
|
264
|
-
} else if (typeOfValue === 'string' || typeOfValue === 'number' || typeOfValue === 'boolean') {
|
|
265
|
-
return {
|
|
266
|
-
name,
|
|
267
|
-
value: String(value)
|
|
268
|
-
};
|
|
263
|
+
if (!Buffer.isBuffer(payload.buffer))
|
|
264
|
+
throw new Error(`Unexpected buffer type of 'data.${name}'`);
|
|
265
|
+
return { name, file: filePayloadToJson(payload) };
|
|
266
|
+
} else if (typeOfValue === "string" || typeOfValue === "number" || typeOfValue === "boolean") {
|
|
267
|
+
return { name, value: String(value) };
|
|
269
268
|
} else {
|
|
270
|
-
return {
|
|
271
|
-
name,
|
|
272
|
-
file: await readStreamToJson(platform, value)
|
|
273
|
-
};
|
|
269
|
+
return { name, file: await readStreamToJson(platform, value) };
|
|
274
270
|
}
|
|
275
271
|
}
|
|
276
272
|
function isJsonParsable(value) {
|
|
277
|
-
if (typeof value !==
|
|
273
|
+
if (typeof value !== "string")
|
|
274
|
+
return false;
|
|
278
275
|
try {
|
|
279
276
|
JSON.parse(value);
|
|
280
277
|
return true;
|
|
281
278
|
} catch (e) {
|
|
282
|
-
if (e instanceof SyntaxError)
|
|
279
|
+
if (e instanceof SyntaxError)
|
|
280
|
+
return false;
|
|
281
|
+
else
|
|
282
|
+
throw e;
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
285
|
class APIResponse {
|
|
286
286
|
constructor(context, initializer) {
|
|
287
|
-
this._initializer = void 0;
|
|
288
|
-
this._headers = void 0;
|
|
289
|
-
this._request = void 0;
|
|
290
287
|
this._request = context;
|
|
291
288
|
this._initializer = initializer;
|
|
292
|
-
this._headers = new
|
|
293
|
-
if (context._platform.inspectCustom)
|
|
289
|
+
this._headers = new import_network.RawHeaders(this._initializer.headers);
|
|
290
|
+
if (context._platform.inspectCustom)
|
|
291
|
+
this[context._platform.inspectCustom] = () => this._inspect();
|
|
294
292
|
}
|
|
295
293
|
ok() {
|
|
296
294
|
return this._initializer.status >= 200 && this._initializer.status <= 299;
|
|
@@ -310,26 +308,27 @@ class APIResponse {
|
|
|
310
308
|
headersArray() {
|
|
311
309
|
return this._headers.headersArray();
|
|
312
310
|
}
|
|
311
|
+
// [Checkly] Retrieve API requests timings
|
|
313
312
|
timings() {
|
|
314
313
|
return this._initializer.timings;
|
|
315
314
|
}
|
|
316
315
|
async body() {
|
|
317
316
|
return await this._request._wrapApiCall(async () => {
|
|
318
317
|
try {
|
|
319
|
-
const result = await this._request._channel.fetchResponseBody({
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
if (result.binary === undefined) throw new Error('Response has been disposed');
|
|
318
|
+
const result = await this._request._channel.fetchResponseBody({ fetchUid: this._fetchUid() });
|
|
319
|
+
if (result.binary === void 0)
|
|
320
|
+
throw new Error("Response has been disposed");
|
|
323
321
|
return result.binary;
|
|
324
322
|
} catch (e) {
|
|
325
|
-
if ((0,
|
|
323
|
+
if ((0, import_errors.isTargetClosedError)(e))
|
|
324
|
+
throw new Error("Response has been disposed");
|
|
326
325
|
throw e;
|
|
327
326
|
}
|
|
328
|
-
}, true);
|
|
327
|
+
}, { internal: true });
|
|
329
328
|
}
|
|
330
329
|
async text() {
|
|
331
330
|
const content = await this.body();
|
|
332
|
-
return content.toString(
|
|
331
|
+
return content.toString("utf8");
|
|
333
332
|
}
|
|
334
333
|
async json() {
|
|
335
334
|
const content = await this.text();
|
|
@@ -339,16 +338,12 @@ class APIResponse {
|
|
|
339
338
|
await this.dispose();
|
|
340
339
|
}
|
|
341
340
|
async dispose() {
|
|
342
|
-
await this._request._channel.disposeAPIResponse({
|
|
343
|
-
fetchUid: this._fetchUid()
|
|
344
|
-
});
|
|
341
|
+
await this._request._channel.disposeAPIResponse({ fetchUid: this._fetchUid() });
|
|
345
342
|
}
|
|
346
343
|
_inspect() {
|
|
347
|
-
const headers = this.headersArray().map(({
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
}) => ` ${name}: ${value}`);
|
|
351
|
-
return `APIResponse: ${this.status()} ${this.statusText()}\n${headers.join('\n')}`;
|
|
344
|
+
const headers = this.headersArray().map(({ name, value }) => ` ${name}: ${value}`);
|
|
345
|
+
return `APIResponse: ${this.status()} ${this.statusText()}
|
|
346
|
+
${headers.join("\n")}`;
|
|
352
347
|
}
|
|
353
348
|
initializer() {
|
|
354
349
|
return this._initializer;
|
|
@@ -357,15 +352,10 @@ class APIResponse {
|
|
|
357
352
|
return this._initializer.fetchUid;
|
|
358
353
|
}
|
|
359
354
|
async _fetchLog() {
|
|
360
|
-
const {
|
|
361
|
-
log
|
|
362
|
-
} = await this._request._channel.fetchLog({
|
|
363
|
-
fetchUid: this._fetchUid()
|
|
364
|
-
});
|
|
355
|
+
const { log } = await this._request._channel.fetchLog({ fetchUid: this._fetchUid() });
|
|
365
356
|
return log;
|
|
366
357
|
}
|
|
367
358
|
}
|
|
368
|
-
exports.APIResponse = APIResponse;
|
|
369
359
|
function filePayloadToJson(payload) {
|
|
370
360
|
return {
|
|
371
361
|
name: payload.name,
|
|
@@ -376,55 +366,41 @@ function filePayloadToJson(payload) {
|
|
|
376
366
|
async function readStreamToJson(platform, stream) {
|
|
377
367
|
const buffer = await new Promise((resolve, reject) => {
|
|
378
368
|
const chunks = [];
|
|
379
|
-
stream.on(
|
|
380
|
-
stream.on(
|
|
381
|
-
stream.on(
|
|
369
|
+
stream.on("data", (chunk) => chunks.push(chunk));
|
|
370
|
+
stream.on("end", () => resolve(Buffer.concat(chunks)));
|
|
371
|
+
stream.on("error", (err) => reject(err));
|
|
382
372
|
});
|
|
383
|
-
const streamPath = Buffer.isBuffer(stream.path) ? stream.path.toString(
|
|
373
|
+
const streamPath = Buffer.isBuffer(stream.path) ? stream.path.toString("utf8") : stream.path;
|
|
384
374
|
return {
|
|
385
375
|
name: platform.path().basename(streamPath),
|
|
386
376
|
buffer
|
|
387
377
|
};
|
|
388
378
|
}
|
|
389
379
|
function isJsonContentType(headers) {
|
|
390
|
-
if (!headers)
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
if (name.toLocaleLowerCase() === 'content-type') return value === 'application/json';
|
|
380
|
+
if (!headers)
|
|
381
|
+
return false;
|
|
382
|
+
for (const { name, value } of headers) {
|
|
383
|
+
if (name.toLocaleLowerCase() === "content-type")
|
|
384
|
+
return value === "application/json";
|
|
396
385
|
}
|
|
397
386
|
return false;
|
|
398
387
|
}
|
|
399
388
|
function objectToArray(map) {
|
|
400
|
-
if (!map)
|
|
389
|
+
if (!map)
|
|
390
|
+
return void 0;
|
|
401
391
|
const result = [];
|
|
402
392
|
for (const [name, value] of Object.entries(map)) {
|
|
403
|
-
if (value !==
|
|
404
|
-
name,
|
|
405
|
-
value: String(value)
|
|
406
|
-
});
|
|
393
|
+
if (value !== void 0)
|
|
394
|
+
result.push({ name, value: String(value) });
|
|
407
395
|
}
|
|
408
396
|
return result;
|
|
409
397
|
}
|
|
410
|
-
function queryStringToArray(queryString) {
|
|
411
|
-
const searchParams = new URLSearchParams(queryString);
|
|
412
|
-
return searchParamsToArray(searchParams);
|
|
413
|
-
}
|
|
414
|
-
function searchParamsToArray(searchParams) {
|
|
415
|
-
if (searchParams.size === 0) return undefined;
|
|
416
|
-
const result = [];
|
|
417
|
-
for (const [name, value] of searchParams.entries()) result.push({
|
|
418
|
-
name,
|
|
419
|
-
value
|
|
420
|
-
});
|
|
421
|
-
return result;
|
|
422
|
-
}
|
|
423
|
-
function mapParamsToArray(params) {
|
|
424
|
-
if (params instanceof URLSearchParams) return searchParamsToArray(params);
|
|
425
|
-
if (typeof params === 'string') return queryStringToArray(params);
|
|
426
|
-
return objectToArray(params);
|
|
427
|
-
}
|
|
428
398
|
function isFilePayload(value) {
|
|
429
|
-
return typeof value ===
|
|
430
|
-
}
|
|
399
|
+
return typeof value === "object" && value["name"] && value["mimeType"] && value["buffer"];
|
|
400
|
+
}
|
|
401
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
402
|
+
0 && (module.exports = {
|
|
403
|
+
APIRequest,
|
|
404
|
+
APIRequestContext,
|
|
405
|
+
APIResponse
|
|
406
|
+
});
|
|
@@ -1,30 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var fileChooser_exports = {};
|
|
20
|
+
__export(fileChooser_exports, {
|
|
21
|
+
FileChooser: () => FileChooser
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
/**
|
|
8
|
-
* Copyright (c) Microsoft Corporation.
|
|
9
|
-
*
|
|
10
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
-
* you may not use this file except in compliance with the License.
|
|
12
|
-
* You may obtain a copy of the License at
|
|
13
|
-
*
|
|
14
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
-
*
|
|
16
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
-
* See the License for the specific language governing permissions and
|
|
20
|
-
* limitations under the License.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
+
module.exports = __toCommonJS(fileChooser_exports);
|
|
23
24
|
class FileChooser {
|
|
24
25
|
constructor(page, elementHandle, isMultiple) {
|
|
25
|
-
this._page = void 0;
|
|
26
|
-
this._elementHandle = void 0;
|
|
27
|
-
this._isMultiple = void 0;
|
|
28
26
|
this._page = page;
|
|
29
27
|
this._elementHandle = elementHandle;
|
|
30
28
|
this._isMultiple = isMultiple;
|
|
@@ -42,4 +40,7 @@ class FileChooser {
|
|
|
42
40
|
return await this._elementHandle.setInputFiles(files, options);
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
|
-
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
FileChooser
|
|
46
|
+
});
|