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.
Files changed (303) hide show
  1. package/browsers.json +15 -13
  2. package/lib/androidServerImpl.js +42 -48
  3. package/lib/browserServerImpl.js +54 -67
  4. package/lib/cli/driver.js +71 -69
  5. package/lib/cli/program.js +312 -328
  6. package/lib/cli/programWithTestStub.js +51 -45
  7. package/lib/client/accessibility.js +31 -32
  8. package/lib/client/android.js +141 -228
  9. package/lib/client/api.js +135 -283
  10. package/lib/client/artifact.js +39 -36
  11. package/lib/client/browser.js +57 -61
  12. package/lib/client/browserContext.js +297 -326
  13. package/lib/client/browserType.js +92 -106
  14. package/lib/client/cdpSession.js +29 -31
  15. package/lib/client/channelOwner.js +82 -95
  16. package/lib/client/clientHelper.js +46 -38
  17. package/lib/client/clientInstrumentation.js +40 -37
  18. package/lib/client/clientStackTrace.js +41 -37
  19. package/lib/client/clock.js +36 -36
  20. package/lib/client/connection.js +190 -212
  21. package/lib/client/consoleMessage.js +31 -28
  22. package/lib/client/coverage.js +25 -22
  23. package/lib/client/dialog.js +30 -31
  24. package/lib/client/download.js +25 -25
  25. package/lib/client/electron.js +73 -75
  26. package/lib/client/elementHandle.js +111 -147
  27. package/lib/client/errors.js +53 -53
  28. package/lib/client/eventEmitter.js +124 -121
  29. package/lib/client/events.js +72 -68
  30. package/lib/client/fetch.js +135 -158
  31. package/lib/client/fileChooser.js +25 -24
  32. package/lib/client/fileUtils.js +31 -28
  33. package/lib/client/frame.js +187 -306
  34. package/lib/client/harRouter.js +42 -52
  35. package/lib/client/input.js +40 -69
  36. package/lib/client/jsHandle.js +54 -69
  37. package/lib/client/jsonPipe.js +27 -23
  38. package/lib/client/localUtils.js +29 -28
  39. package/lib/client/locator.js +161 -245
  40. package/lib/client/network.js +277 -295
  41. package/lib/client/page.js +270 -318
  42. package/lib/client/platform.js +46 -43
  43. package/lib/client/playwright.js +51 -66
  44. package/lib/client/selectors.js +48 -46
  45. package/lib/client/stream.js +29 -25
  46. package/lib/client/timeoutSettings.js +49 -39
  47. package/lib/client/tracing.js +48 -84
  48. package/lib/client/types.js +26 -22
  49. package/lib/client/video.js +35 -27
  50. package/lib/client/waiter.js +69 -88
  51. package/lib/client/webError.js +25 -23
  52. package/lib/client/webSocket.js +61 -56
  53. package/lib/client/worker.js +48 -58
  54. package/lib/client/writableStream.js +27 -23
  55. package/lib/generated/clockSource.js +26 -5
  56. package/lib/generated/consoleApiSource.js +26 -5
  57. package/lib/generated/injectedScriptSource.js +26 -5
  58. package/lib/generated/pollingRecorderSource.js +26 -5
  59. package/lib/generated/utilityScriptSource.js +26 -5
  60. package/lib/generated/webSocketMockSource.js +375 -4
  61. package/lib/inProcessFactory.js +53 -53
  62. package/lib/inprocess.js +2 -19
  63. package/lib/outofprocess.js +53 -46
  64. package/lib/protocol/debug.js +209 -25
  65. package/lib/protocol/serializers.js +153 -134
  66. package/lib/protocol/validator.js +2714 -2714
  67. package/lib/protocol/validatorPrimitives.js +114 -73
  68. package/lib/remote/playwrightConnection.js +140 -157
  69. package/lib/remote/playwrightServer.js +99 -84
  70. package/lib/server/accessibility.js +44 -37
  71. package/lib/server/android/android.js +216 -209
  72. package/lib/server/android/backendAdb.js +89 -82
  73. package/lib/server/artifact.js +78 -55
  74. package/lib/server/bidi/bidiBrowser.js +221 -155
  75. package/lib/server/bidi/bidiChromium.js +106 -79
  76. package/lib/server/bidi/bidiConnection.js +66 -83
  77. package/lib/server/bidi/bidiExecutionContext.js +128 -113
  78. package/lib/server/bidi/bidiFirefox.js +76 -69
  79. package/lib/server/bidi/bidiInput.js +86 -97
  80. package/lib/server/bidi/bidiNetworkManager.js +137 -154
  81. package/lib/server/bidi/bidiOverCdp.js +57 -58
  82. package/lib/server/bidi/bidiPage.js +247 -219
  83. package/lib/server/bidi/bidiPdf.js +52 -86
  84. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  85. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  86. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  87. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  88. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  89. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  90. package/lib/server/browser.js +76 -84
  91. package/lib/server/browserContext.js +321 -346
  92. package/lib/server/browserType.js +169 -182
  93. package/lib/server/callLog.js +47 -44
  94. package/lib/server/chromium/chromium.js +212 -190
  95. package/lib/server/chromium/chromiumSwitches.js +86 -64
  96. package/lib/server/chromium/crAccessibility.js +157 -131
  97. package/lib/server/chromium/crBrowser.js +253 -273
  98. package/lib/server/chromium/crConnection.js +91 -116
  99. package/lib/server/chromium/crCoverage.js +113 -127
  100. package/lib/server/chromium/crDevTools.js +59 -51
  101. package/lib/server/chromium/crDragDrop.js +62 -79
  102. package/lib/server/chromium/crExecutionContext.js +88 -83
  103. package/lib/server/chromium/crInput.js +97 -95
  104. package/lib/server/chromium/crNetworkManager.js +288 -403
  105. package/lib/server/chromium/crPage.js +522 -608
  106. package/lib/server/chromium/crPdf.js +54 -86
  107. package/lib/server/chromium/crProtocolHelper.js +92 -80
  108. package/lib/server/chromium/crServiceWorker.js +82 -67
  109. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  110. package/lib/server/chromium/protocol.d.js +16 -0
  111. package/lib/server/chromium/videoRecorder.js +65 -99
  112. package/lib/server/clock.js +62 -50
  113. package/lib/server/codegen/csharp.js +185 -160
  114. package/lib/server/codegen/java.js +155 -128
  115. package/lib/server/codegen/javascript.js +163 -148
  116. package/lib/server/codegen/jsonl.js +32 -28
  117. package/lib/server/codegen/language.js +75 -52
  118. package/lib/server/codegen/languages.js +65 -27
  119. package/lib/server/codegen/python.js +140 -125
  120. package/lib/server/codegen/types.js +15 -4
  121. package/lib/server/console.js +28 -32
  122. package/lib/server/cookieStore.js +105 -86
  123. package/lib/server/debugController.js +97 -124
  124. package/lib/server/debugger.js +82 -78
  125. package/lib/server/deviceDescriptors.js +37 -24
  126. package/lib/server/deviceDescriptorsSource.json +50 -50
  127. package/lib/server/dialog.js +36 -35
  128. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  129. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  130. package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
  131. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  132. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  133. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  134. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
  135. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  136. package/lib/server/dispatchers/dispatcher.js +169 -220
  137. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  138. package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
  139. package/lib/server/dispatchers/frameDispatcher.js +99 -163
  140. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  141. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  142. package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
  143. package/lib/server/dispatchers/networkDispatchers.js +90 -107
  144. package/lib/server/dispatchers/pageDispatcher.js +128 -169
  145. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  146. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  147. package/lib/server/dispatchers/streamDispatcher.js +42 -45
  148. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  149. package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
  150. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
  151. package/lib/server/dom.js +413 -443
  152. package/lib/server/download.js +45 -35
  153. package/lib/server/electron/electron.js +156 -176
  154. package/lib/server/electron/loader.js +8 -36
  155. package/lib/server/errors.js +47 -46
  156. package/lib/server/fetch.js +289 -323
  157. package/lib/server/fileChooser.js +25 -24
  158. package/lib/server/fileUploadUtils.js +65 -59
  159. package/lib/server/firefox/ffAccessibility.js +153 -131
  160. package/lib/server/firefox/ffBrowser.js +213 -277
  161. package/lib/server/firefox/ffConnection.js +63 -84
  162. package/lib/server/firefox/ffExecutionContext.js +91 -73
  163. package/lib/server/firefox/ffInput.js +67 -69
  164. package/lib/server/firefox/ffNetworkManager.js +131 -110
  165. package/lib/server/firefox/ffPage.js +236 -273
  166. package/lib/server/firefox/firefox.js +76 -67
  167. package/lib/server/firefox/protocol.d.js +16 -0
  168. package/lib/server/formData.js +107 -35
  169. package/lib/server/frameSelectors.js +77 -111
  170. package/lib/server/frames.js +741 -891
  171. package/lib/server/har/harRecorder.js +85 -77
  172. package/lib/server/har/harTracer.js +287 -222
  173. package/lib/server/harBackend.js +80 -80
  174. package/lib/server/helper.js +56 -59
  175. package/lib/server/index.js +59 -99
  176. package/lib/server/input.js +134 -163
  177. package/lib/server/instrumentation.js +49 -44
  178. package/lib/server/javascript.js +143 -134
  179. package/lib/server/launchApp.js +92 -73
  180. package/lib/server/localUtils.js +130 -122
  181. package/lib/server/macEditingCommands.js +141 -137
  182. package/lib/server/network.js +262 -296
  183. package/lib/server/page.js +329 -426
  184. package/lib/server/pageBinding.js +88 -0
  185. package/lib/server/pipeTransport.js +49 -45
  186. package/lib/server/playwright.js +60 -67
  187. package/lib/server/progress.js +56 -51
  188. package/lib/server/protocolError.js +34 -31
  189. package/lib/server/recorder/chat.js +70 -86
  190. package/lib/server/recorder/contextRecorder.js +134 -138
  191. package/lib/server/recorder/recorderApp.js +127 -136
  192. package/lib/server/recorder/recorderCollection.js +56 -44
  193. package/lib/server/recorder/recorderFrontend.js +15 -4
  194. package/lib/server/recorder/recorderRunner.js +79 -103
  195. package/lib/server/recorder/recorderUtils.js +56 -45
  196. package/lib/server/recorder/throttledFile.js +42 -30
  197. package/lib/server/recorder.js +177 -186
  198. package/lib/server/registry/browserFetcher.js +106 -101
  199. package/lib/server/registry/dependencies.js +245 -196
  200. package/lib/server/registry/index.js +904 -792
  201. package/lib/server/registry/nativeDeps.js +1073 -464
  202. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  203. package/lib/server/screenshotter.js +166 -182
  204. package/lib/server/selectors.js +85 -46
  205. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  206. package/lib/server/socksInterceptor.js +62 -70
  207. package/lib/server/storageScript.js +94 -100
  208. package/lib/server/timeoutSettings.js +58 -43
  209. package/lib/server/trace/recorder/snapshotter.js +70 -89
  210. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  211. package/lib/server/trace/recorder/tracing.js +321 -333
  212. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  213. package/lib/server/trace/viewer/traceViewer.js +168 -146
  214. package/lib/server/transport.js +124 -133
  215. package/lib/server/types.js +26 -22
  216. package/lib/server/usKeyboardLayout.js +135 -545
  217. package/lib/server/utils/ascii.js +39 -26
  218. package/lib/server/utils/comparators.js +105 -103
  219. package/lib/server/utils/crypto.js +157 -112
  220. package/lib/server/utils/debug.js +37 -28
  221. package/lib/server/utils/debugLogger.js +69 -48
  222. package/lib/server/utils/env.js +52 -37
  223. package/lib/server/utils/eventsHelper.js +29 -28
  224. package/lib/server/utils/expectUtils.js +31 -26
  225. package/lib/server/utils/fileUtils.js +123 -136
  226. package/lib/server/utils/happyEyeballs.js +138 -123
  227. package/lib/server/utils/hostPlatform.js +84 -120
  228. package/lib/server/utils/httpServer.js +106 -121
  229. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  230. package/lib/server/utils/image_tools/compare.js +44 -43
  231. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  232. package/lib/server/utils/image_tools/stats.js +40 -40
  233. package/lib/server/utils/linuxUtils.js +50 -37
  234. package/lib/server/utils/network.js +143 -86
  235. package/lib/server/utils/nodePlatform.js +87 -79
  236. package/lib/server/utils/pipeTransport.js +44 -42
  237. package/lib/server/utils/processLauncher.js +111 -121
  238. package/lib/server/utils/profiler.js +52 -39
  239. package/lib/server/utils/socksProxy.js +280 -339
  240. package/lib/server/utils/spawnAsync.js +37 -41
  241. package/lib/server/utils/task.js +31 -38
  242. package/lib/server/utils/userAgent.js +73 -66
  243. package/lib/server/utils/wsServer.js +73 -69
  244. package/lib/server/utils/zipFile.js +36 -37
  245. package/lib/server/utils/zones.js +37 -34
  246. package/lib/server/webkit/protocol.d.js +16 -0
  247. package/lib/server/webkit/webkit.js +76 -63
  248. package/lib/server/webkit/wkAccessibility.js +161 -118
  249. package/lib/server/webkit/wkBrowser.js +159 -176
  250. package/lib/server/webkit/wkConnection.js +59 -83
  251. package/lib/server/webkit/wkExecutionContext.js +84 -70
  252. package/lib/server/webkit/wkInput.js +82 -80
  253. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  254. package/lib/server/webkit/wkPage.js +525 -619
  255. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  256. package/lib/server/webkit/wkWorkers.js +77 -77
  257. package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
  258. package/lib/utils/isomorphic/assert.js +28 -22
  259. package/lib/utils/isomorphic/builtins.js +90 -0
  260. package/lib/utils/isomorphic/colors.js +66 -59
  261. package/lib/utils/isomorphic/cssParser.js +121 -125
  262. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  263. package/lib/utils/isomorphic/headers.js +38 -37
  264. package/lib/utils/isomorphic/locatorGenerators.js +340 -357
  265. package/lib/utils/isomorphic/locatorParser.js +96 -105
  266. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  267. package/lib/utils/isomorphic/manualPromise.js +47 -39
  268. package/lib/utils/isomorphic/mimeType.js +448 -25
  269. package/lib/utils/isomorphic/multimap.js +35 -27
  270. package/lib/utils/isomorphic/rtti.js +35 -33
  271. package/lib/utils/isomorphic/selectorParser.js +183 -193
  272. package/lib/utils/isomorphic/semaphore.js +27 -24
  273. package/lib/utils/isomorphic/stackTrace.js +87 -98
  274. package/lib/utils/isomorphic/stringUtils.js +113 -106
  275. package/lib/utils/isomorphic/time.js +41 -22
  276. package/lib/utils/isomorphic/timeoutRunner.js +55 -54
  277. package/lib/utils/isomorphic/traceUtils.js +38 -41
  278. package/lib/utils/isomorphic/types.js +15 -4
  279. package/lib/utils/isomorphic/urlMatch.js +112 -67
  280. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  281. package/lib/utils.js +97 -443
  282. package/lib/utilsBundle.js +101 -52
  283. package/lib/vite/htmlReport/index.html +21 -15
  284. package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
  285. package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
  286. package/lib/vite/recorder/index.html +1 -1
  287. package/lib/vite/traceViewer/assets/{codeMirrorModule-DpJ-EmBQ.js → codeMirrorModule-dvXVzLxY.js} +1 -1
  288. package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
  289. package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
  290. package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
  291. package/lib/vite/traceViewer/index.html +3 -3
  292. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  293. package/lib/vite/traceViewer/uiMode.html +3 -3
  294. package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
  295. package/lib/zipBundle.js +32 -23
  296. package/package.json +1 -1
  297. package/types/protocol.d.ts +436 -17
  298. package/types/types.d.ts +35 -16
  299. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  300. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  301. package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +0 -259
  302. package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
  303. package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
