@remotion/renderer 3.0.22 → 3.0.23

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 (318) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts +2 -2
  2. package/dist/assets/calculate-asset-positions.d.ts.map +1 -0
  3. package/dist/assets/calculate-asset-positions.js.map +1 -0
  4. package/dist/assets/calculate-atempo.d.ts.map +1 -0
  5. package/dist/assets/calculate-atempo.js.map +1 -0
  6. package/dist/assets/convert-assets-to-file-urls.d.ts +2 -2
  7. package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -0
  8. package/dist/assets/convert-assets-to-file-urls.js.map +1 -0
  9. package/dist/assets/download-and-map-assets-to-file.d.ts +1 -1
  10. package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -0
  11. package/dist/assets/download-and-map-assets-to-file.js.map +1 -0
  12. package/dist/assets/download-file.d.ts.map +1 -0
  13. package/dist/assets/download-file.js.map +1 -0
  14. package/dist/assets/ffmpeg-volume-expression.d.ts +1 -1
  15. package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -0
  16. package/dist/assets/ffmpeg-volume-expression.js.map +1 -0
  17. package/dist/assets/flatten-volume-array.d.ts +1 -1
  18. package/dist/assets/flatten-volume-array.d.ts.map +1 -0
  19. package/dist/assets/flatten-volume-array.js.map +1 -0
  20. package/dist/assets/get-audio-channels.d.ts +1 -1
  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.map +1 -0
  25. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -0
  26. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -0
  27. package/dist/assets/sanitize-filename.d.ts.map +1 -0
  28. package/dist/assets/sanitize-filename.js.map +1 -0
  29. package/dist/assets/sanitize-filepath.d.ts.map +1 -0
  30. package/dist/assets/sanitize-filepath.js.map +1 -0
  31. package/dist/assets/truncate-utf8-bytes.d.ts.map +1 -0
  32. package/dist/assets/truncate-utf8-bytes.js.map +1 -0
  33. package/dist/assets/types.d.ts +1 -1
  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/BrowserConnector.d.ts +7 -0
  41. package/dist/browser/BrowserConnector.js +32 -0
  42. package/dist/browser/BrowserFetcher.d.ts +2 -2
  43. package/dist/browser/BrowserFetcher.js +48 -28
  44. package/dist/browser/Connection.d.ts +4 -4
  45. package/dist/browser/Connection.js +2 -2
  46. package/dist/browser/ConsoleMessage.d.ts +27 -3
  47. package/dist/browser/ConsoleMessage.js +32 -5
  48. package/dist/browser/Coverage.d.ts +180 -0
  49. package/dist/browser/Coverage.js +371 -0
  50. package/dist/browser/Debug.d.ts +19 -0
  51. package/dist/browser/Debug.js +42 -0
  52. package/dist/browser/DeviceDescriptors.d.ts +40 -0
  53. package/dist/browser/DeviceDescriptors.js +1407 -0
  54. package/dist/browser/ExecutionContext.d.ts +3 -1
  55. package/dist/browser/ExecutionContext.js +16 -0
  56. package/dist/browser/FileChooser.d.ts +56 -0
  57. package/dist/browser/FileChooser.js +86 -0
  58. package/dist/browser/FrameManager.d.ts +1 -1
  59. package/dist/browser/HTTPRequest.d.ts +16 -2
  60. package/dist/browser/HTTPRequest.js +48 -3
  61. package/dist/browser/HTTPResponse.d.ts +80 -2
  62. package/dist/browser/HTTPResponse.js +166 -3
  63. package/dist/browser/Input.d.ts +355 -0
  64. package/dist/browser/Input.js +592 -0
  65. package/dist/browser/JSHandle.d.ts +1 -1
  66. package/dist/browser/NetworkConditions.d.ts +26 -0
  67. package/dist/browser/NetworkConditions.js +33 -0
  68. package/dist/browser/NetworkEventManager.d.ts +1 -1
  69. package/dist/browser/NetworkManager.js +7 -3
  70. package/dist/browser/NodeWebSocketTransport.d.ts +2 -8
  71. package/dist/browser/NodeWebSocketTransport.js +1 -1
  72. package/dist/browser/PDFOptions.d.ts +165 -0
  73. package/dist/browser/PDFOptions.js +34 -0
  74. package/dist/browser/PipeTransport.d.ts +10 -0
  75. package/dist/browser/PipeTransport.js +86 -0
  76. package/dist/browser/Puppeteer.d.ts +35 -0
  77. package/dist/browser/Puppeteer.js +17 -0
  78. package/dist/browser/PuppeteerNode.d.ts +4 -1
  79. package/dist/browser/PuppeteerNode.js +8 -0
  80. package/dist/browser/QueryHandler.d.ts +64 -0
  81. package/dist/browser/QueryHandler.js +183 -0
  82. package/dist/browser/SecurityDetails.d.ts +55 -0
  83. package/dist/browser/SecurityDetails.js +95 -0
  84. package/dist/browser/Target.d.ts +1 -1
  85. package/dist/browser/Tracing.d.ts +45 -0
  86. package/dist/browser/Tracing.js +136 -0
  87. package/dist/browser/USKeyboardLayout.d.ts +39 -0
  88. package/dist/browser/USKeyboardLayout.js +406 -0
  89. package/dist/browser/WebWorker.d.ts +96 -0
  90. package/dist/browser/WebWorker.js +122 -0
  91. package/dist/browser/create-browser-fetcher.js +14 -1
  92. package/dist/browser/dialog.d.ts +70 -0
  93. package/dist/browser/dialog.js +114 -0
  94. package/dist/browser/fetch.d.ts +16 -0
  95. package/dist/browser/fetch.js +46 -0
  96. package/dist/browser/find-up.d.ts +4 -0
  97. package/dist/browser/find-up.js +85 -0
  98. package/dist/browser/{Page.d.ts → page.d.ts} +4 -0
  99. package/dist/browser/{Page.js → page.js} +9 -14
  100. package/dist/browser/pkg-dir.d.ts +3 -0
  101. package/dist/browser/pkg-dir.js +13 -0
  102. package/dist/browser/util.d.ts +1 -1
  103. package/dist/browser-log.d.ts +1 -1
  104. package/dist/browser-log.d.ts.map +1 -0
  105. package/dist/browser-log.js.map +1 -0
  106. package/dist/calculate-ffmpeg-filters.d.ts +1 -1
  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 +1 -1
  110. package/dist/can-use-parallel-encoding.d.ts.map +1 -0
  111. package/dist/can-use-parallel-encoding.js.map +1 -0
  112. package/dist/chunk.d.ts.map +1 -0
  113. package/dist/chunk.js.map +1 -0
  114. package/dist/combine-videos.d.ts +1 -1
  115. package/dist/combine-videos.d.ts.map +1 -0
  116. package/dist/combine-videos.js.map +1 -0
  117. package/dist/convert-to-pcm.d.ts +1 -1
  118. package/dist/convert-to-pcm.d.ts.map +1 -0
  119. package/dist/convert-to-pcm.js.map +1 -0
  120. package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -0
  121. package/dist/create-ffmpeg-complex-filter.js.map +1 -0
  122. package/dist/create-ffmpeg-merge-filter.d.ts.map +1 -0
  123. package/dist/create-ffmpeg-merge-filter.js.map +1 -0
  124. package/dist/create-silent-audio.d.ts +1 -1
  125. package/dist/create-silent-audio.d.ts.map +1 -0
  126. package/dist/create-silent-audio.js.map +1 -0
  127. package/dist/cycle-browser-tabs.d.ts +1 -1
  128. package/dist/cycle-browser-tabs.d.ts.map +1 -0
  129. package/dist/cycle-browser-tabs.js.map +1 -0
  130. package/dist/delay-render-embedded-stack.d.ts +1 -1
  131. package/dist/delay-render-embedded-stack.d.ts.map +1 -0
  132. package/dist/delay-render-embedded-stack.js.map +1 -0
  133. package/dist/delete-directory.d.ts.map +1 -0
  134. package/dist/delete-directory.js.map +1 -0
  135. package/dist/ensure-frames-in-order.d.ts.map +1 -0
  136. package/dist/ensure-frames-in-order.js.map +1 -0
  137. package/dist/ensure-output-directory.d.ts.map +1 -0
  138. package/dist/ensure-output-directory.js.map +1 -0
  139. package/dist/ensure-presentation-timestamp.d.ts +1 -1
  140. package/dist/ensure-presentation-timestamp.js +1 -1
  141. package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
  142. package/dist/error-handling/handle-javascript-exception.d.ts.map +1 -0
  143. package/dist/error-handling/handle-javascript-exception.js.map +1 -0
  144. package/dist/error-handling/symbolicate-error.d.ts +1 -1
  145. package/dist/error-handling/symbolicate-error.d.ts.map +1 -0
  146. package/dist/error-handling/symbolicate-error.js.map +1 -0
  147. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  148. package/dist/error-handling/symbolicateable-error.d.ts.map +1 -0
  149. package/dist/error-handling/symbolicateable-error.js.map +1 -0
  150. package/dist/extract-frame-from-video.d.ts +3 -4
  151. package/dist/ffmpeg-filter-file.d.ts.map +1 -0
  152. package/dist/ffmpeg-filter-file.js.map +1 -0
  153. package/dist/ffmpeg-flags.d.ts.map +1 -0
  154. package/dist/ffmpeg-flags.js.map +1 -0
  155. package/dist/get-audio-codec-name.d.ts +1 -1
  156. package/dist/get-audio-codec-name.d.ts.map +1 -0
  157. package/dist/get-audio-codec-name.js.map +1 -0
  158. package/dist/get-browser-instance.d.ts +3 -3
  159. package/dist/get-browser-instance.d.ts.map +1 -0
  160. package/dist/get-browser-instance.js.map +1 -0
  161. package/dist/get-codec-name.d.ts +1 -1
  162. package/dist/get-codec-name.d.ts.map +1 -0
  163. package/dist/get-codec-name.js.map +1 -0
  164. package/dist/get-compositions.d.ts +4 -4
  165. package/dist/get-compositions.d.ts.map +1 -0
  166. package/dist/get-compositions.js.map +1 -0
  167. package/dist/get-concurrency.d.ts.map +1 -0
  168. package/dist/get-concurrency.js.map +1 -0
  169. package/dist/get-duration-from-frame-range.d.ts +1 -1
  170. package/dist/get-duration-from-frame-range.d.ts.map +1 -0
  171. package/dist/get-duration-from-frame-range.js.map +1 -0
  172. package/dist/get-extension-from-codec.d.ts +1 -1
  173. package/dist/get-extension-from-codec.d.ts.map +1 -0
  174. package/dist/get-extension-from-codec.js.map +1 -0
  175. package/dist/get-frame-to-render.d.ts +1 -1
  176. package/dist/get-frame-to-render.d.ts.map +1 -0
  177. package/dist/get-frame-to-render.js.map +1 -0
  178. package/dist/get-local-browser-executable.d.ts +1 -1
  179. package/dist/get-local-browser-executable.d.ts.map +1 -0
  180. package/dist/get-local-browser-executable.js.map +1 -0
  181. package/dist/get-port.d.ts.map +1 -0
  182. package/dist/get-port.js.map +1 -0
  183. package/dist/get-prores-profile-name.d.ts +1 -1
  184. package/dist/get-prores-profile-name.d.ts.map +1 -0
  185. package/dist/get-prores-profile-name.js.map +1 -0
  186. package/dist/image-format.d.ts +1 -1
  187. package/dist/image-format.d.ts.map +1 -0
  188. package/dist/image-format.js.map +1 -0
  189. package/dist/index.d.ts +0 -1
  190. package/dist/index.d.ts.map +1 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/is-serve-url.d.ts.map +1 -0
  193. package/dist/is-serve-url.js.map +1 -0
  194. package/dist/is-vp9-video.d.ts +1 -1
  195. package/dist/last-frame-from-video-cache.d.ts +2 -3
  196. package/dist/legacy-webpack-config.d.ts.map +1 -0
  197. package/dist/legacy-webpack-config.js.map +1 -0
  198. package/dist/make-assets-download-dir.d.ts.map +1 -0
  199. package/dist/make-assets-download-dir.js.map +1 -0
  200. package/dist/merge-audio-track.d.ts +1 -1
  201. package/dist/merge-audio-track.d.ts.map +1 -0
  202. package/dist/merge-audio-track.js.map +1 -0
  203. package/dist/normalize-serve-url.d.ts.map +1 -0
  204. package/dist/normalize-serve-url.js.map +1 -0
  205. package/dist/offthread-video-server.d.ts +3 -3
  206. package/dist/open-browser.d.ts +1 -1
  207. package/dist/open-browser.d.ts.map +1 -0
  208. package/dist/open-browser.js.map +1 -0
  209. package/dist/p-limit.d.ts.map +1 -0
  210. package/dist/p-limit.js.map +1 -0
  211. package/dist/parse-browser-error-stack.d.ts.map +1 -0
  212. package/dist/parse-browser-error-stack.js.map +1 -0
  213. package/dist/parse-ffmpeg-progress.d.ts.map +1 -0
  214. package/dist/parse-ffmpeg-progress.js.map +1 -0
  215. package/dist/pool.d.ts.map +1 -0
  216. package/dist/pool.js.map +1 -0
  217. package/dist/prepare-server.d.ts +2 -2
  218. package/dist/prepare-server.d.ts.map +1 -0
  219. package/dist/prepare-server.js.map +1 -0
  220. package/dist/preprocess-audio-track.d.ts +2 -2
  221. package/dist/preprocess-audio-track.d.ts.map +1 -0
  222. package/dist/preprocess-audio-track.js.map +1 -0
  223. package/dist/prespawn-ffmpeg.d.ts +2 -2
  224. package/dist/prespawn-ffmpeg.d.ts.map +1 -0
  225. package/dist/prespawn-ffmpeg.js.map +1 -0
  226. package/dist/provide-screenshot.d.ts +2 -3
  227. package/dist/provide-screenshot.d.ts.map +1 -0
  228. package/dist/provide-screenshot.js.map +1 -0
  229. package/dist/puppeteer-evaluate.d.ts +1 -1
  230. package/dist/puppeteer-evaluate.d.ts.map +1 -0
  231. package/dist/puppeteer-evaluate.js +0 -1
  232. package/dist/puppeteer-evaluate.js.map +1 -0
  233. package/dist/puppeteer-screenshot.d.ts +1 -2
  234. package/dist/puppeteer-screenshot.d.ts.map +1 -0
  235. package/dist/puppeteer-screenshot.js.map +1 -0
  236. package/dist/render-frames.d.ts +8 -8
  237. package/dist/render-frames.d.ts.map +1 -0
  238. package/dist/render-frames.js.map +1 -0
  239. package/dist/render-media.d.ts +7 -7
  240. package/dist/render-media.d.ts.map +1 -0
  241. package/dist/render-media.js.map +1 -0
  242. package/dist/render-still.d.ts +6 -6
  243. package/dist/render-still.d.ts.map +1 -0
  244. package/dist/render-still.js.map +1 -0
  245. package/dist/resolve-asset-src.d.ts.map +1 -0
  246. package/dist/resolve-asset-src.js.map +1 -0
  247. package/dist/sample-rate.d.ts.map +1 -0
  248. package/dist/sample-rate.js.map +1 -0
  249. package/dist/screenshot-dom-element.d.ts +2 -3
  250. package/dist/screenshot-dom-element.d.ts.map +1 -0
  251. package/dist/screenshot-dom-element.js.map +1 -0
  252. package/dist/screenshot-task.d.ts +2 -3
  253. package/dist/screenshot-task.d.ts.map +1 -0
  254. package/dist/screenshot-task.js.map +1 -0
  255. package/dist/seek-to-frame.d.ts +1 -1
  256. package/dist/seek-to-frame.d.ts.map +1 -0
  257. package/dist/seek-to-frame.js.map +1 -0
  258. package/dist/serve-handler/index.d.ts +1 -1
  259. package/dist/serve-handler/index.js +0 -1
  260. package/dist/serve-static.d.ts +2 -2
  261. package/dist/serve-static.d.ts.map +1 -0
  262. package/dist/serve-static.js.map +1 -0
  263. package/dist/set-props-and-env.d.ts +1 -1
  264. package/dist/set-props-and-env.d.ts.map +1 -0
  265. package/dist/set-props-and-env.js.map +1 -0
  266. package/dist/stitch-frames-to-video.d.ts +3 -3
  267. package/dist/stitch-frames-to-video.d.ts.map +1 -0
  268. package/dist/stitch-frames-to-video.js.map +1 -0
  269. package/dist/stringify-ffmpeg-filter.d.ts +1 -1
  270. package/dist/stringify-ffmpeg-filter.d.ts.map +1 -0
  271. package/dist/stringify-ffmpeg-filter.js.map +1 -0
  272. package/dist/symbolicate-stacktrace.d.ts +1 -1
  273. package/dist/symbolicate-stacktrace.d.ts.map +1 -0
  274. package/dist/symbolicate-stacktrace.js.map +1 -0
  275. package/dist/tmp-dir.d.ts.map +1 -0
  276. package/dist/tmp-dir.js.map +1 -0
  277. package/dist/types.d.ts +1 -1
  278. package/dist/types.d.ts.map +1 -0
  279. package/dist/types.js.map +1 -0
  280. package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
  281. package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -0
  282. package/dist/validate-even-dimensions-with-codec.js.map +1 -0
  283. package/dist/validate-ffmpeg.d.ts.map +1 -0
  284. package/dist/validate-ffmpeg.js.map +1 -0
  285. package/dist/validate-output-filename.d.ts +1 -1
  286. package/dist/validate-puppeteer-timeout.d.ts.map +1 -0
  287. package/dist/validate-puppeteer-timeout.js.map +1 -0
  288. package/dist/validate-scale.d.ts.map +1 -0
  289. package/dist/validate-scale.js.map +1 -0
  290. package/package.json +4 -4
  291. package/dist/abort.d.ts +0 -7
  292. package/dist/abort.js +0 -20
  293. package/dist/cancel.d.ts +0 -7
  294. package/dist/cancel.js +0 -25
  295. package/dist/ensure-faststart.d.ts +0 -1
  296. package/dist/ensure-faststart.js +0 -14
  297. package/dist/faststart/atom.d.ts +0 -35
  298. package/dist/faststart/atom.js +0 -138
  299. package/dist/faststart/index.d.ts +0 -0
  300. package/dist/faststart/index.js +0 -1
  301. package/dist/faststart/options.d.ts +0 -6
  302. package/dist/faststart/options.js +0 -2
  303. package/dist/faststart/qt-faststart.d.ts +0 -18
  304. package/dist/faststart/qt-faststart.js +0 -66
  305. package/dist/faststart/update-chunk-offsets.d.ts +0 -10
  306. package/dist/faststart/update-chunk-offsets.js +0 -114
  307. package/dist/faststart/util.d.ts +0 -9
  308. package/dist/faststart/util.js +0 -34
  309. package/dist/offthread/index.d.ts +0 -0
  310. package/dist/offthread/index.js +0 -1
  311. package/dist/render-gif.d.ts +0 -2
  312. package/dist/render-gif.js +0 -242
  313. package/dist/should-use-vp9-decoder.d.ts +0 -0
  314. package/dist/should-use-vp9-decoder.js +0 -1
  315. package/dist/stitch-frames-to-gif.d.ts +0 -8
  316. package/dist/stitch-frames-to-gif.js +0 -128
  317. package/dist/validate-offthreadvideo-image-format.d.ts +0 -1
  318. package/dist/validate-offthreadvideo-image-format.js +0 -15
