@checkly/playwright-core 1.48.22 → 1.51.11-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +60 -48
- package/bin/reinstall_chrome_beta_linux.sh +10 -8
- package/bin/reinstall_chrome_stable_linux.sh +10 -8
- package/bin/reinstall_msedge_beta_linux.sh +17 -9
- package/bin/reinstall_msedge_dev_linux.sh +17 -9
- package/bin/reinstall_msedge_stable_linux.sh +17 -9
- package/browsers.json +33 -12
- package/index.js +0 -1
- package/lib/androidServerImpl.js +5 -5
- package/lib/browserServerImpl.js +18 -9
- package/lib/checkly/secretsFilter.js +1 -1
- package/lib/cli/driver.js +6 -6
- package/lib/cli/program.js +38 -43
- package/lib/cli/programWithTestStub.js +2 -1
- package/lib/client/android.js +37 -58
- package/lib/client/artifact.js +4 -7
- package/lib/client/browser.js +10 -15
- package/lib/client/browserContext.js +69 -62
- package/lib/client/browserType.js +30 -64
- package/lib/client/channelOwner.js +53 -68
- package/lib/client/clientHelper.js +4 -6
- package/lib/client/clientInstrumentation.js +2 -0
- package/lib/client/clientStackTrace.js +65 -0
- package/lib/client/connection.js +48 -41
- package/lib/client/consoleMessage.js +4 -7
- package/lib/client/electron.js +10 -10
- package/lib/client/elementHandle.js +32 -33
- package/lib/client/errors.js +2 -2
- package/lib/client/eventEmitter.js +5 -8
- package/lib/client/fetch.js +61 -62
- package/lib/client/fileUtils.js +31 -0
- package/lib/client/frame.js +22 -23
- package/lib/client/harRouter.js +7 -9
- package/lib/client/jsHandle.js +3 -4
- package/lib/client/localUtils.js +24 -0
- package/lib/client/locator.js +27 -13
- package/lib/client/network.js +44 -37
- package/lib/client/page.js +50 -41
- package/lib/client/platform.js +71 -0
- package/lib/client/playwright.js +21 -1
- package/lib/client/selectors.js +8 -2
- package/lib/client/stream.js +2 -21
- package/lib/client/timeoutSettings.js +65 -0
- package/lib/client/tracing.js +29 -7
- package/lib/client/video.js +2 -2
- package/lib/client/waiter.js +19 -16
- package/lib/client/webSocket.js +106 -0
- package/lib/client/worker.js +4 -4
- package/lib/client/writableStream.js +2 -21
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/generated/recorderSource.js +7 -0
- package/lib/generated/webSocketMockSource.js +1 -1
- package/lib/inProcessFactory.js +8 -3
- package/lib/outofprocess.js +12 -8
- package/lib/protocol/debug.js +1 -1
- package/lib/protocol/validator.js +77 -11
- package/lib/protocol/validatorPrimitives.js +1 -2
- package/lib/remote/playwrightConnection.js +21 -12
- package/lib/remote/playwrightServer.js +22 -8
- package/lib/server/android/android.js +17 -14
- package/lib/server/android/backendAdb.js +14 -14
- package/lib/server/artifact.js +3 -3
- package/lib/server/bidi/bidiBrowser.js +11 -8
- package/lib/server/bidi/bidiChromium.js +5 -4
- package/lib/server/bidi/bidiConnection.js +1 -3
- package/lib/server/bidi/bidiExecutionContext.js +71 -25
- package/lib/server/bidi/bidiFirefox.js +4 -3
- package/lib/server/bidi/bidiInput.js +11 -12
- package/lib/server/bidi/bidiNetworkManager.js +11 -12
- package/lib/server/bidi/bidiOverCdp.js +2 -2
- package/lib/server/bidi/bidiPage.js +39 -66
- package/lib/server/bidi/third_party/bidiKeyboard.js +9 -7
- package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
- package/lib/server/browser.js +2 -2
- package/lib/server/browserContext.js +60 -55
- package/lib/server/browserType.js +22 -18
- package/lib/server/callLog.js +79 -0
- package/lib/server/chromium/chromium.js +20 -16
- package/lib/server/chromium/chromiumSwitches.js +32 -9
- package/lib/server/chromium/crBrowser.js +25 -24
- package/lib/server/chromium/crConnection.js +2 -2
- package/lib/server/chromium/crCoverage.js +1 -1
- package/lib/server/chromium/crDevTools.js +1 -1
- package/lib/server/chromium/crDragDrop.js +1 -1
- package/lib/server/chromium/crExecutionContext.js +26 -35
- package/lib/server/chromium/crInput.js +17 -6
- package/lib/server/chromium/crNetworkManager.js +3 -3
- package/lib/server/chromium/crPage.js +43 -55
- package/lib/server/chromium/crPdf.js +1 -1
- package/lib/server/chromium/crProtocolHelper.js +3 -3
- package/lib/server/chromium/crServiceWorker.js +2 -2
- package/lib/server/chromium/videoRecorder.js +2 -2
- package/lib/server/clock.js +1 -1
- package/lib/server/codegen/csharp.js +21 -16
- package/lib/server/codegen/java.js +17 -9
- package/lib/server/codegen/javascript.js +37 -7
- package/lib/server/codegen/jsonl.js +1 -1
- package/lib/server/codegen/languages.js +2 -2
- package/lib/server/codegen/python.js +14 -17
- package/lib/server/debugController.js +23 -45
- package/lib/server/debugger.js +1 -1
- package/lib/server/deviceDescriptors.js +1 -1
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dispatchers/androidDispatcher.js +14 -3
- package/lib/server/dispatchers/artifactDispatcher.js +3 -3
- package/lib/server/dispatchers/browserContextDispatcher.js +21 -32
- package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
- package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
- package/lib/server/dispatchers/debugControllerDispatcher.js +5 -3
- package/lib/server/dispatchers/dispatcher.js +27 -25
- package/lib/server/dispatchers/electronDispatcher.js +3 -3
- package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
- package/lib/server/dispatchers/frameDispatcher.js +9 -3
- package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
- package/lib/server/dispatchers/localUtilsDispatcher.js +25 -291
- package/lib/server/dispatchers/networkDispatchers.js +3 -3
- package/lib/server/dispatchers/pageDispatcher.js +10 -8
- package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
- package/lib/server/dispatchers/streamDispatcher.js +4 -3
- package/lib/server/dispatchers/tracingDispatcher.js +10 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +18 -18
- package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
- package/lib/server/dom.js +102 -48
- package/lib/server/download.js +1 -1
- package/lib/server/electron/electron.js +17 -16
- package/lib/server/errors.js +1 -1
- package/lib/server/fetch.js +49 -33
- package/lib/server/fileUploadUtils.js +7 -4
- package/lib/server/firefox/ffBrowser.js +17 -9
- package/lib/server/firefox/ffConnection.js +1 -1
- package/lib/server/firefox/ffExecutionContext.js +25 -29
- package/lib/server/firefox/ffInput.js +15 -4
- package/lib/server/firefox/ffNetworkManager.js +3 -3
- package/lib/server/firefox/ffPage.js +29 -50
- package/lib/server/firefox/firefox.js +7 -9
- package/lib/server/frameSelectors.js +1 -1
- package/lib/server/frames.js +65 -55
- package/lib/server/har/harRecorder.js +4 -4
- package/lib/server/har/harTracer.js +8 -9
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +2 -2
- package/lib/server/index.js +1 -14
- package/lib/server/input.js +3 -4
- package/lib/server/instrumentation.js +2 -2
- package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
- package/lib/server/javascript.js +26 -33
- package/lib/server/launchApp.js +7 -7
- package/lib/server/localUtils.js +203 -0
- package/lib/server/network.js +5 -5
- package/lib/server/page.js +76 -37
- package/lib/server/pipeTransport.js +1 -1
- package/lib/server/playwright.js +5 -5
- package/lib/server/progress.js +1 -4
- package/lib/server/protocolError.js +1 -1
- package/lib/server/recorder/chat.js +177 -0
- package/lib/server/recorder/codeGenerator.js +154 -0
- package/lib/server/recorder/contextRecorder.js +9 -18
- package/lib/server/recorder/csharp.js +311 -0
- package/lib/server/recorder/java.js +249 -0
- package/lib/server/recorder/javascript.js +230 -0
- package/lib/server/recorder/jsonl.js +48 -0
- package/lib/server/recorder/language.js +45 -0
- package/lib/server/recorder/python.js +276 -0
- package/lib/server/recorder/recorderActions.js +6 -0
- package/lib/server/recorder/recorderApp.js +25 -28
- package/lib/server/recorder/recorderCollection.js +9 -21
- package/lib/server/recorder/recorderInTraceViewer.js +1 -1
- package/lib/server/recorder/recorderRunner.js +7 -3
- package/lib/server/recorder/recorderUtils.js +5 -28
- package/lib/server/recorder/throttledFile.js +3 -4
- package/lib/server/recorder/utils.js +46 -0
- package/lib/server/recorder.js +83 -43
- package/lib/server/registry/browserFetcher.js +10 -8
- package/lib/server/registry/dependencies.js +20 -20
- package/lib/server/registry/index.js +215 -61
- package/lib/server/registry/nativeDeps.js +10 -4
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
- package/lib/server/screenshotter.js +1 -1
- package/lib/server/selectors.js +3 -3
- package/lib/server/socksClientCertificatesInterceptor.js +8 -8
- package/lib/server/socksInterceptor.js +8 -5
- package/lib/server/storageScript.js +160 -0
- package/lib/server/timeoutSettings.js +74 -0
- package/lib/server/trace/recorder/snapshotter.js +10 -20
- package/lib/server/trace/recorder/snapshotterInjected.js +26 -1
- package/lib/server/trace/recorder/tracing.js +108 -45
- package/lib/server/trace/test/inMemorySnapshotter.js +6 -6
- package/lib/server/trace/viewer/traceViewer.js +21 -7
- package/lib/server/transport.js +3 -2
- package/lib/server/utils/ascii.js +31 -0
- package/lib/server/utils/comparators.js +159 -0
- package/lib/server/utils/crypto.js +171 -0
- package/lib/server/utils/debug.js +38 -0
- package/lib/server/utils/debugLogger.js +93 -0
- package/lib/server/utils/env.js +53 -0
- package/lib/server/utils/eventsHelper.js +38 -0
- package/lib/server/utils/expectUtils.js +33 -0
- package/lib/server/utils/fileUtils.js +204 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +145 -0
- package/lib/server/utils/httpServer.js +233 -0
- package/lib/server/utils/image_tools/colorUtils.js +98 -0
- package/lib/server/utils/image_tools/compare.js +108 -0
- package/lib/server/utils/image_tools/imageChannel.js +70 -0
- package/lib/server/utils/image_tools/stats.js +102 -0
- package/lib/server/utils/linuxUtils.js +58 -0
- package/lib/server/utils/network.js +160 -0
- package/lib/server/utils/nodePlatform.js +140 -0
- package/lib/server/utils/pipeTransport.js +82 -0
- package/lib/server/utils/processLauncher.js +248 -0
- package/lib/server/utils/profiler.js +52 -0
- package/lib/server/utils/socksProxy.js +570 -0
- package/lib/server/utils/spawnAsync.js +45 -0
- package/lib/server/utils/task.js +58 -0
- package/lib/server/utils/userAgent.js +91 -0
- package/lib/server/utils/wsServer.js +128 -0
- package/lib/server/utils/zipFile.js +75 -0
- package/lib/server/utils/zones.js +54 -0
- package/lib/server/webkit/webkit.js +4 -4
- package/lib/server/webkit/wkBrowser.js +10 -10
- package/lib/server/webkit/wkConnection.js +1 -1
- package/lib/server/webkit/wkExecutionContext.js +26 -30
- package/lib/server/webkit/wkInput.js +17 -7
- package/lib/server/webkit/wkInterceptableRequest.js +2 -2
- package/lib/server/webkit/wkPage.js +80 -66
- package/lib/server/webkit/wkProvisionalPage.js +1 -1
- package/lib/server/webkit/wkWorkers.js +2 -2
- package/lib/utils/fileUtils.js +1 -1
- package/lib/utils/glob.js +84 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
- package/lib/utils/isomorphic/assert.js +25 -0
- package/lib/utils/isomorphic/colors.js +65 -0
- package/lib/utils/isomorphic/cssParser.js +5 -5
- package/lib/utils/isomorphic/headers.js +52 -0
- package/lib/utils/isomorphic/locatorGenerators.js +38 -8
- package/lib/utils/isomorphic/locatorParser.js +19 -13
- package/lib/utils/isomorphic/manualPromise.js +107 -0
- package/lib/utils/isomorphic/mimeType.js +11 -3
- package/lib/utils/isomorphic/multimap.js +73 -0
- package/lib/utils/isomorphic/rtti.js +41 -0
- package/lib/utils/isomorphic/semaphore.js +51 -0
- package/lib/utils/isomorphic/stackTrace.js +169 -0
- package/lib/utils/isomorphic/stringUtils.js +31 -1
- package/lib/utils/isomorphic/time.js +25 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/traceUtils.js +23 -0
- package/lib/utils/isomorphic/types.js +5 -0
- package/lib/utils/isomorphic/urlMatch.js +7 -5
- package/lib/utils/mimeType.js +30 -0
- package/lib/utils/stackTrace.js +1 -1
- package/lib/utils.js +447 -0
- package/lib/utilsBundle.js +4 -29
- package/lib/utilsBundleImpl/index.js +188 -33
- package/lib/vite/htmlReport/index.html +20 -17
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
- package/lib/vite/recorder/assets/{index-BW-aOBcL.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +1 -0
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +235 -0
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +25 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +1 -0
- package/lib/vite/traceViewer/{embedded.BkvOrz5Z.js → embedded.DpNPH6mk.js} +2 -2
- package/lib/vite/traceViewer/embedded.html +6 -6
- package/lib/vite/traceViewer/index.CuE3SYGw.js +2 -0
- package/lib/vite/traceViewer/index.html +27 -9
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +1 -0
- package/lib/vite/traceViewer/{recorder.DNMfnSiu.js → recorder.BD-uZJs7.js} +2 -2
- package/lib/vite/traceViewer/recorder.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +7888 -3
- package/lib/vite/traceViewer/{uiMode.CAYqod-m.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +8 -7
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +1 -0
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +820 -153
- package/types/types.d.ts +285 -82
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/vite/recorder/assets/codeMirrorModule-d0KhC1qL.js +0 -24
- package/lib/vite/recorder/assets/index-Bxxcmxlu.js +0 -42
- package/lib/vite/traceViewer/assets/codeMirrorModule-pBPtArIT.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-tzBrK1V4.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-BuJ3wAX_.js +0 -64
- package/lib/vite/traceViewer/assets/inspectorTab-Soeeuvzv.js +0 -64
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DdmJ9AJV.js +0 -9
- package/lib/vite/traceViewer/assets/workbench-lypYlf00.js +0 -9
- package/lib/vite/traceViewer/embedded.DInvAijy.js +0 -2
- package/lib/vite/traceViewer/index.Dha3cgqs.js +0 -2
- package/lib/vite/traceViewer/index._Iolt-uE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DLjBDrQR.css +0 -1
- package/lib/vite/traceViewer/recorder.DTSaNaly.js +0 -2
- package/lib/vite/traceViewer/uiMode.BM7yhjzl.js +0 -5
- package/lib/vite/traceViewer/uiMode.Cr1tvTWS.js +0 -5
- package/lib/vite/traceViewer/workbench.DlsCx8k5.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{embedded.w7WN2u1R.css → embedded.mLhjB5IF.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{recorder.B_SY1GJM.css → recorder.tn0RQdqM.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
|
@@ -5,14 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.WKPage = void 0;
|
|
7
7
|
var _path = _interopRequireDefault(require("path"));
|
|
8
|
-
var _os = _interopRequireDefault(require("os"));
|
|
9
|
-
var _utilsBundle = require("../../utilsBundle");
|
|
10
|
-
var _stackTrace = require("../../utils/stackTrace");
|
|
11
8
|
var _utils = require("../../utils");
|
|
12
|
-
var
|
|
9
|
+
var _headers = require("../../utils/isomorphic/headers");
|
|
10
|
+
var _crypto = require("../utils/crypto");
|
|
11
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
12
|
+
var _hostPlatform = require("../utils/hostPlatform");
|
|
13
|
+
var _stackTrace = require("../../utils/isomorphic/stackTrace");
|
|
14
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
15
|
+
var _browserContext = require("../browserContext");
|
|
13
16
|
var dialog = _interopRequireWildcard(require("../dialog"));
|
|
14
17
|
var dom = _interopRequireWildcard(require("../dom"));
|
|
15
|
-
var
|
|
18
|
+
var _errors = require("../errors");
|
|
16
19
|
var _helper = require("../helper");
|
|
17
20
|
var network = _interopRequireWildcard(require("../network"));
|
|
18
21
|
var _page = require("../page");
|
|
@@ -23,13 +26,10 @@ var _wkInput = require("./wkInput");
|
|
|
23
26
|
var _wkInterceptableRequest = require("./wkInterceptableRequest");
|
|
24
27
|
var _wkProvisionalPage = require("./wkProvisionalPage");
|
|
25
28
|
var _wkWorkers = require("./wkWorkers");
|
|
26
|
-
var _debugLogger = require("
|
|
27
|
-
var _manualPromise = require("../../utils/manualPromise");
|
|
28
|
-
var _browserContext = require("../browserContext");
|
|
29
|
-
var _errors = require("../errors");
|
|
29
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
30
30
|
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); }
|
|
31
|
-
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 &&
|
|
32
|
-
function _interopRequireDefault(
|
|
31
|
+
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; }
|
|
32
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
33
33
|
/**
|
|
34
34
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
35
35
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -56,7 +56,6 @@ class WKPage {
|
|
|
56
56
|
this._session = void 0;
|
|
57
57
|
this._provisionalPage = null;
|
|
58
58
|
this._page = void 0;
|
|
59
|
-
this._pagePromise = new _manualPromise.ManualPromise();
|
|
60
59
|
this._pageProxySession = void 0;
|
|
61
60
|
this._opener = void 0;
|
|
62
61
|
this._requestIdToRequest = new Map();
|
|
@@ -66,7 +65,6 @@ class WKPage {
|
|
|
66
65
|
this._sessionListeners = [];
|
|
67
66
|
this._eventListeners = void 0;
|
|
68
67
|
this._browserContext = void 0;
|
|
69
|
-
this._initializedPage = null;
|
|
70
68
|
this._firstNonInitialNavigationCommittedPromise = void 0;
|
|
71
69
|
this._firstNonInitialNavigationCommittedFulfill = () => {};
|
|
72
70
|
this._firstNonInitialNavigationCommittedReject = e => {};
|
|
@@ -103,9 +101,6 @@ class WKPage {
|
|
|
103
101
|
};
|
|
104
102
|
}
|
|
105
103
|
}
|
|
106
|
-
potentiallyUninitializedPage() {
|
|
107
|
-
return this._page;
|
|
108
|
-
}
|
|
109
104
|
async _initializePageProxySession() {
|
|
110
105
|
if (this._page._browserContext.isSettingStorageState()) return;
|
|
111
106
|
const promises = [this._pageProxySession.send('Dialog.enable'), this._pageProxySession.send('Emulation.setActiveAndFocused', {
|
|
@@ -121,7 +116,7 @@ class WKPage {
|
|
|
121
116
|
for (const [key, value] of this._browserContext._permissions) promises.push(this._grantPermissions(key, value));
|
|
122
117
|
}
|
|
123
118
|
if (this._browserContext._options.recordVideo) {
|
|
124
|
-
const outputFile = _path.default.join(this._browserContext._options.recordVideo.dir, (0,
|
|
119
|
+
const outputFile = _path.default.join(this._browserContext._options.recordVideo.dir, (0, _crypto.createGuid)() + '.webm');
|
|
125
120
|
promises.push(this._browserContext._ensureVideosPath().then(() => {
|
|
126
121
|
return this._startVideo({
|
|
127
122
|
// validateBrowserContextOptions ensures correct video size.
|
|
@@ -187,7 +182,7 @@ class WKPage {
|
|
|
187
182
|
const contextOptions = this._browserContext._options;
|
|
188
183
|
if (contextOptions.userAgent) promises.push(this.updateUserAgent());
|
|
189
184
|
const emulatedMedia = this._page.emulatedMedia();
|
|
190
|
-
if (emulatedMedia.media || emulatedMedia.colorScheme || emulatedMedia.reducedMotion || emulatedMedia.forcedColors) promises.push(WKPage._setEmulateMedia(session, emulatedMedia.media, emulatedMedia.colorScheme, emulatedMedia.reducedMotion, emulatedMedia.forcedColors));
|
|
185
|
+
if (emulatedMedia.media || emulatedMedia.colorScheme || emulatedMedia.reducedMotion || emulatedMedia.forcedColors || emulatedMedia.contrast) promises.push(WKPage._setEmulateMedia(session, emulatedMedia.media, emulatedMedia.colorScheme, emulatedMedia.reducedMotion, emulatedMedia.forcedColors, emulatedMedia.contrast));
|
|
191
186
|
const bootstrapScript = this._calculateBootstrapScript();
|
|
192
187
|
if (bootstrapScript.length) promises.push(session.send('Page.setBootstrapScript', {
|
|
193
188
|
source: bootstrapScript
|
|
@@ -205,7 +200,7 @@ class WKPage {
|
|
|
205
200
|
}
|
|
206
201
|
promises.push(this.updateEmulateMedia());
|
|
207
202
|
promises.push(session.send('Network.setExtraHTTPHeaders', {
|
|
208
|
-
headers: (0,
|
|
203
|
+
headers: (0, _headers.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
|
|
209
204
|
}));
|
|
210
205
|
if (contextOptions.offline) promises.push(session.send('Network.setEmulateOfflineState', {
|
|
211
206
|
offline: true
|
|
@@ -247,6 +242,10 @@ class WKPage {
|
|
|
247
242
|
setting: 'InputTypeWeekEnabled',
|
|
248
243
|
value: contextOptions.isMobile
|
|
249
244
|
}));
|
|
245
|
+
promises.push(session.send('Page.overrideSetting', {
|
|
246
|
+
setting: 'FixedBackgroundsPaintRelativeToDocument',
|
|
247
|
+
value: contextOptions.isMobile
|
|
248
|
+
}));
|
|
250
249
|
await Promise.all(promises);
|
|
251
250
|
}
|
|
252
251
|
_onDidCommitProvisionalTarget(event) {
|
|
@@ -299,7 +298,7 @@ class WKPage {
|
|
|
299
298
|
this._pageProxySession.dispatchMessage(message);
|
|
300
299
|
}
|
|
301
300
|
handleProvisionalLoadFailed(event) {
|
|
302
|
-
if (!this.
|
|
301
|
+
if (!this._page.initializedOrUndefined()) {
|
|
303
302
|
this._firstNonInitialNavigationCommittedReject(new Error('Initial load failed'));
|
|
304
303
|
return;
|
|
305
304
|
}
|
|
@@ -309,12 +308,8 @@ class WKPage {
|
|
|
309
308
|
this._page._frameManager.frameAbortedNavigation(this._page.mainFrame()._id, errorText, event.loaderId);
|
|
310
309
|
}
|
|
311
310
|
handleWindowOpen(event) {
|
|
312
|
-
(0, _utils.debugAssert)(!this._nextWindowOpenPopupFeatures);
|
|
313
311
|
this._nextWindowOpenPopupFeatures = event.windowFeatures;
|
|
314
312
|
}
|
|
315
|
-
async pageOrError() {
|
|
316
|
-
return this._pagePromise;
|
|
317
|
-
}
|
|
318
313
|
async _onTargetCreated(event) {
|
|
319
314
|
const {
|
|
320
315
|
targetInfo
|
|
@@ -334,7 +329,8 @@ class WKPage {
|
|
|
334
329
|
});
|
|
335
330
|
(0, _utils.assert)(targetInfo.type === 'page', 'Only page targets are expected in WebKit, received: ' + targetInfo.type);
|
|
336
331
|
if (!targetInfo.isProvisional) {
|
|
337
|
-
|
|
332
|
+
var _this$_opener;
|
|
333
|
+
(0, _utils.assert)(!this._page.initializedOrUndefined());
|
|
338
334
|
let pageOrError;
|
|
339
335
|
try {
|
|
340
336
|
this._setSession(session);
|
|
@@ -361,12 +357,7 @@ class WKPage {
|
|
|
361
357
|
// Avoid rejection on disconnect.
|
|
362
358
|
this._firstNonInitialNavigationCommittedPromise.catch(() => {});
|
|
363
359
|
}
|
|
364
|
-
|
|
365
|
-
// Note: it is important to call |reportAsNew| before resolving pageOrError promise,
|
|
366
|
-
// so that anyone who awaits pageOrError got a ready and reported page.
|
|
367
|
-
this._initializedPage = pageOrError instanceof _page.Page ? pageOrError : null;
|
|
368
|
-
this._page.reportAsNew(pageOrError instanceof _page.Page ? undefined : pageOrError);
|
|
369
|
-
this._pagePromise.resolve(pageOrError);
|
|
360
|
+
this._page.reportAsNew((_this$_opener = this._opener) === null || _this$_opener === void 0 ? void 0 : _this$_opener._page, pageOrError instanceof _page.Page ? undefined : pageOrError);
|
|
370
361
|
} else {
|
|
371
362
|
(0, _utils.assert)(targetInfo.isProvisional);
|
|
372
363
|
(0, _utils.assert)(!this._provisionalPage);
|
|
@@ -464,12 +455,11 @@ class WKPage {
|
|
|
464
455
|
let worldName;
|
|
465
456
|
if (contextPayload.type === 'normal') worldName = 'main';else if (contextPayload.type === 'user' && contextPayload.name === UTILITY_WORLD_NAME) worldName = 'utility';else return;
|
|
466
457
|
const context = new dom.FrameExecutionContext(delegate, frame, worldName);
|
|
467
|
-
|
|
468
|
-
frame._contextCreated(worldName, context);
|
|
458
|
+
if (worldName) frame._contextCreated(worldName, context);
|
|
469
459
|
this._contextIdToContext.set(contextPayload.id, context);
|
|
470
460
|
}
|
|
471
461
|
async _onBindingCalled(contextId, argument) {
|
|
472
|
-
const pageOrError = await this.
|
|
462
|
+
const pageOrError = await this._page.waitForInitializedOrError();
|
|
473
463
|
if (!(pageOrError instanceof Error)) {
|
|
474
464
|
const context = this._contextIdToContext.get(contextId);
|
|
475
465
|
if (context) await this._page._onBindingCalled(argument, context);
|
|
@@ -534,7 +524,7 @@ class WKPage {
|
|
|
534
524
|
context = [...this._contextIdToContext.values()].find(c => c.frame === this._page.mainFrame());
|
|
535
525
|
}
|
|
536
526
|
if (!context) return;
|
|
537
|
-
handles.push(
|
|
527
|
+
handles.push((0, _wkExecutionContext.createHandle)(context, p));
|
|
538
528
|
}
|
|
539
529
|
this._lastConsoleMessage = {
|
|
540
530
|
derivedType,
|
|
@@ -566,6 +556,8 @@ class WKPage {
|
|
|
566
556
|
}
|
|
567
557
|
_onDialog(event) {
|
|
568
558
|
this._page.emitOnContext(_browserContext.BrowserContext.Events.Dialog, new dialog.Dialog(this._page, event.type, event.message, async (accept, promptText) => {
|
|
559
|
+
// TODO: this should actually be a RDP event that notifies about a cancelled navigation attempt.
|
|
560
|
+
if (event.type === 'beforeunload' && !accept) this._page._frameManager.frameAbortedNavigation(this._page.mainFrame()._id, 'navigation cancelled by beforeunload dialog');
|
|
569
561
|
await this._pageProxySession.send('Dialog.handleJavaScriptDialog', {
|
|
570
562
|
accept,
|
|
571
563
|
promptText
|
|
@@ -576,14 +568,14 @@ class WKPage {
|
|
|
576
568
|
let handle;
|
|
577
569
|
try {
|
|
578
570
|
const context = await this._page._frameManager.frame(event.frameId)._mainContext();
|
|
579
|
-
handle =
|
|
571
|
+
handle = (0, _wkExecutionContext.createHandle)(context, event.element).asElement();
|
|
580
572
|
} catch (e) {
|
|
581
573
|
// During async processing, frame/context may go away. We should not throw.
|
|
582
574
|
return;
|
|
583
575
|
}
|
|
584
576
|
await this._page._onFileChooserOpened(handle);
|
|
585
577
|
}
|
|
586
|
-
static async _setEmulateMedia(session, mediaType, colorScheme, reducedMotion, forcedColors) {
|
|
578
|
+
static async _setEmulateMedia(session, mediaType, colorScheme, reducedMotion, forcedColors, contrast) {
|
|
587
579
|
const promises = [];
|
|
588
580
|
promises.push(session.send('Page.setEmulatedMedia', {
|
|
589
581
|
media: mediaType === 'no-override' ? '' : mediaType
|
|
@@ -635,11 +627,27 @@ class WKPage {
|
|
|
635
627
|
promises.push(session.send('Page.setForcedColors', {
|
|
636
628
|
forcedColors: forcedColorsWk
|
|
637
629
|
}));
|
|
630
|
+
let contrastWk = undefined;
|
|
631
|
+
switch (contrast) {
|
|
632
|
+
case 'more':
|
|
633
|
+
contrastWk = 'More';
|
|
634
|
+
break;
|
|
635
|
+
case 'no-preference':
|
|
636
|
+
contrastWk = 'NoPreference';
|
|
637
|
+
break;
|
|
638
|
+
case 'no-override':
|
|
639
|
+
contrastWk = undefined;
|
|
640
|
+
break;
|
|
641
|
+
}
|
|
642
|
+
promises.push(session.send('Page.overrideUserPreference', {
|
|
643
|
+
name: 'PrefersContrast',
|
|
644
|
+
value: contrastWk
|
|
645
|
+
}));
|
|
638
646
|
await Promise.all(promises);
|
|
639
647
|
}
|
|
640
648
|
async updateExtraHTTPHeaders() {
|
|
641
649
|
await this._updateState('Network.setExtraHTTPHeaders', {
|
|
642
|
-
headers: (0,
|
|
650
|
+
headers: (0, _headers.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
|
|
643
651
|
});
|
|
644
652
|
}
|
|
645
653
|
_calculateExtraHTTPHeaders() {
|
|
@@ -652,7 +660,8 @@ class WKPage {
|
|
|
652
660
|
const colorScheme = emulatedMedia.colorScheme;
|
|
653
661
|
const reducedMotion = emulatedMedia.reducedMotion;
|
|
654
662
|
const forcedColors = emulatedMedia.forcedColors;
|
|
655
|
-
|
|
663
|
+
const contrast = emulatedMedia.contrast;
|
|
664
|
+
await this._forAllSessions(session => WKPage._setEmulateMedia(session, emulatedMedia.media, colorScheme, reducedMotion, forcedColors, contrast));
|
|
656
665
|
}
|
|
657
666
|
async updateEmulatedViewportSize() {
|
|
658
667
|
this._browserContext._validateEmulatedViewport(this._page.viewportSize());
|
|
@@ -686,11 +695,7 @@ class WKPage {
|
|
|
686
695
|
})];
|
|
687
696
|
if (options.isMobile) {
|
|
688
697
|
const angle = viewportSize.width > viewportSize.height ? 90 : 0;
|
|
689
|
-
|
|
690
|
-
const useLegacySetOrientationOverrideMethod = _os.default.platform() === 'darwin' && parseInt(_os.default.release().split('.')[0], 10) <= 21;
|
|
691
|
-
if (useLegacySetOrientationOverrideMethod) promises.push(this._session.send('Page.setOrientationOverride', {
|
|
692
|
-
angle
|
|
693
|
-
}));else promises.push(this._pageProxySession.send('Emulation.setOrientationOverride', {
|
|
698
|
+
promises.push(this._pageProxySession.send('Emulation.setOrientationOverride', {
|
|
694
699
|
angle
|
|
695
700
|
}));
|
|
696
701
|
}
|
|
@@ -800,7 +805,7 @@ class WKPage {
|
|
|
800
805
|
toolbarHeight: this._toolbarHeight()
|
|
801
806
|
});
|
|
802
807
|
this._recordingVideoFile = options.outputFile;
|
|
803
|
-
this._browserContext._browser._videoStarted(this._browserContext, screencastId, options.outputFile, this.
|
|
808
|
+
this._browserContext._browser._videoStarted(this._browserContext, screencastId, options.outputFile, this._page.waitForInitializedOrError());
|
|
804
809
|
}
|
|
805
810
|
async _stopVideo() {
|
|
806
811
|
if (!this._recordingVideoFile) return;
|
|
@@ -843,9 +848,6 @@ class WKPage {
|
|
|
843
848
|
});
|
|
844
849
|
return nodeInfo.ownerFrameId || null;
|
|
845
850
|
}
|
|
846
|
-
isElementHandle(remoteObject) {
|
|
847
|
-
return remoteObject.subtype === 'node';
|
|
848
|
-
}
|
|
849
851
|
async getBoundingBox(handle) {
|
|
850
852
|
const quads = await this.getContentQuads(handle);
|
|
851
853
|
if (!quads || !quads.length) return null;
|
|
@@ -928,18 +930,6 @@ class WKPage {
|
|
|
928
930
|
y: quad[7]
|
|
929
931
|
}]);
|
|
930
932
|
}
|
|
931
|
-
async setInputFiles(handle, files) {
|
|
932
|
-
const objectId = handle._objectId;
|
|
933
|
-
const protocolFiles = files.map(file => ({
|
|
934
|
-
name: file.name,
|
|
935
|
-
type: file.mimeType,
|
|
936
|
-
data: file.buffer
|
|
937
|
-
}));
|
|
938
|
-
await this._session.send('DOM.setInputFiles', {
|
|
939
|
-
objectId,
|
|
940
|
-
files: protocolFiles
|
|
941
|
-
});
|
|
942
|
-
}
|
|
943
933
|
async setInputFilePaths(handle, paths) {
|
|
944
934
|
const pageProxyId = this._pageProxySession.sessionId;
|
|
945
935
|
const objectId = handle._objectId;
|
|
@@ -954,10 +944,10 @@ class WKPage {
|
|
|
954
944
|
async adoptElementHandle(handle, to) {
|
|
955
945
|
const result = await this._session.sendMayFail('DOM.resolveNode', {
|
|
956
946
|
objectId: handle._objectId,
|
|
957
|
-
executionContextId: to
|
|
947
|
+
executionContextId: to.delegate._contextId
|
|
958
948
|
});
|
|
959
949
|
if (!result || result.object.subtype === 'null') throw new Error(dom.kUnableToAdoptErrorMessage);
|
|
960
|
-
return
|
|
950
|
+
return (0, _wkExecutionContext.createHandle)(to, result.object);
|
|
961
951
|
}
|
|
962
952
|
async getAccessibilityTree(needle) {
|
|
963
953
|
return (0, _wkAccessibility.getAccessibilityTree)(this._session, needle);
|
|
@@ -970,10 +960,35 @@ class WKPage {
|
|
|
970
960
|
const context = await parent._mainContext();
|
|
971
961
|
const result = await this._session.send('DOM.resolveNode', {
|
|
972
962
|
frameId: frame._id,
|
|
973
|
-
executionContextId: context
|
|
963
|
+
executionContextId: context.delegate._contextId
|
|
974
964
|
});
|
|
975
965
|
if (!result || result.object.subtype === 'null') throw new Error('Frame has been detached.');
|
|
976
|
-
return
|
|
966
|
+
return (0, _wkExecutionContext.createHandle)(context, result.object);
|
|
967
|
+
}
|
|
968
|
+
_maybeCancelCoopNavigationRequest(provisionalPage) {
|
|
969
|
+
const navigationRequest = provisionalPage.coopNavigationRequest();
|
|
970
|
+
for (const [requestId, request] of this._requestIdToRequest) {
|
|
971
|
+
if (request.request === navigationRequest) {
|
|
972
|
+
// Make sure the request completes if the provisional navigation is canceled.
|
|
973
|
+
this._onLoadingFailed(provisionalPage._session, {
|
|
974
|
+
requestId: requestId,
|
|
975
|
+
errorText: 'Provisiolal navigation canceled.',
|
|
976
|
+
timestamp: request._timestamp,
|
|
977
|
+
canceled: true
|
|
978
|
+
});
|
|
979
|
+
return;
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
_adoptRequestFromNewProcess(navigationRequest, newSession, newRequestId) {
|
|
984
|
+
for (const [requestId, request] of this._requestIdToRequest) {
|
|
985
|
+
if (request.request === navigationRequest) {
|
|
986
|
+
this._requestIdToRequest.delete(requestId);
|
|
987
|
+
request.adoptRequestFromNewProcess(newSession, newRequestId);
|
|
988
|
+
this._requestIdToRequest.set(newRequestId, request);
|
|
989
|
+
return;
|
|
990
|
+
}
|
|
991
|
+
}
|
|
977
992
|
}
|
|
978
993
|
_maybeCancelCoopNavigationRequest(provisionalPage) {
|
|
979
994
|
const navigationRequest = provisionalPage.coopNavigationRequest();
|
|
@@ -1215,5 +1230,4 @@ function isLoadedSecurely(url, timing) {
|
|
|
1215
1230
|
if (timing.secureConnectionStart === -1 && timing.connectStart !== -1) return false;
|
|
1216
1231
|
return true;
|
|
1217
1232
|
} catch (_) {}
|
|
1218
|
-
}
|
|
1219
|
-
const contextDelegateSymbol = Symbol('delegate');
|
|
1233
|
+
}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WKProvisionalPage = void 0;
|
|
7
|
-
var _eventsHelper = require("../../utils/eventsHelper");
|
|
8
7
|
var _utils = require("../../utils");
|
|
8
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) Microsoft Corporation.
|
|
11
11
|
*
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WKWorkers = void 0;
|
|
7
|
-
var _eventsHelper = require("
|
|
7
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
8
8
|
var _page = require("../page");
|
|
9
9
|
var _wkConnection = require("./wkConnection");
|
|
10
10
|
var _wkExecutionContext = require("./wkExecutionContext");
|
|
@@ -91,7 +91,7 @@ class WKWorkers {
|
|
|
91
91
|
let derivedType = type || '';
|
|
92
92
|
if (type === 'log') derivedType = level;else if (type === 'timing') derivedType = 'timeEnd';
|
|
93
93
|
const handles = (parameters || []).map(p => {
|
|
94
|
-
return worker._existingExecutionContext
|
|
94
|
+
return (0, _wkExecutionContext.createHandle)(worker._existingExecutionContext, p);
|
|
95
95
|
});
|
|
96
96
|
const location = {
|
|
97
97
|
url: url || '',
|
package/lib/utils/fileUtils.js
CHANGED
|
@@ -15,7 +15,7 @@ var _fs = _interopRequireDefault(require("fs"));
|
|
|
15
15
|
var _path = _interopRequireDefault(require("path"));
|
|
16
16
|
var _manualPromise = require("./manualPromise");
|
|
17
17
|
var _zipBundle = require("../zipBundle");
|
|
18
|
-
function _interopRequireDefault(
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
19
|
/**
|
|
20
20
|
* Copyright (c) Microsoft Corporation.
|
|
21
21
|
*
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.globToRegex = globToRegex;
|
|
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
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping
|
|
24
|
+
const escapedChars = new Set(['$', '^', '+', '.', '*', '(', ')', '|', '\\', '?', '{', '}', '[', ']']);
|
|
25
|
+
function globToRegex(glob) {
|
|
26
|
+
const tokens = ['^'];
|
|
27
|
+
let inGroup = false;
|
|
28
|
+
for (let i = 0; i < glob.length; ++i) {
|
|
29
|
+
const c = glob[i];
|
|
30
|
+
if (c === '\\' && i + 1 < glob.length) {
|
|
31
|
+
const char = glob[++i];
|
|
32
|
+
tokens.push(escapedChars.has(char) ? '\\' + char : char);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (c === '*') {
|
|
36
|
+
const beforeDeep = glob[i - 1];
|
|
37
|
+
let starCount = 1;
|
|
38
|
+
while (glob[i + 1] === '*') {
|
|
39
|
+
starCount++;
|
|
40
|
+
i++;
|
|
41
|
+
}
|
|
42
|
+
const afterDeep = glob[i + 1];
|
|
43
|
+
const isDeep = starCount > 1 && (beforeDeep === '/' || beforeDeep === undefined) && (afterDeep === '/' || afterDeep === undefined);
|
|
44
|
+
if (isDeep) {
|
|
45
|
+
tokens.push('((?:[^/]*(?:\/|$))*)');
|
|
46
|
+
i++;
|
|
47
|
+
} else {
|
|
48
|
+
tokens.push('([^/]*)');
|
|
49
|
+
}
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
switch (c) {
|
|
53
|
+
case '?':
|
|
54
|
+
tokens.push('.');
|
|
55
|
+
break;
|
|
56
|
+
case '[':
|
|
57
|
+
tokens.push('[');
|
|
58
|
+
break;
|
|
59
|
+
case ']':
|
|
60
|
+
tokens.push(']');
|
|
61
|
+
break;
|
|
62
|
+
case '{':
|
|
63
|
+
inGroup = true;
|
|
64
|
+
tokens.push('(');
|
|
65
|
+
break;
|
|
66
|
+
case '}':
|
|
67
|
+
inGroup = false;
|
|
68
|
+
tokens.push(')');
|
|
69
|
+
break;
|
|
70
|
+
case ',':
|
|
71
|
+
if (inGroup) {
|
|
72
|
+
tokens.push('|');
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
tokens.push('\\' + c);
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
tokens.push(escapedChars.has(c) ? '\\' + c : c);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
tokens.push('$');
|
|
82
|
+
return new RegExp(tokens.join(''));
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=glob.js.map
|