@checkly/playwright-core 1.51.17-beta.1 → 1.54.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +65 -123
- package/browsers.json +16 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +47 -50
- package/lib/browserServerImpl.js +89 -69
- package/lib/checkly/escapeRegExp.js +23 -27
- package/lib/checkly/fetch.js +64 -46
- package/lib/checkly/secretsFilter.js +49 -36
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +400 -359
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +151 -242
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +96 -71
- package/lib/client/browserContext.js +314 -345
- package/lib/client/browserType.js +103 -127
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +90 -113
- package/lib/client/clientHelper.js +48 -39
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +188 -214
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +80 -77
- package/lib/client/elementHandle.js +120 -159
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +166 -190
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +207 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +42 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -29
- package/lib/client/locator.js +145 -237
- package/lib/client/network.js +282 -307
- package/lib/client/page.js +269 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -76
- package/lib/client/selectors.js +45 -63
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +55 -41
- package/lib/client/tracing.js +49 -96
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +43 -56
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +26 -6
- package/lib/generated/consoleApiSource.js +26 -6
- package/lib/generated/injectedScriptSource.js +26 -6
- package/lib/generated/pollingRecorderSource.js +26 -6
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +26 -6
- package/lib/generated/webSocketMockSource.js +333 -5
- package/lib/inProcessFactory.js +51 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +51 -46
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2807 -2739
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +88 -242
- package/lib/remote/playwrightServer.js +305 -92
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +251 -241
- package/lib/server/android/backendAdb.js +87 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +297 -158
- package/lib/server/bidi/bidiChromium.js +119 -89
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +129 -113
- package/lib/server/bidi/bidiFirefox.js +86 -76
- package/lib/server/bidi/bidiInput.js +106 -117
- package/lib/server/bidi/bidiNetworkManager.js +142 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +260 -260
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
- package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +93 -95
- package/lib/server/browserContext.js +419 -429
- package/lib/server/browserType.js +186 -216
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +235 -203
- package/lib/server/chromium/chromiumSwitches.js +100 -67
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +310 -292
- package/lib/server/chromium/crConnection.js +95 -121
- package/lib/server/chromium/crCoverage.js +121 -131
- package/lib/server/chromium/crDevTools.js +60 -51
- package/lib/server/chromium/crDragDrop.js +68 -84
- package/lib/server/chromium/crExecutionContext.js +89 -83
- package/lib/server/chromium/crInput.js +118 -113
- package/lib/server/chromium/crNetworkManager.js +274 -375
- package/lib/server/chromium/crPage.js +536 -593
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +84 -73
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +66 -99
- package/lib/server/clock.js +107 -83
- package/lib/server/codegen/csharp.js +192 -162
- package/lib/server/codegen/java.js +156 -129
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -126
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +108 -86
- package/lib/server/debugController.js +147 -151
- package/lib/server/debugger.js +86 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +238 -128
- package/lib/server/dialog.js +84 -39
- package/lib/server/dispatchers/androidDispatcher.js +257 -148
- package/lib/server/dispatchers/artifactDispatcher.js +79 -79
- package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
- package/lib/server/dispatchers/browserDispatcher.js +96 -148
- package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
- package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
- package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
- package/lib/server/dispatchers/dialogDispatcher.js +34 -31
- package/lib/server/dispatchers/dispatcher.js +208 -248
- package/lib/server/dispatchers/electronDispatcher.js +66 -70
- package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
- package/lib/server/dispatchers/frameDispatcher.js +211 -272
- package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
- package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
- package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
- package/lib/server/dispatchers/networkDispatchers.js +117 -128
- package/lib/server/dispatchers/pageDispatcher.js +256 -248
- package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
- package/lib/server/dispatchers/streamDispatcher.js +52 -48
- package/lib/server/dispatchers/tracingDispatcher.js +47 -52
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
- package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
- package/lib/server/dom.js +485 -582
- package/lib/server/download.js +47 -37
- package/lib/server/electron/electron.js +216 -243
- package/lib/server/electron/loader.js +9 -37
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +317 -360
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -60
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +268 -305
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +92 -73
- package/lib/server/firefox/ffInput.js +82 -84
- package/lib/server/firefox/ffNetworkManager.js +137 -114
- package/lib/server/firefox/ffPage.js +261 -293
- package/lib/server/firefox/firefox.js +80 -72
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +98 -114
- package/lib/server/frames.js +845 -1055
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +290 -223
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +55 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +151 -189
- package/lib/server/instrumentation.js +57 -44
- package/lib/server/javascript.js +133 -134
- package/lib/server/launchApp.js +113 -75
- package/lib/server/localUtils.js +150 -142
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +299 -303
- package/lib/server/page.js +513 -544
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +58 -67
- package/lib/server/progress.js +137 -68
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/recorderApp.js +341 -176
- package/lib/server/recorder/recorderInTraceViewer.js +65 -94
- package/lib/server/recorder/recorderRunner.js +93 -116
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +104 -47
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +395 -275
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +930 -803
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +160 -191
- package/lib/server/selectors.js +90 -51
- package/lib/server/socksClientCertificatesInterceptor.js +171 -186
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/trace/recorder/snapshotter.js +76 -102
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +354 -362
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +160 -147
- package/lib/server/transport.js +119 -134
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +36 -32
- package/lib/server/utils/debugLogger.js +77 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +141 -126
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +152 -96
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +68 -75
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +77 -61
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +193 -184
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +85 -70
- package/lib/server/webkit/wkInput.js +97 -95
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +568 -667
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +79 -79
- package/lib/utils/expectUtils.js +31 -26
- package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +120 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +358 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +46 -39
- package/lib/utils/isomorphic/mimeType.js +447 -25
- package/lib/utils/isomorphic/multimap.js +34 -27
- package/lib/utils/isomorphic/protocolFormatter.js +68 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/recorderUtils.js +140 -181
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +182 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +98 -112
- package/lib/utils/isomorphic/time.js +46 -22
- package/lib/utils/isomorphic/timeoutRunner.js +53 -53
- package/lib/utils/isomorphic/traceUtils.js +37 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +113 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +101 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +1267 -1057
- package/types/types.d.ts +131 -29
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/compare.js +0 -108
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/image_tools/stats.js +0 -102
- package/lib/protocol/debug.js +0 -27
- package/lib/protocol/transport.js +0 -82
- package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/server/recorder/contextRecorder.js +0 -290
- package/lib/server/recorder/recorderCollection.js +0 -104
- package/lib/server/recorder/recorderFrontend.js +0 -5
- package/lib/server/storageScript.js +0 -160
- package/lib/server/timeoutSettings.js +0 -74
- package/lib/third_party/diff_match_patch.js +0 -2222
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -171
- package/lib/utils/crypto.js +0 -174
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -210
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -133
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -121
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -62
- package/lib/vite/htmlReport/index.html +0 -69
- package/lib/vite/recorder/assets/codeMirrorModule-DrMbgOIo.js +0 -16684
- package/lib/vite/recorder/assets/codeMirrorModule-DuST8d_k.css +0 -344
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-5NM3V7eb.css +0 -2524
- package/lib/vite/recorder/assets/index-CT-scFHn.js +0 -16848
- package/lib/vite/recorder/index.html +0 -29
- package/lib/vite/recorder/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-CB-2okZ8.js +0 -16684
- package/lib/vite/traceViewer/assets/defaultSettingsView-CBiB4avC.js +0 -217
- package/lib/vite/traceViewer/assets/inspectorTab-CwgfffWb.js +0 -25143
- package/lib/vite/traceViewer/assets/workbench-CWZselvp.js +0 -2470
- package/lib/vite/traceViewer/assets/xtermModule-Es_gt_u7.js +0 -5994
- package/lib/vite/traceViewer/codeMirrorModule.DuST8d_k.css +0 -344
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.Dp3b_92q.css +0 -41
- package/lib/vite/traceViewer/embedded.BeldSa2G.css +0 -68
- package/lib/vite/traceViewer/embedded.gzudoghF.js +0 -106
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/index.DilotR1h.js +0 -314
- package/lib/vite/traceViewer/index.QewjJ85u.css +0 -131
- package/lib/vite/traceViewer/index.html +0 -47
- package/lib/vite/traceViewer/inspectorTab.DnGm18kV.css +0 -3178
- package/lib/vite/traceViewer/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/recorder.DLgqV9db.css +0 -15
- package/lib/vite/traceViewer/recorder.DVrkq3Um.js +0 -551
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/snapshot.html +0 -21
- package/lib/vite/traceViewer/sw.bundle.js +0 -3
- package/lib/vite/traceViewer/uiMode.C9_OcpPU.js +0 -1756
- package/lib/vite/traceViewer/uiMode.c5ORgcrX.css +0 -1424
- package/lib/vite/traceViewer/uiMode.html +0 -21
- package/lib/vite/traceViewer/workbench.xUZSA8PY.css +0 -787
- package/lib/vite/traceViewer/xtermModule.EsaqrrTX.css +0 -209
|
@@ -1,75 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty
|
|
4
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var processLauncher_exports = {};
|
|
30
|
+
__export(processLauncher_exports, {
|
|
31
|
+
envArrayToObject: () => envArrayToObject,
|
|
32
|
+
gracefullyCloseAll: () => gracefullyCloseAll,
|
|
33
|
+
gracefullyCloseSet: () => gracefullyCloseSet,
|
|
34
|
+
gracefullyProcessExitDoNotHang: () => gracefullyProcessExitDoNotHang,
|
|
35
|
+
launchProcess: () => launchProcess
|
|
5
36
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _fileUtils = require("./fileUtils");
|
|
15
|
-
var _utils = require("../../utils");
|
|
16
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
-
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); }
|
|
18
|
-
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; }
|
|
19
|
-
/**
|
|
20
|
-
* Copyright 2017 Google Inc. All rights reserved.
|
|
21
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
22
|
-
*
|
|
23
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
24
|
-
* you may not use this file except in compliance with the License.
|
|
25
|
-
* You may obtain a copy of the License at
|
|
26
|
-
*
|
|
27
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
28
|
-
*
|
|
29
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
30
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
31
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
32
|
-
* See the License for the specific language governing permissions and
|
|
33
|
-
* limitations under the License.
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
const gracefullyCloseSet = exports.gracefullyCloseSet = new Set();
|
|
37
|
-
const killSet = new Set();
|
|
37
|
+
module.exports = __toCommonJS(processLauncher_exports);
|
|
38
|
+
var childProcess = __toESM(require("child_process"));
|
|
39
|
+
var import_fs = __toESM(require("fs"));
|
|
40
|
+
var readline = __toESM(require("readline"));
|
|
41
|
+
var import_fileUtils = require("./fileUtils");
|
|
42
|
+
var import_utils = require("../../utils");
|
|
43
|
+
const gracefullyCloseSet = /* @__PURE__ */ new Set();
|
|
44
|
+
const killSet = /* @__PURE__ */ new Set();
|
|
38
45
|
async function gracefullyCloseAll() {
|
|
39
|
-
await Promise.all(Array.from(gracefullyCloseSet).map(gracefullyClose => gracefullyClose().catch(e => {
|
|
46
|
+
await Promise.all(Array.from(gracefullyCloseSet).map((gracefullyClose) => gracefullyClose().catch((e) => {
|
|
47
|
+
})));
|
|
40
48
|
}
|
|
41
49
|
function gracefullyProcessExitDoNotHang(code) {
|
|
42
|
-
|
|
43
|
-
// eslint-disable-next-line no-restricted-properties
|
|
44
|
-
setTimeout(() => process.exit(code), 30000);
|
|
45
|
-
// Meanwhile, try to gracefully close all browsers.
|
|
50
|
+
setTimeout(() => process.exit(code), 3e4);
|
|
46
51
|
gracefullyCloseAll().then(() => {
|
|
47
|
-
// eslint-disable-next-line no-restricted-properties
|
|
48
52
|
process.exit(code);
|
|
49
53
|
});
|
|
50
54
|
}
|
|
51
55
|
function exitHandler() {
|
|
52
|
-
for (const kill of killSet)
|
|
56
|
+
for (const kill of killSet)
|
|
57
|
+
kill();
|
|
53
58
|
}
|
|
54
59
|
let sigintHandlerCalled = false;
|
|
55
60
|
function sigintHandler() {
|
|
56
61
|
const exitWithCode130 = () => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// eslint-disable-next-line no-restricted-properties
|
|
60
|
-
setTimeout(() => process.exit(130), 1000);
|
|
62
|
+
if ((0, import_utils.isUnderTest)()) {
|
|
63
|
+
setTimeout(() => process.exit(130), 1e3);
|
|
61
64
|
} else {
|
|
62
|
-
// eslint-disable-next-line no-restricted-properties
|
|
63
65
|
process.exit(130);
|
|
64
66
|
}
|
|
65
67
|
};
|
|
66
68
|
if (sigintHandlerCalled) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// Upon second Ctrl+C, immediately kill browsers and exit.
|
|
71
|
-
// This prevents hanging in the case where closing the browser takes a lot of time or is buggy.
|
|
72
|
-
for (const kill of killSet) kill();
|
|
69
|
+
process.off("SIGINT", sigintHandler);
|
|
70
|
+
for (const kill of killSet)
|
|
71
|
+
kill();
|
|
73
72
|
exitWithCode130();
|
|
74
73
|
} else {
|
|
75
74
|
sigintHandlerCalled = true;
|
|
@@ -82,7 +81,7 @@ function sigtermHandler() {
|
|
|
82
81
|
function sighupHandler() {
|
|
83
82
|
gracefullyCloseAll();
|
|
84
83
|
}
|
|
85
|
-
const installedHandlers = new Set();
|
|
84
|
+
const installedHandlers = /* @__PURE__ */ new Set();
|
|
86
85
|
const processHandlers = {
|
|
87
86
|
exit: exitHandler,
|
|
88
87
|
SIGINT: sigintHandler,
|
|
@@ -96,18 +95,20 @@ function addProcessHandlerIfNeeded(name) {
|
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
function removeProcessHandlersIfNeeded() {
|
|
99
|
-
if (killSet.size)
|
|
100
|
-
|
|
98
|
+
if (killSet.size)
|
|
99
|
+
return;
|
|
100
|
+
for (const handler of installedHandlers)
|
|
101
|
+
process.off(handler, processHandlers[handler]);
|
|
101
102
|
installedHandlers.clear();
|
|
102
103
|
}
|
|
103
104
|
async function launchProcess(options) {
|
|
104
|
-
const stdio = options.stdio ===
|
|
105
|
-
options.log(`<launching> ${options.command} ${options.args ? options.args.join(
|
|
105
|
+
const stdio = options.stdio === "pipe" ? ["ignore", "pipe", "pipe", "pipe", "pipe"] : ["pipe", "pipe", "pipe"];
|
|
106
|
+
options.log(`<launching> ${options.command} ${options.args ? options.args.join(" ") : ""}`);
|
|
106
107
|
const spawnOptions = {
|
|
107
108
|
// On non-windows platforms, `detached: true` makes child process a leader of a new
|
|
108
109
|
// process group, making it possible to kill child process tree with `.kill(-pid)` command.
|
|
109
110
|
// @see https://nodejs.org/api/child_process.html#child_process_options_detached
|
|
110
|
-
detached: process.platform !==
|
|
111
|
+
detached: process.platform !== "win32",
|
|
111
112
|
env: options.env,
|
|
112
113
|
cwd: options.cwd,
|
|
113
114
|
shell: options.shell,
|
|
@@ -115,76 +116,69 @@ async function launchProcess(options) {
|
|
|
115
116
|
};
|
|
116
117
|
const spawnedProcess = childProcess.spawn(options.command, options.args || [], spawnOptions);
|
|
117
118
|
const cleanup = async () => {
|
|
118
|
-
options.log(`[pid=${spawnedProcess.pid ||
|
|
119
|
-
const errors = await (0,
|
|
119
|
+
options.log(`[pid=${spawnedProcess.pid || "N/A"}] starting temporary directories cleanup`);
|
|
120
|
+
const errors = await (0, import_fileUtils.removeFolders)(options.tempDirectories);
|
|
120
121
|
for (let i = 0; i < options.tempDirectories.length; ++i) {
|
|
121
|
-
if (errors[i])
|
|
122
|
+
if (errors[i])
|
|
123
|
+
options.log(`[pid=${spawnedProcess.pid || "N/A"}] exception while removing ${options.tempDirectories[i]}: ${errors[i]}`);
|
|
122
124
|
}
|
|
123
|
-
options.log(`[pid=${spawnedProcess.pid ||
|
|
125
|
+
options.log(`[pid=${spawnedProcess.pid || "N/A"}] finished temporary directories cleanup`);
|
|
124
126
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
spawnedProcess.on('error', () => {});
|
|
127
|
+
spawnedProcess.on("error", () => {
|
|
128
|
+
});
|
|
128
129
|
if (!spawnedProcess.pid) {
|
|
129
130
|
let failed;
|
|
130
131
|
const failedPromise = new Promise((f, r) => failed = f);
|
|
131
|
-
spawnedProcess.once(
|
|
132
|
-
failed(new Error(
|
|
132
|
+
spawnedProcess.once("error", (error) => {
|
|
133
|
+
failed(new Error("Failed to launch: " + error));
|
|
133
134
|
});
|
|
134
|
-
return
|
|
135
|
+
return failedPromise.then((e) => Promise.reject(e));
|
|
135
136
|
}
|
|
136
137
|
options.log(`<launched> pid=${spawnedProcess.pid}`);
|
|
137
|
-
const stdout = readline.createInterface({
|
|
138
|
-
|
|
139
|
-
});
|
|
140
|
-
stdout.on('line', data => {
|
|
138
|
+
const stdout = readline.createInterface({ input: spawnedProcess.stdout });
|
|
139
|
+
stdout.on("line", (data) => {
|
|
141
140
|
options.log(`[pid=${spawnedProcess.pid}][out] ` + data);
|
|
142
141
|
});
|
|
143
|
-
const stderr = readline.createInterface({
|
|
144
|
-
|
|
145
|
-
});
|
|
146
|
-
stderr.on('line', data => {
|
|
142
|
+
const stderr = readline.createInterface({ input: spawnedProcess.stderr });
|
|
143
|
+
stderr.on("line", (data) => {
|
|
147
144
|
options.log(`[pid=${spawnedProcess.pid}][err] ` + data);
|
|
148
145
|
});
|
|
149
146
|
let processClosed = false;
|
|
150
|
-
let fulfillCleanup = () => {
|
|
151
|
-
|
|
152
|
-
|
|
147
|
+
let fulfillCleanup = () => {
|
|
148
|
+
};
|
|
149
|
+
const waitForCleanup = new Promise((f) => fulfillCleanup = f);
|
|
150
|
+
spawnedProcess.once("close", (exitCode, signal) => {
|
|
153
151
|
options.log(`[pid=${spawnedProcess.pid}] <process did exit: exitCode=${exitCode}, signal=${signal}>`);
|
|
154
152
|
processClosed = true;
|
|
155
153
|
gracefullyCloseSet.delete(gracefullyClose);
|
|
156
154
|
killSet.delete(killProcessAndCleanup);
|
|
157
155
|
removeProcessHandlersIfNeeded();
|
|
158
156
|
options.onExit(exitCode, signal);
|
|
159
|
-
// Cleanup as process exits.
|
|
160
157
|
cleanup().then(fulfillCleanup);
|
|
161
158
|
});
|
|
162
|
-
addProcessHandlerIfNeeded(
|
|
163
|
-
if (options.handleSIGINT)
|
|
164
|
-
|
|
165
|
-
if (options.
|
|
159
|
+
addProcessHandlerIfNeeded("exit");
|
|
160
|
+
if (options.handleSIGINT)
|
|
161
|
+
addProcessHandlerIfNeeded("SIGINT");
|
|
162
|
+
if (options.handleSIGTERM)
|
|
163
|
+
addProcessHandlerIfNeeded("SIGTERM");
|
|
164
|
+
if (options.handleSIGHUP)
|
|
165
|
+
addProcessHandlerIfNeeded("SIGHUP");
|
|
166
166
|
gracefullyCloseSet.add(gracefullyClose);
|
|
167
167
|
killSet.add(killProcessAndCleanup);
|
|
168
168
|
let gracefullyClosing = false;
|
|
169
169
|
async function gracefullyClose() {
|
|
170
|
-
// We keep listeners until we are done, to handle 'exit' and 'SIGINT' while
|
|
171
|
-
// asynchronously closing to prevent zombie processes. This might introduce
|
|
172
|
-
// reentrancy to this function, for example user sends SIGINT second time.
|
|
173
|
-
// In this case, let's forcefully kill the process.
|
|
174
170
|
if (gracefullyClosing) {
|
|
175
171
|
options.log(`[pid=${spawnedProcess.pid}] <forcefully close>`);
|
|
176
172
|
killProcess();
|
|
177
|
-
await waitForCleanup;
|
|
173
|
+
await waitForCleanup;
|
|
178
174
|
return;
|
|
179
175
|
}
|
|
180
176
|
gracefullyClosing = true;
|
|
181
177
|
options.log(`[pid=${spawnedProcess.pid}] <gracefully close start>`);
|
|
182
178
|
await options.attemptToGracefullyClose().catch(() => killProcess());
|
|
183
|
-
await waitForCleanup;
|
|
179
|
+
await waitForCleanup;
|
|
184
180
|
options.log(`[pid=${spawnedProcess.pid}] <gracefully close end>`);
|
|
185
181
|
}
|
|
186
|
-
|
|
187
|
-
// This method has to be sync to be used in the 'exit' event handler.
|
|
188
182
|
function killProcess() {
|
|
189
183
|
gracefullyCloseSet.delete(gracefullyClose);
|
|
190
184
|
killSet.delete(killProcessAndCleanup);
|
|
@@ -192,21 +186,19 @@ async function launchProcess(options) {
|
|
|
192
186
|
options.log(`[pid=${spawnedProcess.pid}] <kill>`);
|
|
193
187
|
if (spawnedProcess.pid && !spawnedProcess.killed && !processClosed) {
|
|
194
188
|
options.log(`[pid=${spawnedProcess.pid}] <will force kill>`);
|
|
195
|
-
// Force kill the browser.
|
|
196
189
|
try {
|
|
197
|
-
if (process.platform ===
|
|
198
|
-
const taskkillProcess = childProcess.spawnSync(`taskkill /pid ${spawnedProcess.pid} /T /F`, {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (
|
|
203
|
-
|
|
190
|
+
if (process.platform === "win32") {
|
|
191
|
+
const taskkillProcess = childProcess.spawnSync(`taskkill /pid ${spawnedProcess.pid} /T /F`, { shell: true });
|
|
192
|
+
const [stdout2, stderr2] = [taskkillProcess.stdout.toString(), taskkillProcess.stderr.toString()];
|
|
193
|
+
if (stdout2)
|
|
194
|
+
options.log(`[pid=${spawnedProcess.pid}] taskkill stdout: ${stdout2}`);
|
|
195
|
+
if (stderr2)
|
|
196
|
+
options.log(`[pid=${spawnedProcess.pid}] taskkill stderr: ${stderr2}`);
|
|
204
197
|
} else {
|
|
205
|
-
process.kill(-spawnedProcess.pid,
|
|
198
|
+
process.kill(-spawnedProcess.pid, "SIGKILL");
|
|
206
199
|
}
|
|
207
200
|
} catch (e) {
|
|
208
201
|
options.log(`[pid=${spawnedProcess.pid}] exception while trying to kill process: ${e}`);
|
|
209
|
-
// the process might have already stopped
|
|
210
202
|
}
|
|
211
203
|
} else {
|
|
212
204
|
options.log(`[pid=${spawnedProcess.pid}] <skipped force kill spawnedProcess.killed=${spawnedProcess.killed} processClosed=${processClosed}>`);
|
|
@@ -214,35 +206,33 @@ async function launchProcess(options) {
|
|
|
214
206
|
}
|
|
215
207
|
function killProcessAndCleanup() {
|
|
216
208
|
killProcess();
|
|
217
|
-
options.log(`[pid=${spawnedProcess.pid ||
|
|
209
|
+
options.log(`[pid=${spawnedProcess.pid || "N/A"}] starting temporary directories cleanup`);
|
|
218
210
|
for (const dir of options.tempDirectories) {
|
|
219
211
|
try {
|
|
220
|
-
|
|
221
|
-
force: true,
|
|
222
|
-
recursive: true,
|
|
223
|
-
maxRetries: 5
|
|
224
|
-
});
|
|
212
|
+
import_fs.default.rmSync(dir, { force: true, recursive: true, maxRetries: 5 });
|
|
225
213
|
} catch (e) {
|
|
226
|
-
options.log(`[pid=${spawnedProcess.pid ||
|
|
214
|
+
options.log(`[pid=${spawnedProcess.pid || "N/A"}] exception while removing ${dir}: ${e}`);
|
|
227
215
|
}
|
|
228
216
|
}
|
|
229
|
-
options.log(`[pid=${spawnedProcess.pid ||
|
|
217
|
+
options.log(`[pid=${spawnedProcess.pid || "N/A"}] finished temporary directories cleanup`);
|
|
230
218
|
}
|
|
231
219
|
function killAndWait() {
|
|
232
220
|
killProcess();
|
|
233
221
|
return waitForCleanup;
|
|
234
222
|
}
|
|
235
|
-
return {
|
|
236
|
-
launchedProcess: spawnedProcess,
|
|
237
|
-
gracefullyClose,
|
|
238
|
-
kill: killAndWait
|
|
239
|
-
};
|
|
223
|
+
return { launchedProcess: spawnedProcess, gracefullyClose, kill: killAndWait };
|
|
240
224
|
}
|
|
241
225
|
function envArrayToObject(env) {
|
|
242
226
|
const result = {};
|
|
243
|
-
for (const {
|
|
244
|
-
name
|
|
245
|
-
value
|
|
246
|
-
} of env) result[name] = value;
|
|
227
|
+
for (const { name, value } of env)
|
|
228
|
+
result[name] = value;
|
|
247
229
|
return result;
|
|
248
|
-
}
|
|
230
|
+
}
|
|
231
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
232
|
+
0 && (module.exports = {
|
|
233
|
+
envArrayToObject,
|
|
234
|
+
gracefullyCloseAll,
|
|
235
|
+
gracefullyCloseSet,
|
|
236
|
+
gracefullyProcessExitDoNotHang,
|
|
237
|
+
launchProcess
|
|
238
|
+
});
|
|
@@ -1,52 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty
|
|
4
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var profiler_exports = {};
|
|
30
|
+
__export(profiler_exports, {
|
|
31
|
+
startProfiling: () => startProfiling,
|
|
32
|
+
stopProfiling: () => stopProfiling
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
-
/**
|
|
12
|
-
* Copyright Microsoft Corporation. All rights reserved.
|
|
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
|
-
const profileDir = process.env.PWTEST_PROFILE_DIR || '';
|
|
34
|
+
module.exports = __toCommonJS(profiler_exports);
|
|
35
|
+
var import_fs = __toESM(require("fs"));
|
|
36
|
+
var import_path = __toESM(require("path"));
|
|
37
|
+
const profileDir = process.env.PWTEST_PROFILE_DIR || "";
|
|
28
38
|
let session;
|
|
29
39
|
async function startProfiling() {
|
|
30
|
-
if (!profileDir)
|
|
31
|
-
|
|
40
|
+
if (!profileDir)
|
|
41
|
+
return;
|
|
42
|
+
session = new (require("inspector")).Session();
|
|
32
43
|
session.connect();
|
|
33
|
-
await new Promise(f => {
|
|
34
|
-
session.post(
|
|
35
|
-
session.post(
|
|
44
|
+
await new Promise((f) => {
|
|
45
|
+
session.post("Profiler.enable", () => {
|
|
46
|
+
session.post("Profiler.start", f);
|
|
36
47
|
});
|
|
37
48
|
});
|
|
38
49
|
}
|
|
39
50
|
async function stopProfiling(profileName) {
|
|
40
|
-
if (!profileDir)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}) => {
|
|
51
|
+
if (!profileDir)
|
|
52
|
+
return;
|
|
53
|
+
await new Promise((f) => session.post("Profiler.stop", (err, { profile }) => {
|
|
44
54
|
if (!err) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
});
|
|
48
|
-
_fs.default.writeFileSync(_path.default.join(profileDir, profileName + '.json'), JSON.stringify(profile));
|
|
55
|
+
import_fs.default.mkdirSync(profileDir, { recursive: true });
|
|
56
|
+
import_fs.default.writeFileSync(import_path.default.join(profileDir, profileName + ".json"), JSON.stringify(profile));
|
|
49
57
|
}
|
|
50
58
|
f();
|
|
51
59
|
}));
|
|
52
|
-
}
|
|
60
|
+
}
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
startProfiling,
|
|
64
|
+
stopProfiling
|
|
65
|
+
});
|