@@ -0,0 +1,371 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2017 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
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
18
+ if (kind === "m") throw new TypeError("Private method is not writable");
19
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
20
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
21
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
22
+ };
23
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
24
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
25
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
26
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
27
+ };
28
+ var _Coverage_jsCoverage, _Coverage_cssCoverage, _JSCoverage_instances, _JSCoverage_client, _JSCoverage_enabled, _JSCoverage_scriptURLs, _JSCoverage_scriptSources, _JSCoverage_eventListeners, _JSCoverage_resetOnNavigation, _JSCoverage_reportAnonymousScripts, _JSCoverage_includeRawScriptCoverage, _JSCoverage_onExecutionContextsCleared, _JSCoverage_onScriptParsed, _CSSCoverage_instances, _CSSCoverage_client, _CSSCoverage_enabled, _CSSCoverage_stylesheetURLs, _CSSCoverage_stylesheetSources, _CSSCoverage_eventListeners, _CSSCoverage_resetOnNavigation, _CSSCoverage_onExecutionContextsCleared, _CSSCoverage_onStyleSheet;
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.CSSCoverage = exports.JSCoverage = exports.Coverage = void 0;
31
+ const assert_1 = require("./assert");
32
+ const util_1 = require("./util");
33
+ const ExecutionContext_1 = require("./ExecutionContext");
34
+ const util_2 = require("./util");
35
+ /**
36
+ * The Coverage class provides methods to gathers information about parts of
37
+ * JavaScript and CSS that were used by the page.
38
+ *
39
+ * @remarks
40
+ * To output coverage in a form consumable by {@link https://github.com/istanbuljs | Istanbul},
41
+ * see {@link https://github.com/istanbuljs/puppeteer-to-istanbul | puppeteer-to-istanbul}.
42
+ *
43
+ * @example
44
+ * An example of using JavaScript and CSS coverage to get percentage of initially
45
+ * executed code:
46
+ * ```js
47
+ * // Enable both JavaScript and CSS coverage
48
+ * await Promise.all([
49
+ * page.coverage.startJSCoverage(),
50
+ * page.coverage.startCSSCoverage()
51
+ * ]);
52
+ * // Navigate to page
53
+ * await page.goto('https://example.com');
54
+ * // Disable both JavaScript and CSS coverage
55
+ * const [jsCoverage, cssCoverage] = await Promise.all([
56
+ * page.coverage.stopJSCoverage(),
57
+ * page.coverage.stopCSSCoverage(),
58
+ * ]);
59
+ * let totalBytes = 0;
60
+ * let usedBytes = 0;
61
+ * const coverage = [...jsCoverage, ...cssCoverage];
62
+ * for (const entry of coverage) {
63
+ * totalBytes += entry.text.length;
64
+ * for (const range of entry.ranges)
65
+ * usedBytes += range.end - range.start - 1;
66
+ * }
67
+ * console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`);
68
+ * ```
69
+ * @public
70
+ */
71
+ class Coverage {
72
+ constructor(client) {
73
+ _Coverage_jsCoverage.set(this, void 0);
74
+ _Coverage_cssCoverage.set(this, void 0);
75
+ __classPrivateFieldSet(this, _Coverage_jsCoverage, new JSCoverage(client), "f");
76
+ __classPrivateFieldSet(this, _Coverage_cssCoverage, new CSSCoverage(client), "f");
77
+ }
78
+ /**
79
+ * @param options - Set of configurable options for coverage defaults to
80
+ * `resetOnNavigation : true, reportAnonymousScripts : false`
81
+ * @returns Promise that resolves when coverage is started.
82
+ *
83
+ * @remarks
84
+ * Anonymous scripts are ones that don't have an associated url. These are
85
+ * scripts that are dynamically created on the page using `eval` or
86
+ * `new Function`. If `reportAnonymousScripts` is set to `true`, anonymous
87
+ * scripts will have `pptr://__puppeteer_evaluation_script__` as their URL.
88
+ */
89
+ async startJSCoverage(options = {}) {
90
+ return await __classPrivateFieldGet(this, _Coverage_jsCoverage, "f").start(options);
91
+ }
92
+ /**
93
+ * @returns Promise that resolves to the array of coverage reports for
94
+ * all scripts.
95
+ *
96
+ * @remarks
97
+ * JavaScript Coverage doesn't include anonymous scripts by default.
98
+ * However, scripts with sourceURLs are reported.
99
+ */
100
+ async stopJSCoverage() {
101
+ return await __classPrivateFieldGet(this, _Coverage_jsCoverage, "f").stop();
102
+ }
103
+ /**
104
+ * @param options - Set of configurable options for coverage, defaults to
105
+ * `resetOnNavigation : true`
106
+ * @returns Promise that resolves when coverage is started.
107
+ */
108
+ async startCSSCoverage(options = {}) {
109
+ return await __classPrivateFieldGet(this, _Coverage_cssCoverage, "f").start(options);
110
+ }
111
+ /**
112
+ * @returns Promise that resolves to the array of coverage reports
113
+ * for all stylesheets.
114
+ * @remarks
115
+ * CSS Coverage doesn't include dynamically injected style tags
116
+ * without sourceURLs.
117
+ */
118
+ async stopCSSCoverage() {
119
+ return await __classPrivateFieldGet(this, _Coverage_cssCoverage, "f").stop();
120
+ }
121
+ }
122
+ exports.Coverage = Coverage;
123
+ _Coverage_jsCoverage = new WeakMap(), _Coverage_cssCoverage = new WeakMap();
124
+ /**
125
+ * @public
126
+ */
127
+ class JSCoverage {
128
+ constructor(client) {
129
+ _JSCoverage_instances.add(this);
130
+ _JSCoverage_client.set(this, void 0);
131
+ _JSCoverage_enabled.set(this, false);
132
+ _JSCoverage_scriptURLs.set(this, new Map());
133
+ _JSCoverage_scriptSources.set(this, new Map());
134
+ _JSCoverage_eventListeners.set(this, []);
135
+ _JSCoverage_resetOnNavigation.set(this, false);
136
+ _JSCoverage_reportAnonymousScripts.set(this, false);
137
+ _JSCoverage_includeRawScriptCoverage.set(this, false);
138
+ __classPrivateFieldSet(this, _JSCoverage_client, client, "f");
139
+ }
140
+ async start(options = {}) {
141
+ (0, assert_1.assert)(!__classPrivateFieldGet(this, _JSCoverage_enabled, "f"), 'JSCoverage is already enabled');
142
+ const { resetOnNavigation = true, reportAnonymousScripts = false, includeRawScriptCoverage = false, } = options;
143
+ __classPrivateFieldSet(this, _JSCoverage_resetOnNavigation, resetOnNavigation, "f");
144
+ __classPrivateFieldSet(this, _JSCoverage_reportAnonymousScripts, reportAnonymousScripts, "f");
145
+ __classPrivateFieldSet(this, _JSCoverage_includeRawScriptCoverage, includeRawScriptCoverage, "f");
146
+ __classPrivateFieldSet(this, _JSCoverage_enabled, true, "f");
147
+ __classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").clear();
148
+ __classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").clear();
149
+ __classPrivateFieldSet(this, _JSCoverage_eventListeners, [
150
+ (0, util_1.addEventListener)(__classPrivateFieldGet(this, _JSCoverage_client, "f"), 'Debugger.scriptParsed', __classPrivateFieldGet(this, _JSCoverage_instances, "m", _JSCoverage_onScriptParsed).bind(this)),
151
+ (0, util_1.addEventListener)(__classPrivateFieldGet(this, _JSCoverage_client, "f"), 'Runtime.executionContextsCleared', __classPrivateFieldGet(this, _JSCoverage_instances, "m", _JSCoverage_onExecutionContextsCleared).bind(this)),
152
+ ], "f");
153
+ await Promise.all([
154
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.enable'),
155
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.startPreciseCoverage', {
156
+ callCount: __classPrivateFieldGet(this, _JSCoverage_includeRawScriptCoverage, "f"),
157
+ detailed: true,
158
+ }),
159
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.enable'),
160
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.setSkipAllPauses', { skip: true }),
161
+ ]);
162
+ }
163
+ async stop() {
164
+ (0, assert_1.assert)(__classPrivateFieldGet(this, _JSCoverage_enabled, "f"), 'JSCoverage is not enabled');
165
+ __classPrivateFieldSet(this, _JSCoverage_enabled, false, "f");
166
+ const result = await Promise.all([
167
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.takePreciseCoverage'),
168
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.stopPreciseCoverage'),
169
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Profiler.disable'),
170
+ __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.disable'),
171
+ ]);
172
+ (0, util_2.removeEventListeners)(__classPrivateFieldGet(this, _JSCoverage_eventListeners, "f"));
173
+ const coverage = [];
174
+ const profileResponse = result[0];
175
+ for (const entry of profileResponse.result) {
176
+ let url = __classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").get(entry.scriptId);
177
+ if (!url && __classPrivateFieldGet(this, _JSCoverage_reportAnonymousScripts, "f")) {
178
+ url = 'debugger://VM' + entry.scriptId;
179
+ }
180
+ const text = __classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").get(entry.scriptId);
181
+ if (text === undefined || url === undefined) {
182
+ continue;
183
+ }
184
+ const flattenRanges = [];
185
+ for (const func of entry.functions) {
186
+ flattenRanges.push(...func.ranges);
187
+ }
188
+ const ranges = convertToDisjointRanges(flattenRanges);
189
+ if (!__classPrivateFieldGet(this, _JSCoverage_includeRawScriptCoverage, "f")) {
190
+ coverage.push({ url, ranges, text });
191
+ }
192
+ else {
193
+ coverage.push({ url, ranges, text, rawScriptCoverage: entry });
194
+ }
195
+ }
196
+ return coverage;
197
+ }
198
+ }
199
+ exports.JSCoverage = JSCoverage;
200
+ _JSCoverage_client = new WeakMap(), _JSCoverage_enabled = new WeakMap(), _JSCoverage_scriptURLs = new WeakMap(), _JSCoverage_scriptSources = new WeakMap(), _JSCoverage_eventListeners = new WeakMap(), _JSCoverage_resetOnNavigation = new WeakMap(), _JSCoverage_reportAnonymousScripts = new WeakMap(), _JSCoverage_includeRawScriptCoverage = new WeakMap(), _JSCoverage_instances = new WeakSet(), _JSCoverage_onExecutionContextsCleared = function _JSCoverage_onExecutionContextsCleared() {
201
+ if (!__classPrivateFieldGet(this, _JSCoverage_resetOnNavigation, "f")) {
202
+ return;
203
+ }
204
+ __classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").clear();
205
+ __classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").clear();
206
+ }, _JSCoverage_onScriptParsed = async function _JSCoverage_onScriptParsed(event) {
207
+ // Ignore puppeteer-injected scripts
208
+ if (event.url === ExecutionContext_1.EVALUATION_SCRIPT_URL) {
209
+ return;
210
+ }
211
+ // Ignore other anonymous scripts unless the reportAnonymousScripts option is true.
212
+ if (!event.url && !__classPrivateFieldGet(this, _JSCoverage_reportAnonymousScripts, "f")) {
213
+ return;
214
+ }
215
+ try {
216
+ const response = await __classPrivateFieldGet(this, _JSCoverage_client, "f").send('Debugger.getScriptSource', {
217
+ scriptId: event.scriptId,
218
+ });
219
+ __classPrivateFieldGet(this, _JSCoverage_scriptURLs, "f").set(event.scriptId, event.url);
220
+ __classPrivateFieldGet(this, _JSCoverage_scriptSources, "f").set(event.scriptId, response.scriptSource);
221
+ }
222
+ catch (error) {
223
+ // This might happen if the page has already navigated away.
224
+ (0, util_1.debugError)(error);
225
+ }
226
+ };
227
+ /**
228
+ * @public
229
+ */
230
+ class CSSCoverage {
231
+ constructor(client) {
232
+ _CSSCoverage_instances.add(this);
233
+ _CSSCoverage_client.set(this, void 0);
234
+ _CSSCoverage_enabled.set(this, false);
235
+ _CSSCoverage_stylesheetURLs.set(this, new Map());
236
+ _CSSCoverage_stylesheetSources.set(this, new Map());
237
+ _CSSCoverage_eventListeners.set(this, []);
238
+ _CSSCoverage_resetOnNavigation.set(this, false);
239
+ __classPrivateFieldSet(this, _CSSCoverage_client, client, "f");
240
+ }
241
+ async start(options = {}) {
242
+ (0, assert_1.assert)(!__classPrivateFieldGet(this, _CSSCoverage_enabled, "f"), 'CSSCoverage is already enabled');
243
+ const { resetOnNavigation = true } = options;
244
+ __classPrivateFieldSet(this, _CSSCoverage_resetOnNavigation, resetOnNavigation, "f");
245
+ __classPrivateFieldSet(this, _CSSCoverage_enabled, true, "f");
246
+ __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").clear();
247
+ __classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").clear();
248
+ __classPrivateFieldSet(this, _CSSCoverage_eventListeners, [
249
+ (0, util_1.addEventListener)(__classPrivateFieldGet(this, _CSSCoverage_client, "f"), 'CSS.styleSheetAdded', __classPrivateFieldGet(this, _CSSCoverage_instances, "m", _CSSCoverage_onStyleSheet).bind(this)),
250
+ (0, util_1.addEventListener)(__classPrivateFieldGet(this, _CSSCoverage_client, "f"), 'Runtime.executionContextsCleared', __classPrivateFieldGet(this, _CSSCoverage_instances, "m", _CSSCoverage_onExecutionContextsCleared).bind(this)),
251
+ ], "f");
252
+ await Promise.all([
253
+ __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('DOM.enable'),
254
+ __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.enable'),
255
+ __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.startRuleUsageTracking'),
256
+ ]);
257
+ }
258
+ async stop() {
259
+ (0, assert_1.assert)(__classPrivateFieldGet(this, _CSSCoverage_enabled, "f"), 'CSSCoverage is not enabled');
260
+ __classPrivateFieldSet(this, _CSSCoverage_enabled, false, "f");
261
+ const ruleTrackingResponse = await __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.stopRuleUsageTracking');
262
+ await Promise.all([
263
+ __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.disable'),
264
+ __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('DOM.disable'),
265
+ ]);
266
+ (0, util_2.removeEventListeners)(__classPrivateFieldGet(this, _CSSCoverage_eventListeners, "f"));
267
+ // aggregate by styleSheetId
268
+ const styleSheetIdToCoverage = new Map();
269
+ for (const entry of ruleTrackingResponse.ruleUsage) {
270
+ let ranges = styleSheetIdToCoverage.get(entry.styleSheetId);
271
+ if (!ranges) {
272
+ ranges = [];
273
+ styleSheetIdToCoverage.set(entry.styleSheetId, ranges);
274
+ }
275
+ ranges.push({
276
+ startOffset: entry.startOffset,
277
+ endOffset: entry.endOffset,
278
+ count: entry.used ? 1 : 0,
279
+ });
280
+ }
281
+ const coverage = [];
282
+ for (const styleSheetId of __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").keys()) {
283
+ const url = __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").get(styleSheetId);
284
+ (0, assert_1.assert)(url);
285
+ const text = __classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").get(styleSheetId);
286
+ (0, assert_1.assert)(text);
287
+ const ranges = convertToDisjointRanges(styleSheetIdToCoverage.get(styleSheetId) || []);
288
+ coverage.push({ url, ranges, text });
289
+ }
290
+ return coverage;
291
+ }
292
+ }
293
+ exports.CSSCoverage = CSSCoverage;
294
+ _CSSCoverage_client = new WeakMap(), _CSSCoverage_enabled = new WeakMap(), _CSSCoverage_stylesheetURLs = new WeakMap(), _CSSCoverage_stylesheetSources = new WeakMap(), _CSSCoverage_eventListeners = new WeakMap(), _CSSCoverage_resetOnNavigation = new WeakMap(), _CSSCoverage_instances = new WeakSet(), _CSSCoverage_onExecutionContextsCleared = function _CSSCoverage_onExecutionContextsCleared() {
295
+ if (!__classPrivateFieldGet(this, _CSSCoverage_resetOnNavigation, "f")) {
296
+ return;
297
+ }
298
+ __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").clear();
299
+ __classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").clear();
300
+ }, _CSSCoverage_onStyleSheet = async function _CSSCoverage_onStyleSheet(event) {
301
+ const { header } = event;
302
+ // Ignore anonymous scripts
303
+ if (!header.sourceURL) {
304
+ return;
305
+ }
306
+ try {
307
+ const response = await __classPrivateFieldGet(this, _CSSCoverage_client, "f").send('CSS.getStyleSheetText', {
308
+ styleSheetId: header.styleSheetId,
309
+ });
310
+ __classPrivateFieldGet(this, _CSSCoverage_stylesheetURLs, "f").set(header.styleSheetId, header.sourceURL);
311
+ __classPrivateFieldGet(this, _CSSCoverage_stylesheetSources, "f").set(header.styleSheetId, response.text);
312
+ }
313
+ catch (error) {
314
+ // This might happen if the page has already navigated away.
315
+ (0, util_1.debugError)(error);
316
+ }
317
+ };
318
+ function convertToDisjointRanges(nestedRanges) {
319
+ const points = [];
320
+ for (const range of nestedRanges) {
321
+ points.push({ offset: range.startOffset, type: 0, range });
322
+ points.push({ offset: range.endOffset, type: 1, range });
323
+ }
324
+ // Sort points to form a valid parenthesis sequence.
325
+ points.sort((a, b) => {
326
+ // Sort with increasing offsets.
327
+ if (a.offset !== b.offset) {
328
+ return a.offset - b.offset;
329
+ }
330
+ // All "end" points should go before "start" points.
331
+ if (a.type !== b.type) {
332
+ return b.type - a.type;
333
+ }
334
+ const aLength = a.range.endOffset - a.range.startOffset;
335
+ const bLength = b.range.endOffset - b.range.startOffset;
336
+ // For two "start" points, the one with longer range goes first.
337
+ if (a.type === 0) {
338
+ return bLength - aLength;
339
+ }
340
+ // For two "end" points, the one with shorter range goes first.
341
+ return aLength - bLength;
342
+ });
343
+ const hitCountStack = [];
344
+ const results = [];
345
+ let lastOffset = 0;
346
+ // Run scanning line to intersect all ranges.
347
+ for (const point of points) {
348
+ if (hitCountStack.length &&
349
+ lastOffset < point.offset &&
350
+ hitCountStack[hitCountStack.length - 1] > 0) {
351
+ const lastResult = results[results.length - 1];
352
+ if (lastResult && lastResult.end === lastOffset) {
353
+ lastResult.end = point.offset;
354
+ }
355
+ else {
356
+ results.push({ start: lastOffset, end: point.offset });
357
+ }
358
+ }
359
+ lastOffset = point.offset;
360
+ if (point.type === 0) {
361
+ hitCountStack.push(point.range.count);
362
+ }
363
+ else {
364
+ hitCountStack.pop();
365
+ }
366
+ }
367
+ // Filter out empty ranges.
368
+ return results.filter((range) => {
369
+ return range.end - range.start > 1;
370
+ });
371
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2020 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
+ declare global {
17
+ var __PUPPETEER_DEBUG: string;
18
+ }
19
+ export declare const debug: (prefix: string) => (...args: unknown[]) => void;
@@ -0,0 +1,42 @@
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.debug = void 0;
19
+ const debug = (prefix) => {
20
+ return (...logArgs) => {
21
+ const debugLevel = globalThis.__PUPPETEER_DEBUG;
22
+ if (!debugLevel) {
23
+ return;
24
+ }
25
+ const everythingShouldBeLogged = debugLevel === '*';
26
+ const prefixMatchesDebugLevel = everythingShouldBeLogged ||
27
+ /**
28
+ * If the debug level is `foo*`, that means we match any prefix that
29
+ * starts with `foo`. If the level is `foo`, we match only the prefix
30
+ * `foo`.
31
+ */
32
+ (debugLevel.endsWith('*')
33
+ ? prefix.startsWith(debugLevel)
34
+ : prefix === debugLevel);
35
+ if (!prefixMatchesDebugLevel) {
36
+ return;
37
+ }
38
+ // eslint-disable-next-line no-console
39
+ console.log(`${prefix}:`, ...logArgs);
40
+ };
41
+ };
42
+ exports.debug = debug;
@@ -0,0 +1,40 @@
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
+ /**
17
+ * @public
18
+ */
19
+ export interface Device {
20
+ name: string;
21
+ userAgent: string;
22
+ viewport: {
23
+ width: number;
24
+ height: number;
25
+ deviceScaleFactor: number;
26
+ isMobile: boolean;
27
+ hasTouch: boolean;
28
+ isLandscape: boolean;
29
+ };
30
+ }
31
+ /**
32
+ * @public
33
+ */
34
+ export declare type DevicesMap = {
35
+ [name: string]: Device;
36
+ };
37
+ /**
38
+ * @internal
39
+ */
40
+ export declare const _devicesMap: DevicesMap;