@@ -1,45 +1,59 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 javascript_exports = {};
30
+ __export(javascript_exports, {
31
+ ExecutionContext: () => ExecutionContext,
32
+ JSHandle: () => JSHandle,
33
+ JavaScriptErrorInEvaluate: () => JavaScriptErrorInEvaluate,
34
+ evaluate: () => evaluate,
35
+ evaluateExpression: () => evaluateExpression,
36
+ isJavaScriptErrorInEvaluate: () => isJavaScriptErrorInEvaluate,
37
+ normalizeEvaluationExpression: () => normalizeEvaluationExpression,
38
+ parseEvaluationResultValue: () => parseEvaluationResultValue,
39
+ parseUnserializableValue: () => parseUnserializableValue,
40
+ serializeAsCallArgument: () => serializeAsCallArgument,
41
+ sparseArrayToString: () => sparseArrayToString
5
42
  });
6
- exports.JavaScriptErrorInEvaluate = exports.JSHandle = exports.ExecutionContext = void 0;
7
- exports.evaluate = evaluate;
8
- exports.evaluateExpression = evaluateExpression;
9
- exports.isJavaScriptErrorInEvaluate = isJavaScriptErrorInEvaluate;
10
- exports.normalizeEvaluationExpression = normalizeEvaluationExpression;
11
- exports.parseUnserializableValue = parseUnserializableValue;
12
- exports.sparseArrayToString = sparseArrayToString;
13
- var _instrumentation = require("./instrumentation");
14
- var utilityScriptSource = _interopRequireWildcard(require("../generated/utilityScriptSource"));
15
- var _utils = require("../utils");
16
- var _utilityScriptSerializers = require("./isomorphic/utilityScriptSerializers");
17
- var _manualPromise = require("../utils/isomorphic/manualPromise");
18
- 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); }
19
- 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; }
20
- /**
21
- * 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
- class ExecutionContext extends _instrumentation.SdkObject {
43
+ module.exports = __toCommonJS(javascript_exports);
44
+ var import_instrumentation = require("./instrumentation");
45
+ var utilityScriptSource = __toESM(require("../generated/utilityScriptSource"));
46
+ var import_utils = require("../utils");
47
+ var import_builtins = require("../utils/isomorphic/builtins");
48
+ var import_utilityScriptSerializers = require("../utils/isomorphic/utilityScriptSerializers");
49
+ var import_manualPromise = require("../utils/isomorphic/manualPromise");
50
+ const utilityScriptSerializers = (0, import_utilityScriptSerializers.source)((0, import_builtins.builtins)());
51
+ const parseEvaluationResultValue = utilityScriptSerializers.parseEvaluationResultValue;
52
+ const serializeAsCallArgument = utilityScriptSerializers.serializeAsCallArgument;
53
+ class ExecutionContext extends import_instrumentation.SdkObject {
37
54
  constructor(parent, delegate, worldNameForTest) {
38
- super(parent, 'execution-context');
39
- this.delegate = void 0;
40
- this._utilityScriptPromise = void 0;
41
- this._contextDestroyedScope = new _manualPromise.LongStandingScope();
42
- this.worldNameForTest = void 0;
55
+ super(parent, "execution-context");
56
+ this._contextDestroyedScope = new import_manualPromise.LongStandingScope();
43
57
  this.worldNameForTest = worldNameForTest;
44
58
  this.delegate = delegate;
45
59
  }
@@ -70,60 +84,51 @@ class ExecutionContext extends _instrumentation.SdkObject {
70
84
  }
71
85
  _utilityScript() {
72
86
  if (!this._utilityScriptPromise) {
73
- const source = `
87
+ const source2 = `
74
88
  (() => {
75
89
  const module = {};
76
90
  ${utilityScriptSource.source}
77
- return new (module.exports.UtilityScript())(${(0, _utils.isUnderTest)()});
91
+ return new (module.exports.UtilityScript())(${(0, import_utils.isUnderTest)()});
78
92
  })();`;
79
- this._utilityScriptPromise = this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, source)).then(handle => {
80
- handle._setPreview('UtilityScript');
93
+ this._utilityScriptPromise = this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, source2)).then((handle) => {
94
+ handle._setPreview("UtilityScript");
81
95
  return handle;
82
96
  });
83
97
  }
84
98
  return this._utilityScriptPromise;
85
99
  }
86
100
  async doSlowMo() {
87
- // overridden in FrameExecutionContext
88
101
  }
89
102
  }
90
- exports.ExecutionContext = ExecutionContext;
91
- class JSHandle extends _instrumentation.SdkObject {
103
+ class JSHandle extends import_instrumentation.SdkObject {
92
104
  constructor(context, type, preview, objectId, value) {
93
- super(context, 'handle');
105
+ super(context, "handle");
94
106
  this.__jshandle = true;
95
- this._context = void 0;
96
107
  this._disposed = false;
97
- this._objectId = void 0;
98
- this._value = void 0;
99
- this._objectType = void 0;
100
- this._preview = void 0;
101
- this._previewCallback = void 0;
102
108
  this._context = context;
103
109
  this._objectId = objectId;
104
110
  this._value = value;
105
111
  this._objectType = type;
106
112
  this._preview = this._objectId ? preview || `JSHandle@${this._objectType}` : String(value);
107
- if (this._objectId && globalThis.leakedJSHandles) globalThis.leakedJSHandles.set(this, new Error('Leaked JSHandle'));
113
+ if (this._objectId && globalThis.leakedJSHandles)
114
+ globalThis.leakedJSHandles.set(this, new Error("Leaked JSHandle"));
108
115
  }
109
116
  async evaluate(pageFunction, arg) {
110
- return evaluate(this._context, true /* returnByValue */, pageFunction, this, arg);
117
+ return evaluate(this._context, true, pageFunction, this, arg);
111
118
  }
