patchright-core 1.51.2 → 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 +288 -403
- 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 +741 -891
- 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-DpJ-EmBQ.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-DTenqiGw.js +0 -259
- package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
- package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
|
@@ -1,138 +1,179 @@
|
|
|
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 validatorPrimitives_exports = {};
|
|
20
|
+
__export(validatorPrimitives_exports, {
|
|
21
|
+
ValidationError: () => ValidationError,
|
|
22
|
+
createMetadataValidator: () => createMetadataValidator,
|
|
23
|
+
findValidator: () => findValidator,
|
|
24
|
+
maybeFindValidator: () => maybeFindValidator,
|
|
25
|
+
scheme: () => scheme,
|
|
26
|
+
tAny: () => tAny,
|
|
27
|
+
tArray: () => tArray,
|
|
28
|
+
tBinary: () => tBinary,
|
|
29
|
+
tBoolean: () => tBoolean,
|
|
30
|
+
tChannel: () => tChannel,
|
|
31
|
+
tEnum: () => tEnum,
|
|
32
|
+
tNumber: () => tNumber,
|
|
33
|
+
tObject: () => tObject,
|
|
34
|
+
tOptional: () => tOptional,
|
|
35
|
+
tString: () => tString,
|
|
36
|
+
tType: () => tType,
|
|
37
|
+
tUndefined: () => tUndefined
|
|
5
38
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.tUndefined = exports.tType = exports.tString = exports.tOptional = exports.tObject = exports.tNumber = exports.tEnum = exports.tChannel = exports.tBoolean = exports.tBinary = exports.tArray = exports.tAny = exports.scheme = void 0;
|
|
11
|
-
/**
|
|
12
|
-
* Copyright (c) Microsoft Corporation.
|
|
13
|
-
*
|
|
14
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
-
* you may not use this file except in compliance with the License.
|
|
16
|
-
* You may obtain a copy of the License at
|
|
17
|
-
*
|
|
18
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
-
*
|
|
20
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
21
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
22
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
23
|
-
* See the License for the specific language governing permissions and
|
|
24
|
-
* limitations under the License.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
class ValidationError extends Error {}
|
|
28
|
-
exports.ValidationError = ValidationError;
|
|
29
|
-
const scheme = exports.scheme = {};
|
|
39
|
+
module.exports = __toCommonJS(validatorPrimitives_exports);
|
|
40
|
+
class ValidationError extends Error {
|
|
41
|
+
}
|
|
42
|
+
const scheme = {};
|
|
30
43
|
function findValidator(type, method, kind) {
|
|
31
44
|
const validator = maybeFindValidator(type, method, kind);
|
|
32
|
-
if (!validator)
|
|
45
|
+
if (!validator)
|
|
46
|
+
throw new ValidationError(`Unknown scheme for ${kind}: ${type}.${method}`);
|
|
33
47
|
return validator;
|
|
34
48
|
}
|
|
35
49
|
function maybeFindValidator(type, method, kind) {
|
|
36
|
-
const schemeName = type + (kind ===
|
|
50
|
+
const schemeName = type + (kind === "Initializer" ? "" : method[0].toUpperCase() + method.substring(1)) + kind;
|
|
37
51
|
return scheme[schemeName];
|
|
38
52
|
}
|
|
39
53
|
function createMetadataValidator() {
|
|
40
|
-
return tOptional(scheme[
|
|
54
|
+
return tOptional(scheme["Metadata"]);
|
|
41
55
|
}
|
|
42
56
|
const tNumber = (arg, path, context) => {
|
|
43
|
-
if (arg instanceof Number)
|
|
44
|
-
|
|
57
|
+
if (arg instanceof Number)
|
|
58
|
+
return arg.valueOf();
|
|
59
|
+
if (typeof arg === "number")
|
|
60
|
+
return arg;
|
|
45
61
|
throw new ValidationError(`${path}: expected number, got ${typeof arg}`);
|
|
46
62
|
};
|
|
47
|
-
exports.tNumber = tNumber;
|
|
48
63
|
const tBoolean = (arg, path, context) => {
|
|
49
|
-
if (arg instanceof Boolean)
|
|
50
|
-
|
|
64
|
+
if (arg instanceof Boolean)
|
|
65
|
+
return arg.valueOf();
|
|
66
|
+
if (typeof arg === "boolean")
|
|
67
|
+
return arg;
|
|
51
68
|
throw new ValidationError(`${path}: expected boolean, got ${typeof arg}`);
|
|
52
69
|
};
|
|
53
|
-
exports.tBoolean = tBoolean;
|
|
54
70
|
const tString = (arg, path, context) => {
|
|
55
|
-
if (arg instanceof String)
|
|
56
|
-
|
|
71
|
+
if (arg instanceof String)
|
|
72
|
+
return arg.valueOf();
|
|
73
|
+
if (typeof arg === "string")
|
|
74
|
+
return arg;
|
|
57
75
|
throw new ValidationError(`${path}: expected string, got ${typeof arg}`);
|
|
58
76
|
};
|
|
59
|
-
exports.tString = tString;
|
|
60
77
|
const tBinary = (arg, path, context) => {
|
|
61
|
-
if (context.binary ===
|
|
62
|
-
if (arg instanceof String)
|
|
63
|
-
|
|
78
|
+
if (context.binary === "fromBase64") {
|
|
79
|
+
if (arg instanceof String)
|
|
80
|
+
return Buffer.from(arg.valueOf(), "base64");
|
|
81
|
+
if (typeof arg === "string")
|
|
82
|
+
return Buffer.from(arg, "base64");
|
|
64
83
|
throw new ValidationError(`${path}: expected base64-encoded buffer, got ${typeof arg}`);
|
|
65
84
|
}
|
|
66
|
-
if (context.binary ===
|
|
67
|
-
if (!(arg instanceof Buffer))
|
|
68
|
-
|
|
85
|
+
if (context.binary === "toBase64") {
|
|
86
|
+
if (!(arg instanceof Buffer))
|
|
87
|
+
throw new ValidationError(`${path}: expected Buffer, got ${typeof arg}`);
|
|
88
|
+
return arg.toString("base64");
|
|
69
89
|
}
|
|
70
|
-
if (context.binary ===
|
|
71
|
-
if (!(arg instanceof Buffer))
|
|
90
|
+
if (context.binary === "buffer") {
|
|
91
|
+
if (!(arg instanceof Buffer))
|
|
92
|
+
throw new ValidationError(`${path}: expected Buffer, got ${typeof arg}`);
|
|
72
93
|
return arg;
|
|
73
94
|
}
|
|
74
95
|
throw new ValidationError(`Unsupported binary behavior "${context.binary}"`);
|
|
75
96
|
};
|
|
76
|
-
exports.tBinary = tBinary;
|
|
77
97
|
const tUndefined = (arg, path, context) => {
|
|
78
|
-
if (Object.is(arg,
|
|
98
|
+
if (Object.is(arg, void 0))
|
|
99
|
+
return arg;
|
|
79
100
|
throw new ValidationError(`${path}: expected undefined, got ${typeof arg}`);
|
|
80
101
|
};
|
|
81
|
-
exports.tUndefined = tUndefined;
|
|
82
102
|
const tAny = (arg, path, context) => {
|
|
83
103
|
return arg;
|
|
84
104
|
};
|
|
85
|
-
|
|
86
|
-
const tOptional = v => {
|
|
105
|
+
const tOptional = (v) => {
|
|
87
106
|
return (arg, path, context) => {
|
|
88
|
-
if (Object.is(arg,
|
|
107
|
+
if (Object.is(arg, void 0))
|
|
108
|
+
return arg;
|
|
89
109
|
return v(arg, path, context);
|
|
90
110
|
};
|
|
91
111
|
};
|
|
92
|
-
|
|
93
|
-
const tArray = v => {
|
|
112
|
+
const tArray = (v) => {
|
|
94
113
|
return (arg, path, context) => {
|
|
95
|
-
if (!Array.isArray(arg))
|
|
96
|
-
|
|
114
|
+
if (!Array.isArray(arg))
|
|
115
|
+
throw new ValidationError(`${path}: expected array, got ${typeof arg}`);
|
|
116
|
+
return arg.map((x, index) => v(x, path + "[" + index + "]", context));
|
|
97
117
|
};
|
|
98
118
|
};
|
|
99
|
-
|
|
100
|
-
const tObject = s => {
|
|
119
|
+
const tObject = (s) => {
|
|
101
120
|
return (arg, path, context) => {
|
|
102
|
-
if (Object.is(arg, null))
|
|
103
|
-
|
|
121
|
+
if (Object.is(arg, null))
|
|
122
|
+
throw new ValidationError(`${path}: expected object, got null`);
|
|
123
|
+
if (typeof arg !== "object")
|
|
124
|
+
throw new ValidationError(`${path}: expected object, got ${typeof arg}`);
|
|
104
125
|
const result = {};
|
|
105
126
|
for (const [key, v] of Object.entries(s)) {
|
|
106
|
-
const value = v(arg[key], path ? path +
|
|
107
|
-
if (!Object.is(value,
|
|
127
|
+
const value = v(arg[key], path ? path + "." + key : key, context);
|
|
128
|
+
if (!Object.is(value, void 0))
|
|
129
|
+
result[key] = value;
|
|
108
130
|
}
|
|
109
131
|
if (context.isUnderTest()) {
|
|
110
132
|
for (const [key, value] of Object.entries(arg)) {
|
|
111
|
-
if (key.startsWith(
|
|
133
|
+
if (key.startsWith("__testHook"))
|
|
134
|
+
result[key] = value;
|
|
112
135
|
}
|
|
113
136
|
}
|
|
114
137
|
return result;
|
|
115
138
|
};
|
|
116
139
|
};
|
|
117
|
-
|
|
118
|
-
const tEnum = e => {
|
|
140
|
+
const tEnum = (e) => {
|
|
119
141
|
return (arg, path, context) => {
|
|
120
|
-
if (!e.includes(arg))
|
|
142
|
+
if (!e.includes(arg))
|
|
143
|
+
throw new ValidationError(`${path}: expected one of (${e.join("|")})`);
|
|
121
144
|
return arg;
|
|
122
145
|
};
|
|
123
146
|
};
|
|
124
|
-
|
|
125
|
-
const tChannel = names => {
|
|
147
|
+
const tChannel = (names) => {
|
|
126
148
|
return (arg, path, context) => {
|
|
127
149
|
return context.tChannelImpl(names, arg, path, context);
|
|
128
150
|
};
|
|
129
151
|
};
|
|
130
|
-
|
|
131
|
-
const tType = name => {
|
|
152
|
+
const tType = (name) => {
|
|
132
153
|
return (arg, path, context) => {
|
|
133
154
|
const v = scheme[name];
|
|
134
|
-
if (!v)
|
|
155
|
+
if (!v)
|
|
156
|
+
throw new ValidationError(path + ': unknown type "' + name + '"');
|
|
135
157
|
return v(arg, path, context);
|
|
136
158
|
};
|
|
137
159
|
};
|
|
138
|
-
|
|
160
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
161
|
+
0 && (module.exports = {
|
|
162
|
+
ValidationError,
|
|
163
|
+
createMetadataValidator,
|
|
164
|
+
findValidator,
|
|
165
|
+
maybeFindValidator,
|
|
166
|
+
scheme,
|
|
167
|
+
tAny,
|
|
168
|
+
tArray,
|
|
169
|
+
tBinary,
|
|
170
|
+
tBoolean,
|
|
171
|
+
tChannel,
|
|
172
|
+
tEnum,
|
|
173
|
+
tNumber,
|
|
174
|
+
tObject,
|
|
175
|
+
tOptional,
|
|
176
|
+
tString,
|
|
177
|
+
tType,
|
|
178
|
+
tUndefined
|
|
179
|
+
});
|