@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
@@ -60,28 +60,25 @@ const http = __importStar(require("http"));
60
60
  const https = __importStar(require("https"));
61
61
  const os = __importStar(require("os"));
62
62
  const path = __importStar(require("path"));
63
+ const util = __importStar(require("util"));
63
64
  const extract_zip_1 = __importDefault(require("extract-zip"));
64
65
  const URL = __importStar(require("url"));
65
66
  const util_1 = require("util");
66
67
  const assert_1 = require("./assert");
67
68
  const delete_directory_1 = require("../delete-directory");
68
69
  const get_download_destination_1 = require("./get-download-destination");
70
+ const { PUPPETEER_EXPERIMENTAL_CHROMIUM_MAC_ARM } = process.env;
69
71
  const downloadURLs = {
70
72
  chrome: {
71
73
  linux: '%s/chromium-browser-snapshots/Linux_x64/%d/%s.zip',
72
- linux_arm: '%s/chromium-browser-snapshots/Linux_x64/%d/%s.zip',
73
74
  mac: '%s/chromium-browser-snapshots/Mac/%d/%s.zip',
74
- mac_arm: 'https://github.com/Alex313031/Thorium-Special/releases/download/M103.0.5037.0-1/Thorium_MacOS_ARM64.dmg',
75
+ mac_arm: '%s/chromium-browser-snapshots/Mac_Arm/%d/%s.zip',
75
76
  win32: '%s/chromium-browser-snapshots/Win/%d/%s.zip',
76
77
  win64: '%s/chromium-browser-snapshots/Win_x64/%d/%s.zip',
77
78
  },
78
79
  firefox: {
79
80
  linux: '%s/firefox-%s.en-US.%s-x86_64.tar.bz2',
80
- // TODO
81
- linux_arm: '%s/firefox-%s.en-US.%s-x86_64.tar.bz2',
82
81
  mac: '%s/firefox-%s.en-US.%s.dmg',
83
- // TODO
84
- mac_arm: '%s/firefox-%s.en-US.%s.dmg',
85
82
  win32: '%s/firefox-%s.en-US.%s.zip',
86
83
  win64: '%s/firefox-%s.en-US.%s.zip',
87
84
  },
@@ -100,7 +97,6 @@ function archiveName(product, platform, revision) {
100
97
  switch (product) {
101
98
  case 'chrome':
102
99
  switch (platform) {
103
- case 'linux_arm':
104
100
  case 'linux':
105
101
  return 'chrome-linux';
106
102
  case 'mac_arm':
@@ -121,12 +117,27 @@ function archiveName(product, platform, revision) {
121
117
  throw new Error('unknown browser');
122
118
  }
123
119
  }
124
- function _downloadURL(product, platform) {
125
- const url = downloadURLs[product][platform];
120
+ function _downloadURL(product, platform, host, revision) {
121
+ const url = util.format(downloadURLs[product][platform], host, revision, archiveName(product, platform, revision));
126
122
  return url;
127
123
  }
128
- const readdirAsync = fs.promises.readdir;
129
- const mkdirAsync = fs.promises.mkdir;
124
+ function handleArm64() {
125
+ let exists = fs.existsSync('/usr/bin/chromium-browser');
126
+ if (exists) {
127
+ return;
128
+ }
129
+ exists = fs.existsSync('/usr/bin/chromium');
130
+ if (exists) {
131
+ return;
132
+ }
133
+ console.error('The chromium binary is not available for arm64.' +
134
+ '\nIf you are on Ubuntu, you can install with: ' +
135
+ '\n\n sudo apt install chromium\n' +
136
+ '\n\n sudo apt install chromium-browser\n');
137
+ throw new Error();
138
+ }
139
+ const readdirAsync = (0, util_1.promisify)(fs.readdir.bind(fs));
140
+ const mkdirAsync = (0, util_1.promisify)(fs.mkdir.bind(fs));
130
141
  const unlinkAsync = (0, util_1.promisify)(fs.unlink.bind(fs));
131
142
  const chmodAsync = (0, util_1.promisify)(fs.chmod.bind(fs));
132
143
  function existsAsync(filePath) {
@@ -157,7 +168,9 @@ class BrowserFetcher {
157
168
  case 'darwin':
158
169
  switch (__classPrivateFieldGet(this, _BrowserFetcher_product, "f")) {
159
170
  case 'chrome':
160
- __classPrivateFieldSet(this, _BrowserFetcher_platform, os.arch() === 'arm64' ? 'mac_arm' : 'mac', "f");
171
+ __classPrivateFieldSet(this, _BrowserFetcher_platform, os.arch() === 'arm64' && PUPPETEER_EXPERIMENTAL_CHROMIUM_MAC_ARM
172
+ ? 'mac_arm'
173
+ : 'mac', "f");
161
174
  break;
162
175
  case 'firefox':
163
176
  __classPrivateFieldSet(this, _BrowserFetcher_platform, 'mac', "f");
@@ -167,7 +180,7 @@ class BrowserFetcher {
167
180
  }
168
181
  break;
169
182
  case 'linux':
170
- __classPrivateFieldSet(this, _BrowserFetcher_platform, os.arch() === 'arm64' ? 'linux_arm' : 'linux', "f");
183
+ __classPrivateFieldSet(this, _BrowserFetcher_platform, 'linux', "f");
171
184
  break;
172
185
  case 'win32':
173
186
  __classPrivateFieldSet(this, _BrowserFetcher_platform, os.arch() === 'x64' ? 'win64' : 'win32', "f");
@@ -206,8 +219,8 @@ class BrowserFetcher {
206
219
  * @returns A promise that resolves to `true` if the revision could be downloaded
207
220
  * from the host.
208
221
  */
209
- canDownload() {
210
- const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"));
222
+ canDownload(revision) {
223
+ const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f"), revision);
211
224
  return new Promise((resolve) => {
212
225
  const request = httpRequest(url, 'HEAD', (response) => {
213
226
  resolve(response.statusCode === 200);
@@ -229,7 +242,7 @@ class BrowserFetcher {
229
242
  * and extracted.
230
243
  */
231
244
  async download(revision, progressCallback = () => undefined) {
232
- const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"));
245
+ const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f"), revision);
233
246
  const fileName = url.split('/').pop();
234
247
  (0, assert_1.assert)(fileName, `A malformed download URL was found: ${url}.`);
235
248
  const archivePath = path.join(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"), fileName);
@@ -238,9 +251,12 @@ class BrowserFetcher {
238
251
  return this.revisionInfo(revision);
239
252
  }
240
253
  if (!(await existsAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f")))) {
241
- await mkdirAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"), {
242
- recursive: true,
243
- });
254
+ await mkdirAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"));
255
+ }
256
+ // Use system Chromium builds on Linux ARM devices
257
+ if (os.platform() !== 'darwin' && os.arch() === 'arm64') {
258
+ handleArm64();
259
+ return;
244
260
  }
245
261
  try {
246
262
  await _downloadFile(url, archivePath, progressCallback);
@@ -301,9 +317,9 @@ class BrowserFetcher {
301
317
  let executablePath = '';
302
318
  if (__classPrivateFieldGet(this, _BrowserFetcher_product, "f") === 'chrome') {
303
319
  if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac_arm') {
304
- executablePath = path.join(folderPath, 'Thorium.app', 'Contents', 'MacOS', 'Thorium');
320
+ executablePath = path.join(folderPath, archiveName(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), revision), 'Chromium.app', 'Contents', 'MacOS', 'Chromium');
305
321
  }
306
- else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux_arm') {
322
+ else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux') {
307
323
  executablePath = path.join(folderPath, archiveName(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), revision), 'chrome');
308
324
  }
309
325
  else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win32' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win64') {
@@ -317,7 +333,7 @@ class BrowserFetcher {
317
333
  if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac_arm') {
318
334
  executablePath = path.join(folderPath, 'Firefox Nightly.app', 'Contents', 'MacOS', 'firefox');
319
335
  }
320
- else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux_arm') {
336
+ else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux') {
321
337
  executablePath = path.join(folderPath, 'firefox', 'firefox');
322
338
  }
323
339
  else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win32' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win64') {
@@ -330,8 +346,16 @@ class BrowserFetcher {
330
346
  else {
331
347
  throw new Error('Unsupported product: ' + __classPrivateFieldGet(this, _BrowserFetcher_product, "f"));
332
348
  }
333
- const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"));
349
+ const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f"), revision);
334
350
  const local = fs.existsSync(folderPath);
351
+ console.log({
352
+ revision,
353
+ executablePath,
354
+ folderPath,
355
+ local,
356
+ url,
357
+ product: __classPrivateFieldGet(this, _BrowserFetcher_product, "f"),
358
+ });
335
359
  return {
336
360
  revision,
337
361
  executablePath,
@@ -367,7 +391,6 @@ function _downloadFile(url, destinationPath, progressCallback) {
367
391
  });
368
392
  let downloadedBytes = 0;
369
393
  let totalBytes = 0;
370
- let lastProgress = Date.now();
371
394
  const request = httpRequest(url, 'GET', (response) => {
372
395
  if (response.statusCode !== 200) {
373
396
  const error = new Error(`Download failed: server returned code ${response.statusCode}. URL: ${url}`);
@@ -393,10 +416,7 @@ function _downloadFile(url, destinationPath, progressCallback) {
393
416
  return promise;
394
417
  function onData(chunk) {
395
418
  downloadedBytes += chunk.length;
396
- if (Date.now() - lastProgress > 1000) {
397
- progressCallback(downloadedBytes, totalBytes);
398
- lastProgress = Date.now();
399
- }
419
+ progressCallback(downloadedBytes, totalBytes);
400
420
  }
401
421
  }
402
422
  function install(archivePath, folderPath) {
@@ -1,10 +1,10 @@
1
- import type { Protocol } from 'devtools-protocol';
2
- import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping';
1
+ import { Protocol } from 'devtools-protocol';
2
+ import { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping';
3
+ import { ConnectionTransport } from './ConnectionTransport';
3
4
  import { EventEmitter } from './EventEmitter';
4
- import { NodeWebSocketTransport } from './NodeWebSocketTransport';
5
5
  export declare class Connection extends EventEmitter {
6
6
  #private;
7
- constructor(url: string, transport: NodeWebSocketTransport);
7
+ constructor(url: string, transport: ConnectionTransport);
8
8
  static fromSession(session: CDPSession): Connection | undefined;
9
9
  get _closed(): boolean;
10
10
  /**
@@ -164,7 +164,7 @@ _Connection_url = new WeakMap(), _Connection_transport = new WeakMap(), _Connect
164
164
  __classPrivateFieldGet(this, _Connection_transport, "f").onmessage = undefined;
165
165
  __classPrivateFieldGet(this, _Connection_transport, "f").onclose = undefined;
166
166
  for (const callback of __classPrivateFieldGet(this, _Connection_callbacks, "f").values()) {
167
- callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed. https://www.remotion.dev/docs/target-closed`));
167
+ callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));
168
168
  }
169
169
  __classPrivateFieldGet(this, _Connection_callbacks, "f").clear();
170
170
  for (const session of __classPrivateFieldGet(this, _Connection_sessions, "f").values()) {
@@ -236,7 +236,7 @@ class CDPSession extends EventEmitter_1.EventEmitter {
236
236
  }
237
237
  _onClosed() {
238
238
  for (const callback of __classPrivateFieldGet(this, _CDPSession_callbacks, "f").values()) {
239
- callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed. https://www.remotion.dev/docs/target-closed`));
239
+ callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));
240
240
  }
241
241
  __classPrivateFieldGet(this, _CDPSession_callbacks, "f").clear();
242
242
  __classPrivateFieldSet(this, _CDPSession_connection, undefined, "f");
@@ -15,17 +15,41 @@
15
15
  */
16
16
  import { JSHandle } from './JSHandle';
17
17
  export interface ConsoleMessageLocation {
18
+ /**
19
+ * URL of the resource if known or `undefined` otherwise.
20
+ */
18
21
  url?: string;
22
+ /**
23
+ * 0-based line number in the resource if known or `undefined` otherwise.
24
+ */
19
25
  lineNumber?: number;
26
+ /**
27
+ * 0-based column number in the resource if known or `undefined` otherwise.
28
+ */
20
29
  columnNumber?: number;
21
30
  }
22
31
  export declare type ConsoleMessageType = 'log' | 'debug' | 'info' | 'error' | 'warning' | 'dir' | 'dirxml' | 'table' | 'trace' | 'clear' | 'startGroup' | 'startGroupCollapsed' | 'endGroup' | 'assert' | 'profile' | 'profileEnd' | 'count' | 'timeEnd' | 'verbose';
23
32
  export declare class ConsoleMessage {
24
33
  #private;
25
- type: ConsoleMessageType;
26
- text: string;
27
- args: JSHandle[];
28
34
  constructor(type: ConsoleMessageType, text: string, args: JSHandle[], stackTraceLocations: ConsoleMessageLocation[]);
35
+ /**
36
+ * @returns The type of the console message.
37
+ */
38
+ type(): ConsoleMessageType;
39
+ /**
40
+ * @returns The text of the console message.
41
+ */
42
+ text(): string;
43
+ /**
44
+ * @returns An array of arguments passed to the console.
45
+ */
46
+ args(): JSHandle[];
47
+ /**
48
+ * @returns The location of the console message.
49
+ */
29
50
  location(): ConsoleMessageLocation;
51
+ /**
52
+ * @returns The array of locations on the stack of the console message.
53
+ */
30
54
  stackTrace(): ConsoleMessageLocation[];
31
55
  }
@@ -25,24 +25,51 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
25
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
26
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
27
27
  };
28
- var _ConsoleMessage_stackTraceLocations;
28
+ var _ConsoleMessage_type, _ConsoleMessage_text, _ConsoleMessage_args, _ConsoleMessage_stackTraceLocations;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.ConsoleMessage = void 0;
31
31
  class ConsoleMessage {
32
32
  constructor(type, text, args, stackTraceLocations) {
33
+ _ConsoleMessage_type.set(this, void 0);
34
+ _ConsoleMessage_text.set(this, void 0);
35
+ _ConsoleMessage_args.set(this, void 0);
33
36
  _ConsoleMessage_stackTraceLocations.set(this, void 0);
34
- this.type = type;
35
- this.text = text;
36
- this.args = args;
37
+ __classPrivateFieldSet(this, _ConsoleMessage_type, type, "f");
38
+ __classPrivateFieldSet(this, _ConsoleMessage_text, text, "f");
39
+ __classPrivateFieldSet(this, _ConsoleMessage_args, args, "f");
37
40
  __classPrivateFieldSet(this, _ConsoleMessage_stackTraceLocations, stackTraceLocations, "f");
38
41
  }
42
+ /**
43
+ * @returns The type of the console message.
44
+ */
45
+ type() {
46
+ return __classPrivateFieldGet(this, _ConsoleMessage_type, "f");
47
+ }
48
+ /**
49
+ * @returns The text of the console message.
50
+ */
51
+ text() {
52
+ return __classPrivateFieldGet(this, _ConsoleMessage_text, "f");
53
+ }
54
+ /**
55
+ * @returns An array of arguments passed to the console.
56
+ */
57
+ args() {
58
+ return __classPrivateFieldGet(this, _ConsoleMessage_args, "f");
59
+ }
60
+ /**
61
+ * @returns The location of the console message.
62
+ */
39
63
  location() {
40
64
  var _a;
41
65
  return (_a = __classPrivateFieldGet(this, _ConsoleMessage_stackTraceLocations, "f")[0]) !== null && _a !== void 0 ? _a : {};
42
66
  }
67
+ /**
68
+ * @returns The array of locations on the stack of the console message.
69
+ */
43
70
  stackTrace() {
44
71
  return __classPrivateFieldGet(this, _ConsoleMessage_stackTraceLocations, "f");
45
72
  }
46
73
  }
47
74
  exports.ConsoleMessage = ConsoleMessage;
48
- _ConsoleMessage_stackTraceLocations = new WeakMap();
75
+ _ConsoleMessage_type = new WeakMap(), _ConsoleMessage_text = new WeakMap(), _ConsoleMessage_args = new WeakMap(), _ConsoleMessage_stackTraceLocations = new WeakMap();
@@ -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
+ }