112
119
  async evaluateHandle(pageFunction, arg) {
113
- return evaluate(this._context, false /* returnByValue */, pageFunction, this, arg);
120
+ return evaluate(this._context, false, pageFunction, this, arg);
114
121
  }
115
122
  async evaluateExpression(expression, options, arg, isolatedContext) {
116
123
  let context = this._context;
117
124
  if (context.constructor.name === "FrameExecutionContext") {
118
125
  const frame = context.frame;
119
126
  if (frame) {
120
- if (isolatedContext) context = await frame._utilityContext();else if (!isolatedContext) context = await frame._mainContext();
127
+ if (isolatedContext) context = await frame._utilityContext();
128
+ else if (!isolatedContext) context = await frame._mainContext();
121
129
  }
122
130
  }
123
- const value = await evaluateExpression(context, expression, {
124
- ...options,
125
- returnByValue: true
126
- }, this, arg);
131
+ const value = await evaluateExpression(context, expression, { ...options, returnByValue: true }, this, arg);
127
132
  await context.doSlowMo();
128
133
  return value;
129
134
  }
@@ -132,23 +137,19 @@ class JSHandle extends _instrumentation.SdkObject {
132
137
  if (this._context.constructor.name === "FrameExecutionContext") {
133
138
  const frame = this._context.frame;
134
139
  if (frame) {
135
- if (isolatedContext) context = await frame._utilityContext();else if (!isolatedContext) context = await frame._mainContext();
140
+ if (isolatedContext) context = await frame._utilityContext();
141
+ else if (!isolatedContext) context = await frame._mainContext();
136
142
  }
137
143
  }
138
- const value = await evaluateExpression(context, expression, {
139
- ...options,
140
- returnByValue: false
141
- }, this, arg);
144
+ const value = await evaluateExpression(context, expression, { ...options, returnByValue: false }, this, arg);
142
145
  await context.doSlowMo();
143
146
  return value;
144
147
  }
