patchright-core 1.51.3 → 1.52.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/browsers.json +15 -13
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +54 -67
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +312 -328
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +141 -228
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +57 -61
- package/lib/client/browserContext.js +297 -326
- package/lib/client/browserType.js +92 -106
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +82 -95
- package/lib/client/clientHelper.js +46 -38
- 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 +190 -212
- 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 +73 -75
- package/lib/client/elementHandle.js +111 -147
- 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 +135 -158
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +187 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -28
- package/lib/client/locator.js +161 -245
- package/lib/client/network.js +277 -295
- package/lib/client/page.js +270 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -66
- package/lib/client/selectors.js +48 -46
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +49 -39
- package/lib/client/tracing.js +48 -84
- 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 +61 -56
- package/lib/client/worker.js +48 -58
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -46
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2714 -2714
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +140 -157
- package/lib/remote/playwrightServer.js +99 -84
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -209
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +221 -155
- package/lib/server/bidi/bidiChromium.js +106 -79
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +128 -113
- package/lib/server/bidi/bidiFirefox.js +76 -69
- package/lib/server/bidi/bidiInput.js +86 -97
- package/lib/server/bidi/bidiNetworkManager.js +137 -154
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +247 -219
- 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 +144 -131
- 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 +76 -84
- package/lib/server/browserContext.js +321 -346
- package/lib/server/browserType.js +169 -182
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +86 -64
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +253 -273
- package/lib/server/chromium/crConnection.js +91 -116
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +59 -51
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +88 -83
- package/lib/server/chromium/crInput.js +97 -95
- package/lib/server/chromium/crNetworkManager.js +284 -404
- package/lib/server/chromium/crPage.js +522 -608
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +82 -67
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +62 -50
- package/lib/server/codegen/csharp.js +185 -160
- package/lib/server/codegen/java.js +155 -128
- 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 +140 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +97 -124
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +50 -50
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +169 -220
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
- package/lib/server/dispatchers/frameDispatcher.js +99 -163
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
- package/lib/server/dispatchers/networkDispatchers.js +90 -107
- package/lib/server/dispatchers/pageDispatcher.js +128 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -45
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
- package/lib/server/dom.js +413 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -176
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +289 -323
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +65 -59
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +213 -277
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +91 -73
- package/lib/server/firefox/ffInput.js +67 -69
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +236 -273
- package/lib/server/firefox/firefox.js +76 -67
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +730 -894
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +287 -222
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +134 -163
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +143 -134
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +130 -122
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +262 -296
- package/lib/server/page.js +329 -426
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/contextRecorder.js +134 -138
- package/lib/server/recorder/recorderApp.js +127 -136
- package/lib/server/recorder/recorderCollection.js +56 -44
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +79 -103
- package/lib/server/recorder/recorderUtils.js +56 -45
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +177 -186
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +904 -792
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/storageScript.js +94 -100
- package/lib/server/timeoutSettings.js +58 -43
- package/lib/server/trace/recorder/snapshotter.js +70 -89
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +321 -333
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +168 -146
- package/lib/server/transport.js +124 -133
- 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 +37 -28
- package/lib/server/utils/debugLogger.js +69 -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 +138 -123
- 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 +143 -86
- 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 +73 -69
- 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 +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +159 -176
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +84 -70
- package/lib/server/webkit/wkInput.js +82 -80
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +525 -619
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +121 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +340 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +47 -39
- package/lib/utils/isomorphic/mimeType.js +448 -25
- package/lib/utils/isomorphic/multimap.js +35 -27
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +41 -22
- package/lib/utils/isomorphic/timeoutRunner.js +55 -54
- package/lib/utils/isomorphic/traceUtils.js +38 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +112 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +97 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/vite/htmlReport/index.html +21 -15
- package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-dvXVzLxY.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
- package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
- package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
- package/lib/vite/traceViewer/index.html +3 -3
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
- package/lib/zipBundle.js +32 -23
- package/package.json +1 -1
- package/types/protocol.d.ts +436 -17
- package/types/types.d.ts +35 -16
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/traceViewer/assets/defaultSettingsView-l0TyP_G8.js +0 -259
- package/lib/vite/traceViewer/index.BqUZLSro.js +0 -2
- package/lib/vite/traceViewer/uiMode.C1d2m5sF.js +0 -5
package/lib/client/fetch.js
CHANGED
|
@@ -1,161 +1,159 @@
|
|
|
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 fetch_exports = {};
|
|
20
|
+
__export(fetch_exports, {
|
|
21
|
+
APIRequest: () => APIRequest,
|
|
22
|
+
APIRequestContext: () => APIRequestContext,
|
|
23
|
+
APIResponse: () => APIResponse
|
|
5
24
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
/**
|
|
17
|
-
* Copyright (c) Microsoft Corporation.
|
|
18
|
-
*
|
|
19
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
|
-
* you may not use this file except in compliance with the License.
|
|
21
|
-
* You may obtain a copy of the License at
|
|
22
|
-
*
|
|
23
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
24
|
-
*
|
|
25
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
26
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
27
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
28
|
-
* See the License for the specific language governing permissions and
|
|
29
|
-
* limitations under the License.
|
|
30
|
-
*/
|
|
31
|
-
|
|
25
|
+
module.exports = __toCommonJS(fetch_exports);
|
|
26
|
+
var import_browserContext = require("./browserContext");
|
|
27
|
+
var import_channelOwner = require("./channelOwner");
|
|
28
|
+
var import_errors = require("./errors");
|
|
29
|
+
var import_network = require("./network");
|
|
30
|
+
var import_tracing = require("./tracing");
|
|
31
|
+
var import_assert = require("../utils/isomorphic/assert");
|
|
32
|
+
var import_fileUtils = require("./fileUtils");
|
|
33
|
+
var import_headers = require("../utils/isomorphic/headers");
|
|
34
|
+
var import_rtti = require("../utils/isomorphic/rtti");
|
|
32
35
|
class APIRequest {
|
|
33
36
|
constructor(playwright) {
|
|
34
|
-
this.
|
|
35
|
-
this._contexts = new Set();
|
|
37
|
+
this._contexts = /* @__PURE__ */ new Set();
|
|
36
38
|
this._playwright = playwright;
|
|
37
39
|
}
|
|
38
40
|
async newContext(options = {}) {
|
|
39
|
-
var _this$_playwright$_de, _this$_playwright$_de2;
|
|
40
41
|
options = {
|
|
41
42
|
...this._playwright._defaultContextOptions,
|
|
42
43
|
timeout: this._playwright._defaultContextTimeout,
|
|
43
44
|
...options
|
|
44
45
|
};
|
|
45
|
-
const storageState = typeof options.storageState ===
|
|
46
|
+
const storageState = typeof options.storageState === "string" ? JSON.parse(await this._playwright._platform.fs().promises.readFile(options.storageState, "utf8")) : options.storageState;
|
|
46
47
|
const context = APIRequestContext.from((await this._playwright._channel.newRequest({
|
|
47
48
|
...options,
|
|
48
|
-
extraHTTPHeaders: options.extraHTTPHeaders ? (0,
|
|
49
|
+
extraHTTPHeaders: options.extraHTTPHeaders ? (0, import_headers.headersObjectToArray)(options.extraHTTPHeaders) : void 0,
|
|
49
50
|
storageState,
|
|
50
|
-
tracesDir:
|
|
51
|
+
tracesDir: this._playwright._defaultLaunchOptions?.tracesDir,
|
|
51
52
|
// We do not expose tracesDir in the API, so do not allow options to accidentally override it.
|
|
52
|
-
clientCertificates: await (0,
|
|
53
|
+
clientCertificates: await (0, import_browserContext.toClientCertificatesProtocol)(this._playwright._platform, options.clientCertificates)
|
|
53
54
|
})).request);
|
|
54
55
|
this._contexts.add(context);
|
|
55
56
|
context._request = this;
|
|
56
|
-
context._tracing._tracesDir =
|
|
57
|
+
context._tracing._tracesDir = this._playwright._defaultLaunchOptions?.tracesDir;
|
|
57
58
|
await context._instrumentation.runAfterCreateRequestContext(context);
|
|
58
59
|
return context;
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
62
|
+
class APIRequestContext extends import_channelOwner.ChannelOwner {
|
|
63
63
|
static from(channel) {
|
|
64
64
|
return channel._object;
|
|
65
65
|
}
|
|
66
66
|
constructor(parent, type, guid, initializer) {
|
|
67
67
|
super(parent, type, guid, initializer);
|
|
68
|
-
this.
|
|
69
|
-
this._tracing = void 0;
|
|
70
|
-
this._closeReason = void 0;
|
|
71
|
-
this._tracing = _tracing.Tracing.from(initializer.tracing);
|
|
68
|
+
this._tracing = import_tracing.Tracing.from(initializer.tracing);
|
|
72
69
|
}
|
|
73
70
|
async [Symbol.asyncDispose]() {
|
|
74
71
|
await this.dispose();
|
|
75
72
|
}
|
|
76
73
|
async dispose(options = {}) {
|
|
77
|
-
var _this$_request;
|
|
78
74
|
this._closeReason = options.reason;
|
|
79
75
|
await this._instrumentation.runBeforeCloseRequestContext(this);
|
|
80
76
|
try {
|
|
81
77
|
await this._channel.dispose(options);
|
|
82
78
|
} catch (e) {
|
|
83
|
-
if ((0,
|
|
79
|
+
if ((0, import_errors.isTargetClosedError)(e))
|
|
80
|
+
return;
|
|
84
81
|
throw e;
|
|
85
82
|
}
|
|
86
83
|
this._tracing._resetStackCounter();
|
|
87
|
-
|
|
84
|
+
this._request?._contexts.delete(this);
|
|
88
85
|
}
|
|
89
86
|
async delete(url, options) {
|
|
90
87
|
return await this.fetch(url, {
|
|
91
88
|
...options,
|
|
92
|
-
method:
|
|
89
|
+
method: "DELETE"
|
|
93
90
|
});
|
|
94
91
|
}
|
|
95
92
|
async head(url, options) {
|
|
96
93
|
return await this.fetch(url, {
|
|
97
94
|
...options,
|
|
98
|
-
method:
|
|
95
|
+
method: "HEAD"
|
|
99
96
|
});
|
|
100
97
|
}
|
|
101
98
|
async get(url, options) {
|
|
102
99
|
return await this.fetch(url, {
|
|
103
100
|
...options,
|
|
104
|
-
method:
|
|
101
|
+
method: "GET"
|
|
105
102
|
});
|
|
106
103
|
}
|
|
107
104
|
async patch(url, options) {
|
|
108
105
|
return await this.fetch(url, {
|
|
109
106
|
...options,
|
|
110
|
-
method:
|
|
107
|
+
method: "PATCH"
|
|
111
108
|
});
|
|
112
109
|
}
|
|
113
110
|
async post(url, options) {
|
|
114
111
|
return await this.fetch(url, {
|
|
115
112
|
...options,
|
|
116
|
-
method:
|
|
113
|
+
method: "POST"
|
|
117
114
|
});
|
|
118
115
|
}
|
|
119
116
|
async put(url, options) {
|
|
120
117
|
return await this.fetch(url, {
|
|
121
118
|
...options,
|
|
122
|
-
method:
|
|
119
|
+
method: "PUT"
|
|
123
120
|
});
|
|
124
121
|
}
|
|
125
122
|
async fetch(urlOrRequest, options = {}) {
|
|
126
|
-
const url = (0,
|
|
127
|
-
const request = (0,
|
|
128
|
-
return await this._innerFetch({
|
|
129
|
-
url,
|
|
130
|
-
request,
|
|
131
|
-
...options
|
|
132
|
-
});
|
|
123
|
+
const url = (0, import_rtti.isString)(urlOrRequest) ? urlOrRequest : void 0;
|
|
124
|
+
const request = (0, import_rtti.isString)(urlOrRequest) ? void 0 : urlOrRequest;
|
|
125
|
+
return await this._innerFetch({ url, request, ...options });
|
|
133
126
|
}
|
|
134
127
|
async _innerFetch(options = {}) {
|
|
135
128
|
return await this._wrapApiCall(async () => {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
(0,
|
|
139
|
-
(0,
|
|
140
|
-
(0,
|
|
141
|
-
(0,
|
|
142
|
-
const url = options.url !==
|
|
143
|
-
const method = options.method ||
|
|
144
|
-
let encodedParams =
|
|
145
|
-
if (typeof options.params ===
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
129
|
+
if (this._closeReason)
|
|
130
|
+
throw new import_errors.TargetClosedError(this._closeReason);
|
|
131
|
+
(0, import_assert.assert)(options.request || typeof options.url === "string", "First argument must be either URL string or Request");
|
|
132
|
+
(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`);
|
|
133
|
+
(0, import_assert.assert)(options.maxRedirects === void 0 || options.maxRedirects >= 0, `'maxRedirects' must be greater than or equal to '0'`);
|
|
134
|
+
(0, import_assert.assert)(options.maxRetries === void 0 || options.maxRetries >= 0, `'maxRetries' must be greater than or equal to '0'`);
|
|
135
|
+
const url = options.url !== void 0 ? options.url : options.request.url();
|
|
136
|
+
const method = options.method || options.request?.method();
|
|
137
|
+
let encodedParams = void 0;
|
|
138
|
+
if (typeof options.params === "string")
|
|
139
|
+
encodedParams = options.params;
|
|
140
|
+
else if (options.params instanceof URLSearchParams)
|
|
141
|
+
encodedParams = options.params.toString();
|
|
142
|
+
const headersObj = options.headers || options.request?.headers();
|
|
143
|
+
const headers = headersObj ? (0, import_headers.headersObjectToArray)(headersObj) : void 0;
|
|
149
144
|
let jsonData;
|
|
150
145
|
let formData;
|
|
151
146
|
let multipartData;
|
|
152
147
|
let postDataBuffer;
|
|
153
|
-
if (options.data !==
|
|
154
|
-
if ((0,
|
|
155
|
-
if (isJsonContentType(headers))
|
|
148
|
+
if (options.data !== void 0) {
|
|
149
|
+
if ((0, import_rtti.isString)(options.data)) {
|
|
150
|
+
if (isJsonContentType(headers))
|
|
151
|
+
jsonData = isJsonParsable(options.data) ? options.data : JSON.stringify(options.data);
|
|
152
|
+
else
|
|
153
|
+
postDataBuffer = Buffer.from(options.data, "utf8");
|
|
156
154
|
} else if (Buffer.isBuffer(options.data)) {
|
|
157
155
|
postDataBuffer = options.data;
|
|
158
|
-
} else if (typeof options.data ===
|
|
156
|
+
} else if (typeof options.data === "object" || typeof options.data === "number" || typeof options.data === "boolean") {
|
|
159
157
|
jsonData = JSON.stringify(options.data);
|
|
160
158
|
} else {
|
|
161
159
|
throw new Error(`Unexpected 'data' type`);
|
|
@@ -164,11 +162,9 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
|
164
162
|
if (globalThis.FormData && options.form instanceof FormData) {
|
|
165
163
|
formData = [];
|
|
166
164
|
for (const [name, value] of options.form.entries()) {
|
|
167
|
-
if (typeof value !==
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
value
|
|
171
|
-
});
|
|
165
|
+
if (typeof value !== "string")
|
|
166
|
+
throw new Error(`Expected string for options.form["${name}"], found File. Please use options.multipart instead.`);
|
|
167
|
+
formData.push({ name, value });
|
|
172
168
|
}
|
|
173
169
|
} else {
|
|
174
170
|
formData = objectToArray(options.form);
|
|
@@ -178,35 +174,30 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
|
178
174
|
if (globalThis.FormData && options.multipart instanceof FormData) {
|
|
179
175
|
const form = options.multipart;
|
|
180
176
|
for (const [name, value] of form.entries()) {
|
|
181
|
-
if ((0,
|
|
182
|
-
multipartData.push({
|
|
183
|
-
name,
|
|
184
|
-
value
|
|
185
|
-
});
|
|
177
|
+
if ((0, import_rtti.isString)(value)) {
|
|
178
|
+
multipartData.push({ name, value });
|
|
186
179
|
} else {
|
|
187
180
|
const file = {
|
|
188
181
|
name: value.name,
|
|
189
182
|
mimeType: value.type,
|
|
190
183
|
buffer: Buffer.from(await value.arrayBuffer())
|
|
191
184
|
};
|
|
192
|
-
multipartData.push({
|
|
193
|
-
name,
|
|
194
|
-
file
|
|
195
|
-
});
|
|
185
|
+
multipartData.push({ name, file });
|
|
196
186
|
}
|
|
197
187
|
}
|
|
198
188
|
} else {
|
|
199
|
-
|
|
200
|
-
|
|
189
|
+
for (const [name, value] of Object.entries(options.multipart))
|
|
190
|
+
multipartData.push(await toFormField(this._platform, name, value));
|
|
201
191
|
}
|
|
202
192
|
}
|
|
203
|
-
if (postDataBuffer ===
|
|
193
|
+
if (postDataBuffer === void 0 && jsonData === void 0 && formData === void 0 && multipartData === void 0)
|
|
194
|
+
postDataBuffer = options.request?.postDataBuffer() || void 0;
|
|
204
195
|
const fixtures = {
|
|
205
196
|
__testHookLookup: options.__testHookLookup
|
|
206
197
|
};
|
|
207
198
|
const result = await this._channel.fetch({
|
|
208
199
|
url,
|
|
209
|
-
params: typeof options.params ===
|
|
200
|
+
params: typeof options.params === "object" ? objectToArray(options.params) : void 0,
|
|
210
201
|
encodedParams,
|
|
211
202
|
method,
|
|
212
203
|
headers,
|
|
@@ -225,56 +216,47 @@ class APIRequestContext extends _channelOwner.ChannelOwner {
|
|
|
225
216
|
});
|
|
226
217
|
}
|
|
227
218
|
async storageState(options = {}) {
|
|
228
|
-
const state = await this._channel.storageState({
|
|
229
|
-
indexedDB: options.indexedDB
|
|
230
|
-
});
|
|
219
|
+
const state = await this._channel.storageState({ indexedDB: options.indexedDB });
|
|
231
220
|
if (options.path) {
|
|
232
|
-
await (0,
|
|
233
|
-
await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state,
|
|
221
|
+
await (0, import_fileUtils.mkdirIfNeeded)(this._platform, options.path);
|
|
222
|
+
await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state, void 0, 2), "utf8");
|
|
234
223
|
}
|
|
235
224
|
return state;
|
|
236
225
|
}
|
|
237
226
|
}
|
|
238
|
-
exports.APIRequestContext = APIRequestContext;
|
|
239
227
|
async function toFormField(platform, name, value) {
|
|
240
228
|
const typeOfValue = typeof value;
|
|
241
229
|
if (isFilePayload(value)) {
|
|
242
230
|
const payload = value;
|
|
243
|
-
if (!Buffer.isBuffer(payload.buffer))
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
};
|
|
248
|
-
} else if (typeOfValue === 'string' || typeOfValue === 'number' || typeOfValue === 'boolean') {
|
|
249
|
-
return {
|
|
250
|
-
name,
|
|
251
|
-
value: String(value)
|
|
252
|
-
};
|
|
231
|
+
if (!Buffer.isBuffer(payload.buffer))
|
|
232
|
+
throw new Error(`Unexpected buffer type of 'data.${name}'`);
|
|
233
|
+
return { name, file: filePayloadToJson(payload) };
|
|
234
|
+
} else if (typeOfValue === "string" || typeOfValue === "number" || typeOfValue === "boolean") {
|
|
235
|
+
return { name, value: String(value) };
|
|
253
236
|
} else {
|
|
254
|
-
return {
|
|
255
|
-
name,
|
|
256
|
-
file: await readStreamToJson(platform, value)
|
|
257
|
-
};
|
|
237
|
+
return { name, file: await readStreamToJson(platform, value) };
|
|
258
238
|
}
|
|
259
239
|
}
|
|
260
240
|
function isJsonParsable(value) {
|
|
261
|
-
if (typeof value !==
|
|
241
|
+
if (typeof value !== "string")
|
|
242
|
+
return false;
|
|
262
243
|
try {
|
|
263
244
|
JSON.parse(value);
|
|
264
245
|
return true;
|
|
265
246
|
} catch (e) {
|
|
266
|
-
if (e instanceof SyntaxError)
|
|
247
|
+
if (e instanceof SyntaxError)
|
|
248
|
+
return false;
|
|
249
|
+
else
|
|
250
|
+
throw e;
|
|
267
251
|
}
|
|
268
252
|
}
|
|
269
253
|
class APIResponse {
|
|
270
254
|
constructor(context, initializer) {
|
|
271
|
-
this._initializer = void 0;
|
|
272
|
-
this._headers = void 0;
|
|
273
|
-
this._request = void 0;
|
|
274
255
|
this._request = context;
|
|
275
256
|
this._initializer = initializer;
|
|
276
|
-
this._headers = new
|
|
277
|
-
if (context._platform.inspectCustom)
|
|
257
|
+
this._headers = new import_network.RawHeaders(this._initializer.headers);
|
|
258
|
+
if (context._platform.inspectCustom)
|
|
259
|
+
this[context._platform.inspectCustom] = () => this._inspect();
|
|
278
260
|
}
|
|
279
261
|
ok() {
|
|
280
262
|
return this._initializer.status >= 200 && this._initializer.status <= 299;
|
|
@@ -297,20 +279,20 @@ class APIResponse {
|
|
|
297
279
|
async body() {
|
|
298
280
|
return await this._request._wrapApiCall(async () => {
|
|
299
281
|
try {
|
|
300
|
-
const result = await this._request._channel.fetchResponseBody({
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
if (result.binary === undefined) throw new Error('Response has been disposed');
|
|
282
|
+
const result = await this._request._channel.fetchResponseBody({ fetchUid: this._fetchUid() });
|
|
283
|
+
if (result.binary === void 0)
|
|
284
|
+
throw new Error("Response has been disposed");
|
|
304
285
|
return result.binary;
|
|
305
286
|
} catch (e) {
|
|
306
|
-
if ((0,
|
|
287
|
+
if ((0, import_errors.isTargetClosedError)(e))
|
|
288
|
+
throw new Error("Response has been disposed");
|
|
307
289
|
throw e;
|
|
308
290
|
}
|
|
309
291
|
}, true);
|
|
310
292
|
}
|
|
311
293
|
async text() {
|
|
312
294
|
const content = await this.body();
|
|
313
|
-
return content.toString(
|
|
295
|
+
return content.toString("utf8");
|
|
314
296
|
}
|
|
315
297
|
async json() {
|
|
316
298
|
const content = await this.text();
|
|
@@ -320,30 +302,21 @@ class APIResponse {
|
|
|
320
302
|
await this.dispose();
|
|
321
303
|
}
|
|
322
304
|
async dispose() {
|
|
323
|
-
await this._request._channel.disposeAPIResponse({
|
|
324
|
-
fetchUid: this._fetchUid()
|
|
325
|
-
});
|
|
305
|
+
await this._request._channel.disposeAPIResponse({ fetchUid: this._fetchUid() });
|
|
326
306
|
}
|
|
327
307
|
_inspect() {
|
|
328
|
-
const headers = this.headersArray().map(({
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
}) => ` ${name}: ${value}`);
|
|
332
|
-
return `APIResponse: ${this.status()} ${this.statusText()}\n${headers.join('\n')}`;
|
|
308
|
+
const headers = this.headersArray().map(({ name, value }) => ` ${name}: ${value}`);
|
|
309
|
+
return `APIResponse: ${this.status()} ${this.statusText()}
|
|
310
|
+
${headers.join("\n")}`;
|
|
333
311
|
}
|
|
334
312
|
_fetchUid() {
|
|
335
313
|
return this._initializer.fetchUid;
|
|
336
314
|
}
|
|
337
315
|
async _fetchLog() {
|
|
338
|
-
const {
|
|
339
|
-
log
|
|
340
|
-
} = await this._request._channel.fetchLog({
|
|
341
|
-
fetchUid: this._fetchUid()
|
|
342
|
-
});
|
|
316
|
+
const { log } = await this._request._channel.fetchLog({ fetchUid: this._fetchUid() });
|
|
343
317
|
return log;
|
|
344
318
|
}
|
|
345
319
|
}
|
|
346
|
-
exports.APIResponse = APIResponse;
|
|
347
320
|
function filePayloadToJson(payload) {
|
|
348
321
|
return {
|
|
349
322
|
name: payload.name,
|
|
@@ -354,37 +327,41 @@ function filePayloadToJson(payload) {
|
|
|
354
327
|
async function readStreamToJson(platform, stream) {
|
|
355
328
|
const buffer = await new Promise((resolve, reject) => {
|
|
356
329
|
const chunks = [];
|
|
357
|
-
stream.on(
|
|
358
|
-
stream.on(
|
|
359
|
-
stream.on(
|
|
330
|
+
stream.on("data", (chunk) => chunks.push(chunk));
|
|
331
|
+
stream.on("end", () => resolve(Buffer.concat(chunks)));
|
|
332
|
+
stream.on("error", (err) => reject(err));
|
|
360
333
|
});
|
|
361
|
-
const streamPath = Buffer.isBuffer(stream.path) ? stream.path.toString(
|
|
334
|
+
const streamPath = Buffer.isBuffer(stream.path) ? stream.path.toString("utf8") : stream.path;
|
|
362
335
|
return {
|
|
363
336
|
name: platform.path().basename(streamPath),
|
|
364
337
|
buffer
|
|
365
338
|
};
|
|
366
339
|
}
|
|
367
340
|
function isJsonContentType(headers) {
|
|
368
|
-
if (!headers)
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
if (name.toLocaleLowerCase() === 'content-type') return value === 'application/json';
|
|
341
|
+
if (!headers)
|
|
342
|
+
return false;
|
|
343
|
+
for (const { name, value } of headers) {
|
|
344
|
+
if (name.toLocaleLowerCase() === "content-type")
|
|
345
|
+
return value === "application/json";
|
|
374
346
|
}
|
|
375
347
|
return false;
|
|
376
348
|
}
|
|
377
349
|
function objectToArray(map) {
|
|
378
|
-
if (!map)
|
|
350
|
+
if (!map)
|
|
351
|
+
return void 0;
|
|
379
352
|
const result = [];
|
|
380
353
|
for (const [name, value] of Object.entries(map)) {
|
|
381
|
-
if (value !==
|
|
382
|
-
name,
|
|
383
|
-
value: String(value)
|
|
384
|
-
});
|
|
354
|
+
if (value !== void 0)
|
|
355
|
+
result.push({ name, value: String(value) });
|
|
385
356
|
}
|
|
386
357
|
return result;
|
|
387
358
|
}
|
|
388
359
|
function isFilePayload(value) {
|
|
389
|
-
return typeof value ===
|
|
390
|
-
}
|
|
360
|
+
return typeof value === "object" && value["name"] && value["mimeType"] && value["buffer"];
|
|
361
|
+
}
|
|
362
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
363
|
+
0 && (module.exports = {
|
|
364
|
+
APIRequest,
|
|
365
|
+
APIRequestContext,
|
|
366
|
+
APIResponse
|
|
367
|
+
});
|
|
@@ -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
|
+
});
|
package/lib/client/fileUtils.js
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
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 fileUtils_exports = {};
|
|
20
|
+
__export(fileUtils_exports, {
|
|
21
|
+
fileUploadSizeLimit: () => fileUploadSizeLimit,
|
|
22
|
+
mkdirIfNeeded: () => mkdirIfNeeded
|
|
5
23
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Copyright (c) Microsoft Corporation.
|
|
10
|
-
*
|
|
11
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
-
* you may not use this file except in compliance with the License.
|
|
13
|
-
* You may obtain a copy of the License at
|
|
14
|
-
*
|
|
15
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
-
*
|
|
17
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
-
* See the License for the specific language governing permissions and
|
|
21
|
-
* limitations under the License.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
// Keep in sync with the server.
|
|
25
|
-
const fileUploadSizeLimit = exports.fileUploadSizeLimit = 50 * 1024 * 1024;
|
|
24
|
+
module.exports = __toCommonJS(fileUtils_exports);
|
|
25
|
+
const fileUploadSizeLimit = 50 * 1024 * 1024;
|
|
26
26
|
async function mkdirIfNeeded(platform, filePath) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
await platform.fs().promises.mkdir(platform.path().dirname(filePath), { recursive: true }).catch(() => {
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
fileUploadSizeLimit,
|
|
33
|
+
mkdirIfNeeded
|
|
34
|
+
});
|