@remotion/renderer 3.0.25 → 3.0.28

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 (301) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts.map +1 -0
  2. package/dist/assets/calculate-asset-positions.js.map +1 -0
  3. package/dist/assets/calculate-atempo.d.ts.map +1 -0
  4. package/dist/assets/calculate-atempo.js.map +1 -0
  5. package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -0
  6. package/dist/assets/convert-assets-to-file-urls.js.map +1 -0
  7. package/dist/assets/download-and-map-assets-to-file.d.ts +10 -8
  8. package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -0
  9. package/dist/assets/download-and-map-assets-to-file.js +67 -43
  10. package/dist/assets/download-and-map-assets-to-file.js.map +1 -0
  11. package/dist/assets/download-file.d.ts +10 -5
  12. package/dist/assets/download-file.d.ts.map +1 -0
  13. package/dist/assets/download-file.js +18 -5
  14. package/dist/assets/download-file.js.map +1 -0
  15. package/dist/assets/ffmpeg-volume-expression.d.ts +1 -2
  16. package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -0
  17. package/dist/assets/ffmpeg-volume-expression.js +2 -3
  18. package/dist/assets/ffmpeg-volume-expression.js.map +1 -0
  19. package/dist/assets/flatten-volume-array.d.ts.map +1 -0
  20. package/dist/assets/flatten-volume-array.js.map +1 -0
  21. package/dist/assets/get-audio-channels.d.ts.map +1 -0
  22. package/dist/assets/get-audio-channels.js.map +1 -0
  23. package/dist/assets/read-file.d.ts.map +1 -0
  24. package/dist/assets/read-file.js +4 -1
  25. package/dist/assets/read-file.js.map +1 -0
  26. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -0
  27. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -0
  28. package/dist/assets/sanitize-filename.d.ts.map +1 -0
  29. package/dist/assets/sanitize-filename.js.map +1 -0
  30. package/dist/assets/sanitize-filepath.d.ts.map +1 -0
  31. package/dist/assets/sanitize-filepath.js.map +1 -0
  32. package/dist/assets/truncate-utf8-bytes.d.ts.map +1 -0
  33. package/dist/assets/truncate-utf8-bytes.js.map +1 -0
  34. package/dist/assets/types.d.ts.map +1 -0
  35. package/dist/assets/types.js.map +1 -0
  36. package/dist/browser/Accessibility.d.ts +175 -0
  37. package/dist/browser/Accessibility.js +423 -0
  38. package/dist/browser/AriaQueryHandler.d.ts +20 -0
  39. package/dist/browser/AriaQueryHandler.js +108 -0
  40. package/dist/browser/Browser.d.ts +5 -0
  41. package/dist/browser/Browser.js +2 -1
  42. package/dist/browser/Connection.d.ts +5 -5
  43. package/dist/browser/Coverage.d.ts +180 -0
  44. package/dist/browser/Coverage.js +371 -0
  45. package/dist/browser/DOMWorld.d.ts +4 -1
  46. package/dist/browser/DOMWorld.js +11 -3
  47. package/dist/browser/Debug.d.ts +19 -0
  48. package/dist/browser/Debug.js +42 -0
  49. package/dist/browser/DeviceDescriptors.d.ts +40 -0
  50. package/dist/browser/DeviceDescriptors.js +1407 -0
  51. package/dist/browser/ExecutionContext.d.ts +2 -2
  52. package/dist/browser/FileChooser.d.ts +56 -0
  53. package/dist/browser/FileChooser.js +86 -0
  54. package/dist/browser/FrameManager.d.ts +4 -3
  55. package/dist/browser/FrameManager.js +2 -2
  56. package/dist/browser/HTTPRequest.d.ts +2 -2
  57. package/dist/browser/HTTPResponse.d.ts +2 -2
  58. package/dist/browser/HTTPResponse.js +15 -0
  59. package/dist/browser/Input.d.ts +355 -0
  60. package/dist/browser/Input.js +592 -0
  61. package/dist/browser/JSHandle.d.ts +4 -4
  62. package/dist/browser/LaunchOptions.d.ts +0 -1
  63. package/dist/browser/Launcher.js +1 -1
  64. package/dist/browser/NetworkConditions.d.ts +26 -0
  65. package/dist/browser/NetworkConditions.js +33 -0
  66. package/dist/browser/NetworkEventManager.d.ts +9 -9
  67. package/dist/browser/NetworkManager.d.ts +2 -2
  68. package/dist/browser/NetworkManager.js +1 -14
  69. package/dist/browser/NodeWebSocketTransport.d.ts +2 -2
  70. package/dist/browser/NodeWebSocketTransport.js +2 -5
  71. package/dist/browser/PDFOptions.d.ts +165 -0
  72. package/dist/browser/PDFOptions.js +34 -0
  73. package/dist/browser/PipeTransport.d.ts +10 -0
  74. package/dist/browser/PipeTransport.js +86 -0
  75. package/dist/browser/Puppeteer.d.ts +35 -0
  76. package/dist/browser/Puppeteer.js +17 -0
  77. package/dist/browser/QueryHandler.d.ts +64 -0
  78. package/dist/browser/QueryHandler.js +183 -0
  79. package/dist/browser/SecurityDetails.d.ts +55 -0
  80. package/dist/browser/SecurityDetails.js +95 -0
  81. package/dist/browser/Target.d.ts +4 -4
  82. package/dist/browser/Target.js +1 -1
  83. package/dist/browser/Tracing.d.ts +45 -0
  84. package/dist/browser/Tracing.js +136 -0
  85. package/dist/browser/USKeyboardLayout.d.ts +39 -0
  86. package/dist/browser/USKeyboardLayout.js +406 -0
  87. package/dist/browser/WebWorker.d.ts +96 -0
  88. package/dist/browser/WebWorker.js +122 -0
  89. package/dist/browser/devtools-commands.d.ts +270 -0
  90. package/dist/{faststart/options.js → browser/devtools-commands.js} +0 -0
  91. package/dist/browser/devtools-types.d.ts +1122 -0
  92. package/dist/browser/devtools-types.js +2 -0
  93. package/dist/browser/dialog.d.ts +70 -0
  94. package/dist/browser/dialog.js +114 -0
  95. package/dist/browser/fetch.d.ts +16 -0
  96. package/dist/browser/fetch.js +46 -0
  97. package/dist/browser/find-up.d.ts +4 -0
  98. package/dist/browser/find-up.js +85 -0
  99. package/dist/browser/{Page.d.ts → page.d.ts} +5 -3
  100. package/dist/browser/{Page.js → page.js} +6 -5
  101. package/dist/browser/pkg-dir.d.ts +3 -0
  102. package/dist/browser/pkg-dir.js +13 -0
  103. package/dist/browser/util.d.ts +6 -5
  104. package/dist/browser/util.js +10 -2
  105. package/dist/browser-log.d.ts.map +1 -0
  106. package/dist/browser-log.js.map +1 -0
  107. package/dist/calculate-ffmpeg-filters.d.ts.map +1 -0
  108. package/dist/calculate-ffmpeg-filters.js.map +1 -0
  109. package/dist/can-use-parallel-encoding.d.ts.map +1 -0
  110. package/dist/can-use-parallel-encoding.js.map +1 -0
  111. package/dist/chunk.d.ts.map +1 -0
  112. package/dist/chunk.js.map +1 -0
  113. package/dist/combine-videos.d.ts.map +1 -0
  114. package/dist/combine-videos.js.map +1 -0
  115. package/dist/convert-to-pcm.d.ts.map +1 -0
  116. package/dist/convert-to-pcm.js.map +1 -0
  117. package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -0
  118. package/dist/create-ffmpeg-complex-filter.js.map +1 -0
  119. package/dist/create-ffmpeg-merge-filter.d.ts.map +1 -0
  120. package/dist/create-ffmpeg-merge-filter.js.map +1 -0
  121. package/dist/create-silent-audio.d.ts.map +1 -0
  122. package/dist/create-silent-audio.js.map +1 -0
  123. package/dist/cycle-browser-tabs.d.ts.map +1 -0
  124. package/dist/cycle-browser-tabs.js.map +1 -0
  125. package/dist/delay-render-embedded-stack.d.ts.map +1 -0
  126. package/dist/delay-render-embedded-stack.js.map +1 -0
  127. package/dist/delete-directory.d.ts.map +1 -0
  128. package/dist/delete-directory.js.map +1 -0
  129. package/dist/ensure-frames-in-order.d.ts.map +1 -0
  130. package/dist/ensure-frames-in-order.js.map +1 -0
  131. package/dist/ensure-output-directory.d.ts.map +1 -0
  132. package/dist/ensure-output-directory.js.map +1 -0
  133. package/dist/error-handling/handle-javascript-exception.d.ts.map +1 -0
  134. package/dist/error-handling/handle-javascript-exception.js +1 -2
  135. package/dist/error-handling/handle-javascript-exception.js.map +1 -0
  136. package/dist/error-handling/symbolicate-error.d.ts.map +1 -0
  137. package/dist/error-handling/symbolicate-error.js.map +1 -0
  138. package/dist/error-handling/symbolicateable-error.d.ts.map +1 -0
  139. package/dist/error-handling/symbolicateable-error.js.map +1 -0
  140. package/dist/extract-frame-from-video.d.ts +0 -2
  141. package/dist/extract-frame-from-video.js +4 -5
  142. package/dist/ffmpeg-filter-file.d.ts.map +1 -0
  143. package/dist/ffmpeg-filter-file.js.map +1 -0
  144. package/dist/ffmpeg-flags.d.ts.map +1 -0
  145. package/dist/ffmpeg-flags.js.map +1 -0
  146. package/dist/get-audio-codec-name.d.ts.map +1 -0
  147. package/dist/get-audio-codec-name.js.map +1 -0
  148. package/dist/get-browser-instance.d.ts.map +1 -0
  149. package/dist/get-browser-instance.js.map +1 -0
  150. package/dist/get-codec-name.d.ts.map +1 -0
  151. package/dist/get-codec-name.js.map +1 -0
  152. package/dist/get-compositions.d.ts.map +1 -0
  153. package/dist/get-compositions.js +1 -1
  154. package/dist/get-compositions.js.map +1 -0
  155. package/dist/get-concurrency.d.ts.map +1 -0
  156. package/dist/get-concurrency.js.map +1 -0
  157. package/dist/get-duration-from-frame-range.d.ts.map +1 -0
  158. package/dist/get-duration-from-frame-range.js.map +1 -0
  159. package/dist/get-extension-from-codec.d.ts.map +1 -0
  160. package/dist/get-extension-from-codec.js.map +1 -0
  161. package/dist/get-format-for-codec.d.ts +2 -0
  162. package/dist/get-format-for-codec.js +34 -0
  163. package/dist/get-frame-to-render.d.ts.map +1 -0
  164. package/dist/get-frame-to-render.js.map +1 -0
  165. package/dist/get-local-browser-executable.d.ts.map +1 -0
  166. package/dist/get-local-browser-executable.js.map +1 -0
  167. package/dist/get-port.d.ts.map +1 -0
  168. package/dist/get-port.js +5 -14
  169. package/dist/get-port.js.map +1 -0
  170. package/dist/get-prores-profile-name.d.ts.map +1 -0
  171. package/dist/get-prores-profile-name.js.map +1 -0
  172. package/dist/image-format.d.ts.map +1 -0
  173. package/dist/image-format.js.map +1 -0
  174. package/dist/index.d.ts +16 -8
  175. package/dist/index.d.ts.map +1 -0
  176. package/dist/index.js +6 -2
  177. package/dist/index.js.map +1 -0
  178. package/dist/is-serve-url.d.ts.map +1 -0
  179. package/dist/is-serve-url.js.map +1 -0
  180. package/dist/last-frame-from-video-cache.d.ts +0 -1
  181. package/dist/legacy-webpack-config.d.ts.map +1 -0
  182. package/dist/legacy-webpack-config.js.map +1 -0
  183. package/dist/make-assets-download-dir.d.ts.map +1 -0
  184. package/dist/make-assets-download-dir.js.map +1 -0
  185. package/dist/merge-audio-track.d.ts.map +1 -0
  186. package/dist/merge-audio-track.js.map +1 -0
  187. package/dist/mime-db.d.ts +6 -0
  188. package/dist/mime-db.js +8636 -0
  189. package/dist/mime-types.d.ts +2 -0
  190. package/dist/mime-types.js +89 -0
  191. package/dist/normalize-serve-url.d.ts.map +1 -0
  192. package/dist/normalize-serve-url.js.map +1 -0
  193. package/dist/offthread-video-server.js +2 -6
  194. package/dist/open-browser.d.ts.map +1 -0
  195. package/dist/open-browser.js.map +1 -0
  196. package/dist/p-limit.d.ts.map +1 -0
  197. package/dist/p-limit.js.map +1 -0
  198. package/dist/parse-browser-error-stack.d.ts.map +1 -0
  199. package/dist/parse-browser-error-stack.js.map +1 -0
  200. package/dist/parse-ffmpeg-progress.d.ts.map +1 -0
  201. package/dist/parse-ffmpeg-progress.js.map +1 -0
  202. package/dist/pool.d.ts.map +1 -0
  203. package/dist/pool.js.map +1 -0
  204. package/dist/prepare-server.d.ts.map +1 -0
  205. package/dist/prepare-server.js +5 -2
  206. package/dist/prepare-server.js.map +1 -0
  207. package/dist/preprocess-audio-track.d.ts.map +1 -0
  208. package/dist/preprocess-audio-track.js.map +1 -0
  209. package/dist/prespawn-ffmpeg.d.ts.map +1 -0
  210. package/dist/prespawn-ffmpeg.js.map +1 -0
  211. package/dist/provide-screenshot.d.ts +0 -1
  212. package/dist/provide-screenshot.d.ts.map +1 -0
  213. package/dist/provide-screenshot.js.map +1 -0
  214. package/dist/puppeteer-evaluate.d.ts.map +1 -0
  215. package/dist/puppeteer-evaluate.js.map +1 -0
  216. package/dist/puppeteer-screenshot.d.ts +0 -1
  217. package/dist/puppeteer-screenshot.d.ts.map +1 -0
  218. package/dist/puppeteer-screenshot.js.map +1 -0
  219. package/dist/render-frames.d.ts.map +1 -0
  220. package/dist/render-frames.js +39 -44
  221. package/dist/render-frames.js.map +1 -0
  222. package/dist/render-media.d.ts +2 -2
  223. package/dist/render-media.d.ts.map +1 -0
  224. package/dist/render-media.js +8 -3
  225. package/dist/render-media.js.map +1 -0
  226. package/dist/render-still.d.ts.map +1 -0
  227. package/dist/render-still.js.map +1 -0
  228. package/dist/resolve-asset-src.d.ts.map +1 -0
  229. package/dist/resolve-asset-src.js.map +1 -0
  230. package/dist/sample-rate.d.ts.map +1 -0
  231. package/dist/sample-rate.js.map +1 -0
  232. package/dist/screenshot-dom-element.d.ts +0 -1
  233. package/dist/screenshot-dom-element.d.ts.map +1 -0
  234. package/dist/screenshot-dom-element.js.map +1 -0
  235. package/dist/screenshot-task.d.ts +0 -1
  236. package/dist/screenshot-task.d.ts.map +1 -0
  237. package/dist/screenshot-task.js.map +1 -0
  238. package/dist/seek-to-frame.d.ts.map +1 -0
  239. package/dist/seek-to-frame.js +2 -2
  240. package/dist/seek-to-frame.js.map +1 -0
  241. package/dist/serve-handler/index.js +6 -6
  242. package/dist/serve-static.d.ts.map +1 -0
  243. package/dist/serve-static.js.map +1 -0
  244. package/dist/set-props-and-env.d.ts.map +1 -0
  245. package/dist/set-props-and-env.js +3 -1
  246. package/dist/set-props-and-env.js.map +1 -0
  247. package/dist/stitch-frames-to-video.d.ts +4 -3
  248. package/dist/stitch-frames-to-video.d.ts.map +1 -0
  249. package/dist/stitch-frames-to-video.js +31 -13
  250. package/dist/stitch-frames-to-video.js.map +1 -0
  251. package/dist/stringify-ffmpeg-filter.d.ts.map +1 -0
  252. package/dist/stringify-ffmpeg-filter.js +6 -7
  253. package/dist/stringify-ffmpeg-filter.js.map +1 -0
  254. package/dist/symbolicate-stacktrace.d.ts.map +1 -0
  255. package/dist/symbolicate-stacktrace.js.map +1 -0
  256. package/dist/tmp-dir.d.ts.map +1 -0
  257. package/dist/tmp-dir.js.map +1 -0
  258. package/dist/types.d.ts.map +1 -0
  259. package/dist/types.js.map +1 -0
  260. package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -0
  261. package/dist/validate-even-dimensions-with-codec.js.map +1 -0
  262. package/dist/validate-ffmpeg.d.ts.map +1 -0
  263. package/dist/validate-ffmpeg.js.map +1 -0
  264. package/dist/validate-puppeteer-timeout.d.ts.map +1 -0
  265. package/dist/validate-puppeteer-timeout.js.map +1 -0
  266. package/dist/validate-scale.d.ts.map +1 -0
  267. package/dist/validate-scale.js.map +1 -0
  268. package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
  269. package/dist/wait-for-symbolication-error-to-be-done.js +34 -0
  270. package/dist/ws/ws-types.d.ts +14 -0
  271. package/dist/ws/ws-types.js +10 -0
  272. package/package.json +3 -7
  273. package/tsconfig.json +0 -1
  274. package/types/ws/index.d.ts +509 -0
  275. package/dist/abort.d.ts +0 -7
  276. package/dist/abort.js +0 -20
  277. package/dist/cancel.d.ts +0 -7
  278. package/dist/cancel.js +0 -25
  279. package/dist/ensure-faststart.d.ts +0 -1
  280. package/dist/ensure-faststart.js +0 -14
  281. package/dist/faststart/atom.d.ts +0 -35
  282. package/dist/faststart/atom.js +0 -138
  283. package/dist/faststart/index.d.ts +0 -0
  284. package/dist/faststart/index.js +0 -1
  285. package/dist/faststart/options.d.ts +0 -6
  286. package/dist/faststart/qt-faststart.d.ts +0 -18
  287. package/dist/faststart/qt-faststart.js +0 -66
  288. package/dist/faststart/update-chunk-offsets.d.ts +0 -10
  289. package/dist/faststart/update-chunk-offsets.js +0 -114
  290. package/dist/faststart/util.d.ts +0 -9
  291. package/dist/faststart/util.js +0 -34
  292. package/dist/offthread/index.d.ts +0 -0
  293. package/dist/offthread/index.js +0 -1
  294. package/dist/render-gif.d.ts +0 -2
  295. package/dist/render-gif.js +0 -242
  296. package/dist/should-use-vp9-decoder.d.ts +0 -0
  297. package/dist/should-use-vp9-decoder.js +0 -1
  298. package/dist/stitch-frames-to-gif.d.ts +0 -8
  299. package/dist/stitch-frames-to-gif.js +0 -128
  300. package/dist/validate-offthreadvideo-image-format.d.ts +0 -1
  301. package/dist/validate-offthreadvideo-image-format.js +0 -15
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2020 Google Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports._ariaHandler = void 0;
19
+ const assert_1 = require("./assert");
20
+ async function queryAXTree(client, element, accessibleName, role) {
21
+ const { nodes } = await client.send('Accessibility.queryAXTree', {
22
+ objectId: element._remoteObject.objectId,
23
+ accessibleName,
24
+ role,
25
+ });
26
+ const filteredNodes = nodes.filter((node) => {
27
+ return !node.role || node.role.value !== 'StaticText';
28
+ });
29
+ return filteredNodes;
30
+ }
31
+ const normalizeValue = (value) => {
32
+ return value.replace(/ +/g, ' ').trim();
33
+ };
34
+ const knownAttributes = new Set(['name', 'role']);
35
+ const attributeRegexp = /\[\s*(?<attribute>\w+)\s*=\s*(?<quote>"|')(?<value>\\.|.*?(?=\k<quote>))\k<quote>\s*\]/g;
36
+ function isKnownAttribute(attribute) {
37
+ return knownAttributes.has(attribute);
38
+ }
39
+ /*
40
+ * The selectors consist of an accessible name to query for and optionally
41
+ * further aria attributes on the form `[<attribute>=<value>]`.
42
+ * Currently, we only support the `name` and `role` attribute.
43
+ * The following examples showcase how the syntax works wrt. querying:
44
+ * - 'title[role="heading"]' queries for elements with name 'title' and role 'heading'.
45
+ * - '[role="img"]' queries for elements with role 'img' and any name.
46
+ * - 'label' queries for elements with name 'label' and any role.
47
+ * - '[name=""][role="button"]' queries for elements with no name and role 'button'.
48
+ */
49
+ function parseAriaSelector(selector) {
50
+ const queryOptions = {};
51
+ const defaultName = selector.replace(attributeRegexp, (_, attribute, _quote, value) => {
52
+ attribute = attribute.trim();
53
+ (0, assert_1.assert)(isKnownAttribute(attribute), `Unknown aria attribute "${attribute}" in selector`);
54
+ queryOptions[attribute] = normalizeValue(value);
55
+ return '';
56
+ });
57
+ if (defaultName && !queryOptions.name) {
58
+ queryOptions.name = normalizeValue(defaultName);
59
+ }
60
+ return queryOptions;
61
+ }
62
+ const queryOne = async (element, selector) => {
63
+ const exeCtx = element.executionContext();
64
+ const { name, role } = parseAriaSelector(selector);
65
+ const res = await queryAXTree(exeCtx._client, element, name, role);
66
+ if (!res[0] || !res[0].backendDOMNodeId) {
67
+ return null;
68
+ }
69
+ return exeCtx._adoptBackendNodeId(res[0].backendDOMNodeId);
70
+ };
71
+ const waitFor = (domWorld, selector, options) => {
72
+ const binding = {
73
+ name: 'ariaQuerySelector',
74
+ pptrFunction: async (_selector) => {
75
+ const root = options.root || (await domWorld._document());
76
+ const element = await queryOne(root, _selector);
77
+ return element;
78
+ },
79
+ };
80
+ return domWorld._waitForSelectorInPage((_, _selector) => {
81
+ return globalThis.ariaQuerySelector(_selector);
82
+ }, selector, options, binding);
83
+ };
84
+ const queryAll = async (element, selector) => {
85
+ const exeCtx = element.executionContext();
86
+ const { name, role } = parseAriaSelector(selector);
87
+ const res = await queryAXTree(exeCtx._client, element, name, role);
88
+ return Promise.all(res.map((axNode) => {
89
+ return exeCtx._adoptBackendNodeId(axNode.backendDOMNodeId);
90
+ }));
91
+ };
92
+ const queryAllArray = async (element, selector) => {
93
+ const elementHandles = await queryAll(element, selector);
94
+ const exeCtx = element.executionContext();
95
+ const jsHandle = exeCtx.evaluateHandle((...elements) => {
96
+ return elements;
97
+ }, ...elementHandles);
98
+ return jsHandle;
99
+ };
100
+ /**
101
+ * @internal
102
+ */
103
+ exports._ariaHandler = {
104
+ queryOne,
105
+ waitFor,
106
+ queryAll,
107
+ queryAllArray,
108
+ };
@@ -22,6 +22,11 @@ declare type BrowserCloseCallback = () => Promise<void> | void;
22
22
  interface WaitForTargetOptions {
23
23
  timeout?: number;
24
24
  }
25
+ export declare const enum BrowserEmittedEvents {
26
+ TargetChanged = "targetchanged",
27
+ TargetCreated = "targetcreated",
28
+ Closed = "closed"
29
+ }
25
30
  export declare class Browser extends EventEmitter {
26
31
  #private;
27
32
  static _create({ connection, contextIds, defaultViewport, closeCallback, }: {
@@ -111,7 +111,7 @@ class Browser extends EventEmitter_1.EventEmitter {
111
111
  return await targetPromise;
112
112
  }
113
113
  this.targets().forEach(check);
114
- return await (0, util_1.waitWithTimeout)(targetPromise, 'target', timeout);
114
+ return await (0, util_1.waitWithTimeout)(targetPromise, 'target', timeout, this);
115
115
  }
116
116
  finally {
117
117
  this.off("targetcreated" /* BrowserEmittedEvents.TargetCreated */, check);
@@ -136,6 +136,7 @@ class Browser extends EventEmitter_1.EventEmitter {
136
136
  async close() {
137
137
  await __classPrivateFieldGet(this, _Browser_closeCallback, "f").call(null);
138
138
  this.disconnect();
139
+ this.emit("closed" /* BrowserEmittedEvents.Closed */);
139
140
  }
140
141
  disconnect() {
141
142
  __classPrivateFieldGet(this, _Browser_connection, "f").dispose();
@@ -1,5 +1,5 @@
1
- import type { Protocol } from 'devtools-protocol';
2
- import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping';
1
+ import type { Commands } from './devtools-commands';
2
+ import type { TargetInfo } from './devtools-types';
3
3
  import { EventEmitter } from './EventEmitter';
4
4
  import type { NodeWebSocketTransport } from './NodeWebSocketTransport';
5
5
  export declare class Connection extends EventEmitter {
@@ -7,14 +7,14 @@ export declare class Connection extends EventEmitter {
7
7
  constructor(transport: NodeWebSocketTransport);
8
8
  static fromSession(session: CDPSession): Connection | undefined;
9
9
  session(sessionId: string): CDPSession | null;
10
- send<T extends keyof ProtocolMapping.Commands>(method: T, ...paramArgs: ProtocolMapping.Commands[T]['paramsType']): Promise<ProtocolMapping.Commands[T]['returnType']>;
10
+ send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<Commands[T]['returnType']>;
11
11
  _rawSend(message: Record<string, unknown>): number;
12
12
  dispose(): void;
13
13
  /**
14
14
  * @param targetInfo - The target info
15
15
  * @returns The CDP session that is created
16
16
  */
17
- createSession(targetInfo: Protocol.Target.TargetInfo): Promise<CDPSession>;
17
+ createSession(targetInfo: TargetInfo): Promise<CDPSession>;
18
18
  }
19
19
  interface CDPSessionOnMessageObject {
20
20
  id?: number;
@@ -34,7 +34,7 @@ export declare class CDPSession extends EventEmitter {
34
34
  #private;
35
35
  constructor(connection: Connection, targetType: string, sessionId: string);
36
36
  connection(): Connection | undefined;
37
- send<T extends keyof ProtocolMapping.Commands>(method: T, ...paramArgs: ProtocolMapping.Commands[T]['paramsType']): Promise<ProtocolMapping.Commands[T]['returnType']>;
37
+ send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<Commands[T]['returnType']>;
38
38
  _onMessage(object: CDPSessionOnMessageObject): void;
39
39
  _onClosed(): void;
40
40
  id(): string;
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Copyright 2017 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Protocol } from 'devtools-protocol';
17
+ import { CDPSession } from './Connection';
18
+ import { PuppeteerEventListener } from './util';
19
+ /**
20
+ * @internal
21
+ */
22
+ export { PuppeteerEventListener };
23
+ /**
24
+ * The CoverageEntry class represents one entry of the coverage report.
25
+ * @public
26
+ */
27
+ export interface CoverageEntry {
28
+ /**
29
+ * The URL of the style sheet or script.
30
+ */
31
+ url: string;
32
+ /**
33
+ * The content of the style sheet or script.
34
+ */
35
+ text: string;
36
+ /**
37
+ * The covered range as start and end positions.
38
+ */
39
+ ranges: Array<{
40
+ start: number;
41
+ end: number;
42
+ }>;
43
+ }
44
+ /**
45
+ * The CoverageEntry class for JavaScript
46
+ * @public
47
+ */
48
+ export interface JSCoverageEntry extends CoverageEntry {
49
+ /**
50
+ * Raw V8 script coverage entry.
51
+ */
52
+ rawScriptCoverage?: Protocol.Profiler.ScriptCoverage;
53
+ }
54
+ /**
55
+ * Set of configurable options for JS coverage.
56
+ * @public
57
+ */
58
+ export interface JSCoverageOptions {
59
+ /**
60
+ * Whether to reset coverage on every navigation.
61
+ */
62
+ resetOnNavigation?: boolean;
63
+ /**
64
+ * Whether anonymous scripts generated by the page should be reported.
65
+ */
66
+ reportAnonymousScripts?: boolean;
67
+ /**
68
+ * Whether the result includes raw V8 script coverage entries.
69
+ */
70
+ includeRawScriptCoverage?: boolean;
71
+ }
72
+ /**
73
+ * Set of configurable options for CSS coverage.
74
+ * @public
75
+ */
76
+ export interface CSSCoverageOptions {
77
+ /**
78
+ * Whether to reset coverage on every navigation.
79
+ */
80
+ resetOnNavigation?: boolean;
81
+ }
82
+ /**
83
+ * The Coverage class provides methods to gathers information about parts of
84
+ * JavaScript and CSS that were used by the page.
85
+ *
86
+ * @remarks
87
+ * To output coverage in a form consumable by {@link https://github.com/istanbuljs | Istanbul},
88
+ * see {@link https://github.com/istanbuljs/puppeteer-to-istanbul | puppeteer-to-istanbul}.
89
+ *
90
+ * @example
91
+ * An example of using JavaScript and CSS coverage to get percentage of initially
92
+ * executed code:
93
+ * ```js
94
+ * // Enable both JavaScript and CSS coverage
95
+ * await Promise.all([
96
+ * page.coverage.startJSCoverage(),
97
+ * page.coverage.startCSSCoverage()
98
+ * ]);
99
+ * // Navigate to page
100
+ * await page.goto('https://example.com');
101
+ * // Disable both JavaScript and CSS coverage
102
+ * const [jsCoverage, cssCoverage] = await Promise.all([
103
+ * page.coverage.stopJSCoverage(),
104
+ * page.coverage.stopCSSCoverage(),
105
+ * ]);
106
+ * let totalBytes = 0;
107
+ * let usedBytes = 0;
108
+ * const coverage = [...jsCoverage, ...cssCoverage];
109
+ * for (const entry of coverage) {
110
+ * totalBytes += entry.text.length;
111
+ * for (const range of entry.ranges)
112
+ * usedBytes += range.end - range.start - 1;
113
+ * }
114
+ * console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`);
115
+ * ```
116
+ * @public
117
+ */
118
+ export declare class Coverage {
119
+ #private;
120
+ constructor(client: CDPSession);
121
+ /**
122
+ * @param options - Set of configurable options for coverage defaults to
123
+ * `resetOnNavigation : true, reportAnonymousScripts : false`
124
+ * @returns Promise that resolves when coverage is started.
125
+ *
126
+ * @remarks
127
+ * Anonymous scripts are ones that don't have an associated url. These are
128
+ * scripts that are dynamically created on the page using `eval` or
129
+ * `new Function`. If `reportAnonymousScripts` is set to `true`, anonymous
130
+ * scripts will have `pptr://__puppeteer_evaluation_script__` as their URL.
131
+ */
132
+ startJSCoverage(options?: JSCoverageOptions): Promise<void>;
133
+ /**
134
+ * @returns Promise that resolves to the array of coverage reports for
135
+ * all scripts.
136
+ *
137
+ * @remarks
138
+ * JavaScript Coverage doesn't include anonymous scripts by default.
139
+ * However, scripts with sourceURLs are reported.
140
+ */
141
+ stopJSCoverage(): Promise<JSCoverageEntry[]>;
142
+ /**
143
+ * @param options - Set of configurable options for coverage, defaults to
144
+ * `resetOnNavigation : true`
145
+ * @returns Promise that resolves when coverage is started.
146
+ */
147
+ startCSSCoverage(options?: CSSCoverageOptions): Promise<void>;
148
+ /**
149
+ * @returns Promise that resolves to the array of coverage reports
150
+ * for all stylesheets.
151
+ * @remarks
152
+ * CSS Coverage doesn't include dynamically injected style tags
153
+ * without sourceURLs.
154
+ */
155
+ stopCSSCoverage(): Promise<CoverageEntry[]>;
156
+ }
157
+ /**
158
+ * @public
159
+ */
160
+ export declare class JSCoverage {
161
+ #private;
162
+ constructor(client: CDPSession);
163
+ start(options?: {
164
+ resetOnNavigation?: boolean;
165
+ reportAnonymousScripts?: boolean;
166
+ includeRawScriptCoverage?: boolean;
167
+ }): Promise<void>;
168
+ stop(): Promise<JSCoverageEntry[]>;
169
+ }
170
+ /**
171
+ * @public
172
+ */
173
+ export declare class CSSCoverage {
174
+ #private;
175
+ constructor(client: CDPSession);
176
+ start(options?: {
177
+ resetOnNavigation?: boolean;
178
+ }): Promise<void>;
179
+ stop(): Promise<CoverageEntry[]>;
180
+ }