145
148
  async getProperty(propertyName) {
146
- const objectHandle = await this.evaluateHandle((object, propertyName) => {
147
- const result = {
148
- __proto__: null
149
- };
150
- result[propertyName] = object[propertyName];
151
- return result;
149
+ const objectHandle = await this.evaluateHandle((object, propertyName2) => {
150
+ const result2 = { __proto__: null };
151
+ result2[propertyName2] = object[propertyName2];
152
+ return result2;
152
153
  }, propertyName);
153
154
  const properties = await objectHandle.getProperties();
154
155
  const result = properties.get(propertyName);
@@ -156,14 +157,16 @@ class JSHandle extends _instrumentation.SdkObject {
156
157
  return result;
157
158
  }
158
159
  async getProperties() {
159
- if (!this._objectId) return new Map();
160
+ if (!this._objectId)
161
+ return /* @__PURE__ */ new Map();
160
162
  return this._context.getProperties(this);
161
163
  }
162
164
  rawValue() {
163
165
  return this._value;
164
166
  }
165
167
  async jsonValue() {
166
- if (!this._objectId) return this._value;
168
+ if (!this._objectId)
169
+ return this._value;
167
170
  const script = `(utilityScript, ...args) => utilityScript.jsonValue(...args)`;
168
171
  return this._context.evaluateWithArguments(script, true, [true], [this]);
169
172
  }
@@ -171,11 +174,14 @@ class JSHandle extends _instrumentation.SdkObject {
171
174
  return null;
172
175
  }
173
176
  dispose() {
174
- if (this._disposed) return;
177
+ if (this._disposed)
178
+ return;
175
179
  this._disposed = true;
176
180
  if (this._objectId) {
177
- this._context.releaseHandle(this).catch(e => {});
178
- if (globalThis.leakedJSHandles) globalThis.leakedJSHandles.delete(this);
181
+ this._context.releaseHandle(this).catch((e) => {
182
+ });
183
+ if (globalThis.leakedJSHandles)
184
+ globalThis.leakedJSHandles.delete(this);
179
185
  }
180
186
  }
181
187
  toString() {
@@ -192,115 +198,118 @@ class JSHandle extends _instrumentation.SdkObject {
192
198
  }
193
199
  _setPreview(preview) {
194
200
  this._preview = preview;
195
- if (this._previewCallback) this._previewCallback(preview);
201
+ if (this._previewCallback)
202
+ this._previewCallback(preview);
196
203
  }
197
204
  }
198
- exports.JSHandle = JSHandle;
199
205
  async function evaluate(context, returnByValue, pageFunction, ...args) {
200
- return evaluateExpression(context, String(pageFunction), {
201
- returnByValue,
202
- isFunction: typeof pageFunction === 'function'
203
- }, ...args);
206
+ return evaluateExpression(context, String(pageFunction), { returnByValue, isFunction: typeof pageFunction === "function" }, ...args);
204
207
  }
205
208
  async function evaluateExpression(context, expression, options, ...args) {
206
209
  expression = normalizeEvaluationExpression(expression, options.isFunction);
207
210
  const handles = [];
208
211
  const toDispose = [];
209
- const pushHandle = handle => {
212
+ const pushHandle = (handle) => {
210
213
  handles.push(handle);
211
214
  return handles.length - 1;
212
215
  };
213
- args = args.map(arg => (0, _utilityScriptSerializers.serializeAsCallArgument)(arg, handle => {
216
+ args = args.map((arg) => serializeAsCallArgument(arg, (handle) => {
214
217
  if (handle instanceof JSHandle) {
215
- if (!handle._objectId) return {
216
- fallThrough: handle._value
217
- };
218
- if (handle._disposed) throw new JavaScriptErrorInEvaluate('JSHandle is disposed!');
218
+ if (!handle._objectId)
219
+ return { fallThrough: handle._value };
220
+ if (handle._disposed)
221
+ throw new JavaScriptErrorInEvaluate("JSHandle is disposed!");
219
222
  const adopted = context.adoptIfNeeded(handle);
220
- if (adopted === null) return {
221
- h: pushHandle(Promise.resolve(handle))
222
- };
223
+ if (adopted === null)
224
+ return { h: pushHandle(Promise.resolve(handle)) };
223
225
  toDispose.push(adopted);
224
- return {
225
- h: pushHandle(adopted)
226
- };
226
+ return { h: pushHandle(adopted) };
227
227
  }
228
- return {
229
- fallThrough: handle
230
- };
228
+ return { fallThrough: handle };
231
229
  }));
232
230
  const utilityScriptObjects = [];
233
231
  for (const handle of await Promise.all(handles)) {
234
- if (handle._context !== context) throw new JavaScriptErrorInEvaluate('JSHandles can be evaluated only in the context they were created!');
232
+ if (handle._context !== context)
233
+ throw new JavaScriptErrorInEvaluate("JSHandles can be evaluated only in the context they were created!");
235
234
  utilityScriptObjects.push(handle);
236
235
  }
237
-
238
- // See UtilityScript for arguments.
239
236
  const utilityScriptValues = [options.isFunction, options.returnByValue, expression, args.length, ...args];
240
237
  const script = `(utilityScript, ...args) => utilityScript.evaluate(...args)`;
241
238
  try {
242
239
  return await context.evaluateWithArguments(script, options.returnByValue || false, utilityScriptValues, utilityScriptObjects);
243
240
  } finally {
244
- toDispose.map(handlePromise => handlePromise.then(handle => handle.dispose()));
241
+ toDispose.map((handlePromise) => handlePromise.then((handle) => handle.dispose()));
245
242
  }
246
243
  }
247
244
  function parseUnserializableValue(unserializableValue) {
248
- if (unserializableValue === 'NaN') return NaN;
249
- if (unserializableValue === 'Infinity') return Infinity;
250
- if (unserializableValue === '-Infinity') return -Infinity;
251
- if (unserializableValue === '-0') return -0;
245
+ if (unserializableValue === "NaN")
246
+ return NaN;
247
+ if (unserializableValue === "Infinity")
248
+ return Infinity;
249
+ if (unserializableValue === "-Infinity")
250
+ return -Infinity;
251
+ if (unserializableValue === "-0")
252
+ return -0;
252
253
  }
253
254
  function normalizeEvaluationExpression(expression, isFunction) {
254
255
  expression = expression.trim();
255
256
  if (isFunction) {
256
257
  try {
257
- new Function('(' + expression + ')');
258
+ new Function("(" + expression + ")");
258
259
  } catch (e1) {
259
- // This means we might have a function shorthand. Try another
260
- // time prefixing 'function '.
261
- if (expression.startsWith('async ')) expression = 'async function ' + expression.substring('async '.length);else expression = 'function ' + expression;
260
+ if (expression.startsWith("async "))
261
+ expression = "async function " + expression.substring("async ".length);
262
+ else
263
+ expression = "function " + expression;
262
264
  try {
263
- new Function('(' + expression + ')');
265
+ new Function("(" + expression + ")");
264
266
  } catch (e2) {
265
- // We tried hard to serialize, but there's a weird beast here.
266
- throw new Error('Passed function is not well-serializable!');
267
+ throw new Error("Passed function is not well-serializable!");
267
268
  }
268
269
  }
269
270
  }
270
- if (/^(async)?\s*function(\s|\()/.test(expression)) expression = '(' + expression + ')';
271
+ if (/^(async)?\s*function(\s|\()/.test(expression))
272
+ expression = "(" + expression + ")";
271
273
  return expression;
272
274
  }
273
-
274
- // Error inside the expression evaluation as opposed to a protocol error.
275
- class JavaScriptErrorInEvaluate extends Error {}
276
- exports.JavaScriptErrorInEvaluate = JavaScriptErrorInEvaluate;
275
+ class JavaScriptErrorInEvaluate extends Error {
276
+ }
277
277
  function isJavaScriptErrorInEvaluate(error) {
278
278
  return error instanceof JavaScriptErrorInEvaluate;
279
279
  }
280
280
  function sparseArrayToString(entries) {
281
281
  const arrayEntries = [];
282
- for (const {
283
- name,
284
- value
285
- } of entries) {
282
+ for (const { name, value } of entries) {
286
283
  const index = +name;
287
- if (isNaN(index) || index < 0) continue;
288
- arrayEntries.push({
289
- index,
290
- value
291
- });
284
+ if (isNaN(index) || index < 0)
285
+ continue;
286
+ arrayEntries.push({ index, value });
292
287
  }
293
288
  arrayEntries.sort((a, b) => a.index - b.index);
294
289
  let lastIndex = -1;
295
290
  const tokens = [];
296
- for (const {
297
- index,
298
- value
299
- } of arrayEntries) {
291
+ for (const { index, value } of arrayEntries) {
300
292
  const emptyItems = index - lastIndex - 1;
301
- if (emptyItems === 1) tokens.push(`empty`);else if (emptyItems > 1) tokens.push(`empty x ${emptyItems}`);
293
+ if (emptyItems === 1)
294
+ tokens.push(`empty`);
295
+ else if (emptyItems > 1)
296
+ tokens.push(`empty x ${emptyItems}`);
302
297
  tokens.push(String(value));
303
298
  lastIndex = index;
304
299
  }
305
- return '[' + tokens.join(', ') + ']';
306
- }
300
+ return "[" + tokens.join(", ") + "]";
301
+ }
302
+ // Annotate the CommonJS export names for ESM import in node:
303
+ 0 && (module.exports = {
304
+ ExecutionContext,
305
+ JSHandle,
306
+ JavaScriptErrorInEvaluate,
307
+ evaluate,
308
+ evaluateExpression,
309
+ isJavaScriptErrorInEvaluate,
310
+ normalizeEvaluationExpression,
311
+ parseEvaluationResultValue,
312
+ parseUnserializableValue,
313
+ serializeAsCallArgument,
314
+ sparseArrayToString
315
+ });
@@ -1,91 +1,110 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 launchApp_exports = {};
30
+ __export(launchApp_exports, {
31
+ launchApp: () => launchApp,
32
+ syncLocalStorageWithSettings: () => syncLocalStorageWithSettings
5
33
  });
6
- exports.launchApp = launchApp;
7
- exports.syncLocalStorageWithSettings = syncLocalStorageWithSettings;
8
- var _fs = _interopRequireDefault(require("fs"));
9
- var _path = _interopRequireDefault(require("path"));
10
- var _utils = require("../utils");
11
- var _instrumentation = require("./instrumentation");
12
- var _registry = require("./registry");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- /**
15
- * Copyright (c) Microsoft Corporation.
16
- *
17
- * Licensed under the Apache License, Version 2.0 (the "License");
18
- * you may not use this file except in compliance with the License.
19
- * You may obtain a copy of the License at
20
- *
21
- * http://www.apache.org/licenses/LICENSE-2.0
22
- *
23
- * Unless required by applicable law or agreed to in writing, software
24
- * distributed under the License is distributed on an "AS IS" BASIS,
25
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
- * See the License for the specific language governing permissions and
27
- * limitations under the License.
28
- */
29
-
34
+ module.exports = __toCommonJS(launchApp_exports);
35
+ var import_fs = __toESM(require("fs"));
36
+ var import_path = __toESM(require("path"));
37
+ var import_utils = require("../utils");
38
+ var import_instrumentation = require("./instrumentation");
39
+ var import_registry = require("./registry");
40
+ var import_registry2 = require("./registry");
30
41
  async function launchApp(browserType, options) {
31
- var _options$persistentCo, _options$persistentCo2, _options$persistentCo3, _options$persistentCo4, _options$persistentCo5, _options$persistentCo6, _options$persistentCo7, _options$persistentCo8, _options$persistentCo9, _options$persistentCo10, _options$persistentCo11;
32
- const args = [...((_options$persistentCo = (_options$persistentCo2 = options.persistentContextOptions) === null || _options$persistentCo2 === void 0 ? void 0 : _options$persistentCo2.args) !== null && _options$persistentCo !== void 0 ? _options$persistentCo : [])];
33
- if (browserType.name() === 'chromium') {
34
- args.push('--app=data:text/html,', `--window-size=${options.windowSize.width},${options.windowSize.height}`, ...(options.windowPosition ? [`--window-position=${options.windowPosition.x},${options.windowPosition.y}`] : []), '--test-type=');
42
+ const args = [...options.persistentContextOptions?.args ?? []];
43
+ let channel = options.persistentContextOptions?.channel;
44
+ if (browserType.name() === "chromium") {
45
+ args.push(
46
+ "--app=data:text/html,",
47
+ `--window-size=${options.windowSize.width},${options.windowSize.height}`,
48
+ ...options.windowPosition ? [`--window-position=${options.windowPosition.x},${options.windowPosition.y}`] : [],
49
+ "--test-type="
50
+ );
51
+ if (!channel && !options.persistentContextOptions?.executablePath)
52
+ channel = (0, import_registry.findChromiumChannel)(options.sdkLanguage);
35
53
  }
36
- const context = await browserType.launchPersistentContext((0, _instrumentation.serverSideCallMetadata)(), '', {
37
- ignoreDefaultArgs: ['--enable-automation'],
38
- ...(options === null || options === void 0 ? void 0 : options.persistentContextOptions),
39
- channel: (_options$persistentCo3 = (_options$persistentCo4 = options.persistentContextOptions) === null || _options$persistentCo4 === void 0 ? void 0 : _options$persistentCo4.channel) !== null && _options$persistentCo3 !== void 0 ? _options$persistentCo3 : !((_options$persistentCo5 = options.persistentContextOptions) !== null && _options$persistentCo5 !== void 0 && _options$persistentCo5.executablePath) ? (0, _registry.findChromiumChannel)(options.sdkLanguage) : undefined,
40
- noDefaultViewport: (_options$persistentCo6 = (_options$persistentCo7 = options.persistentContextOptions) === null || _options$persistentCo7 === void 0 ? void 0 : _options$persistentCo7.noDefaultViewport) !== null && _options$persistentCo6 !== void 0 ? _options$persistentCo6 : true,
41
- acceptDownloads: (_options$persistentCo8 = options === null || options === void 0 || (_options$persistentCo9 = options.persistentContextOptions) === null || _options$persistentCo9 === void 0 ? void 0 : _options$persistentCo9.acceptDownloads) !== null && _options$persistentCo8 !== void 0 ? _options$persistentCo8 : (0, _utils.isUnderTest)() ? 'accept' : 'internal-browser-default',
42
- colorScheme: (_options$persistentCo10 = options === null || options === void 0 || (_options$persistentCo11 = options.persistentContextOptions) === null || _options$persistentCo11 === void 0 ? void 0 : _options$persistentCo11.colorScheme) !== null && _options$persistentCo10 !== void 0 ? _options$persistentCo10 : 'no-override',
54
+ const context = await browserType.launchPersistentContext((0, import_instrumentation.serverSideCallMetadata)(), "", {
55
+ ignoreDefaultArgs: ["--enable-automation"],
56
+ ...options?.persistentContextOptions,
57
+ channel,
58
+ noDefaultViewport: options.persistentContextOptions?.noDefaultViewport ?? true,
59
+ acceptDownloads: options?.persistentContextOptions?.acceptDownloads ?? ((0, import_utils.isUnderTest)() ? "accept" : "internal-browser-default"),
60
+ colorScheme: options?.persistentContextOptions?.colorScheme ?? "no-override",
43
61
  args
44
62
  });
45
63
  const [page] = context.pages();
46
- // Chromium on macOS opens a new tab when clicking on the dock icon.
47
- // See https://github.com/microsoft/playwright/issues/9434
48
- if (browserType.name() === 'chromium' && process.platform === 'darwin') {
49
- context.on('page', async newPage => {
50
- if (newPage.mainFrame().url() === 'chrome://new-tab-page/') {
64
+ if (browserType.name() === "chromium" && process.platform === "darwin") {
65
+ context.on("page", async (newPage) => {
66
+ if (newPage.mainFrame().url() === "chrome://new-tab-page/") {
51
67
  await page.bringToFront();
52
- await newPage.close((0, _instrumentation.serverSideCallMetadata)());
68
+ await newPage.close((0, import_instrumentation.serverSideCallMetadata)());
53
69
  }
54
70
  });
55
71
  }
56
- if (browserType.name() === 'chromium') await installAppIcon(page);
57
- return {
58
- context,
59
- page
60
- };
72
+ if (browserType.name() === "chromium")
73
+ await installAppIcon(page);
74
+ return { context, page };
61
75
  }
62
76
  async function installAppIcon(page) {
63
- const icon = await _fs.default.promises.readFile(require.resolve('./chromium/appIcon.png'));
77
+ const icon = await import_fs.default.promises.readFile(require.resolve("./chromium/appIcon.png"));
64
78
  const crPage = page._delegate;
65
- await crPage._mainFrameSession._client.send('Browser.setDockTile', {
66
- image: icon.toString('base64')
79
+ await crPage._mainFrameSession._client.send("Browser.setDockTile", {
80
+ image: icon.toString("base64")
67
81
  });
68
82
  }
69
83
  async function syncLocalStorageWithSettings(page, appName) {
70
- if ((0, _utils.isUnderTest)()) return;
71
- const settingsFile = _path.default.join(_registry.registryDirectory, '.settings', `${appName}.json`);
72
- await page.exposeBinding('_saveSerializedSettings', false, (_, settings) => {
73
- _fs.default.mkdirSync(_path.default.dirname(settingsFile), {
74
- recursive: true
75
- });
76
- _fs.default.writeFileSync(settingsFile, settings);
84
+ if ((0, import_utils.isUnderTest)())
85
+ return;
86
+ const settingsFile = import_path.default.join(import_registry2.registryDirectory, ".settings", `${appName}.json`);
87
+ await page.exposeBinding("_saveSerializedSettings", false, (_, settings2) => {
88
+ import_fs.default.mkdirSync(import_path.default.dirname(settingsFile), { recursive: true });
89
+ import_fs.default.writeFileSync(settingsFile, settings2);
77
90
  });
78
- const settings = await _fs.default.promises.readFile(settingsFile, 'utf-8').catch(() => '{}');
79
- await page.addInitScript(`(${String(settings => {
80
- // iframes w/ snapshots, etc.
81
- if (location && location.protocol === 'data:') return;
82
- if (window.top !== window) return;
83
- Object.entries(settings).map(([k, v]) => localStorage[k] = v);
84
- window.saveSettings = () => {
85
- window._saveSerializedSettings(JSON.stringify({
86
- ...localStorage
87
- }));
88
- };
89
- })})(${settings});
90
- `);
91
- }
91
+ const settings = await import_fs.default.promises.readFile(settingsFile, "utf-8").catch(() => "{}");
92
+ await page.addInitScript(
93
+ `(${String((settings2) => {
94
+ if (location && location.protocol === "data:")
95
+ return;
96
+ if (window.top !== window)
97
+ return;
98
+ Object.entries(settings2).map(([k, v]) => localStorage[k] = v);
99
+ window.saveSettings = () => {
100
+ window._saveSerializedSettings(JSON.stringify({ ...localStorage }));
101
+ };
102
+ })})(${settings});
103
+ `
104
+ );
105
+ }
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {
108
+ launchApp,
109
+ syncLocalStorageWithSettings
110
+ });