@remotion/renderer 3.0.28 → 3.0.31

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 (278) hide show
  1. package/dist/abort.d.ts +7 -0
  2. package/dist/abort.js +20 -0
  3. package/dist/assets/download-and-map-assets-to-file.js +6 -3
  4. package/dist/browser/Browser.d.ts +1 -1
  5. package/dist/browser/{page.d.ts → BrowserPage.d.ts} +0 -0
  6. package/dist/browser/{page.js → BrowserPage.js} +0 -0
  7. package/dist/browser/FrameManager.d.ts +1 -1
  8. package/dist/browser/Page.d.ts +74 -0
  9. package/dist/browser/Page.js +283 -0
  10. package/dist/browser/Target.d.ts +1 -1
  11. package/dist/browser/Target.js +2 -2
  12. package/dist/browser/ws.d.ts +287 -0
  13. package/dist/browser/ws.js +21 -0
  14. package/dist/cancel.d.ts +7 -0
  15. package/dist/cancel.js +25 -0
  16. package/dist/codec-supports-media.d.ts +7 -0
  17. package/dist/codec-supports-media.js +49 -0
  18. package/dist/ensure-faststart.d.ts +1 -0
  19. package/dist/ensure-faststart.js +14 -0
  20. package/dist/ensure-presentation-timestamp.js +20 -9
  21. package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
  22. package/dist/extract-frame-from-video.d.ts +1 -0
  23. package/dist/faststart/atom.d.ts +35 -0
  24. package/dist/faststart/atom.js +138 -0
  25. package/dist/faststart/index.d.ts +0 -0
  26. package/dist/faststart/index.js +1 -0
  27. package/dist/faststart/options.d.ts +6 -0
  28. package/dist/faststart/options.js +2 -0
  29. package/dist/faststart/qt-faststart.d.ts +18 -0
  30. package/dist/faststart/qt-faststart.js +66 -0
  31. package/dist/faststart/update-chunk-offsets.d.ts +10 -0
  32. package/dist/faststart/update-chunk-offsets.js +114 -0
  33. package/dist/faststart/util.d.ts +9 -0
  34. package/dist/faststart/util.js +34 -0
  35. package/dist/get-browser-instance.d.ts +1 -1
  36. package/dist/get-extension-from-codec.d.ts +1 -1
  37. package/dist/guess-extension-for-media.d.ts +1 -0
  38. package/dist/guess-extension-for-media.js +27 -0
  39. package/dist/index.d.ts +2 -1
  40. package/dist/index.js +2 -0
  41. package/dist/last-frame-from-video-cache.d.ts +1 -0
  42. package/dist/offthread/index.d.ts +0 -0
  43. package/dist/offthread/index.js +1 -0
  44. package/dist/provide-screenshot.d.ts +2 -1
  45. package/dist/puppeteer-evaluate.d.ts +1 -1
  46. package/dist/puppeteer-screenshot.d.ts +2 -1
  47. package/dist/render-gif.d.ts +2 -0
  48. package/dist/render-gif.js +242 -0
  49. package/dist/render-media.d.ts +1 -0
  50. package/dist/screenshot-dom-element.d.ts +2 -1
  51. package/dist/screenshot-task.d.ts +2 -1
  52. package/dist/seek-to-frame.d.ts +1 -1
  53. package/dist/set-props-and-env.d.ts +1 -1
  54. package/dist/should-use-vp9-decoder.d.ts +0 -0
  55. package/dist/should-use-vp9-decoder.js +1 -0
  56. package/dist/stitch-frames-to-gif.d.ts +8 -0
  57. package/dist/stitch-frames-to-gif.js +128 -0
  58. package/dist/validate-concurrency.d.ts +1 -0
  59. package/dist/validate-concurrency.js +24 -0
  60. package/dist/validate-offthreadvideo-image-format.d.ts +1 -0
  61. package/dist/validate-offthreadvideo-image-format.js +15 -0
  62. package/dist/ws/buffer-util.d.ts +10 -0
  63. package/dist/ws/buffer-util.js +123 -0
  64. package/dist/ws/constants.d.ts +10 -0
  65. package/dist/ws/constants.js +13 -0
  66. package/dist/ws/event-target.d.ts +155 -0
  67. package/dist/ws/event-target.js +203 -0
  68. package/dist/ws/extension.d.ts +16 -0
  69. package/dist/ws/extension.js +232 -0
  70. package/dist/ws/limiter.d.ts +34 -0
  71. package/dist/ws/limiter.js +41 -0
  72. package/dist/ws/permessage_deflate.d.ts +152 -0
  73. package/dist/ws/permessage_deflate.js +409 -0
  74. package/package.json +3 -3
  75. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  76. package/dist/assets/calculate-asset-positions.js.map +0 -1
  77. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  78. package/dist/assets/calculate-atempo.js.map +0 -1
  79. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  80. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  81. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  82. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  83. package/dist/assets/download-file.d.ts.map +0 -1
  84. package/dist/assets/download-file.js.map +0 -1
  85. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  86. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  87. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  88. package/dist/assets/flatten-volume-array.js.map +0 -1
  89. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  90. package/dist/assets/get-audio-channels.js.map +0 -1
  91. package/dist/assets/read-file.d.ts.map +0 -1
  92. package/dist/assets/read-file.js.map +0 -1
  93. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  94. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  95. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  96. package/dist/assets/sanitize-filename.js.map +0 -1
  97. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  98. package/dist/assets/sanitize-filepath.js.map +0 -1
  99. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  100. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  101. package/dist/assets/types.d.ts.map +0 -1
  102. package/dist/assets/types.js.map +0 -1
  103. package/dist/browser/Accessibility.d.ts +0 -175
  104. package/dist/browser/Accessibility.js +0 -423
  105. package/dist/browser/AriaQueryHandler.d.ts +0 -20
  106. package/dist/browser/AriaQueryHandler.js +0 -108
  107. package/dist/browser/Coverage.d.ts +0 -180
  108. package/dist/browser/Coverage.js +0 -371
  109. package/dist/browser/Debug.d.ts +0 -19
  110. package/dist/browser/Debug.js +0 -42
  111. package/dist/browser/DeviceDescriptors.d.ts +0 -40
  112. package/dist/browser/DeviceDescriptors.js +0 -1407
  113. package/dist/browser/FileChooser.d.ts +0 -56
  114. package/dist/browser/FileChooser.js +0 -86
  115. package/dist/browser/Input.d.ts +0 -355
  116. package/dist/browser/Input.js +0 -592
  117. package/dist/browser/NetworkConditions.d.ts +0 -26
  118. package/dist/browser/NetworkConditions.js +0 -33
  119. package/dist/browser/PDFOptions.d.ts +0 -165
  120. package/dist/browser/PDFOptions.js +0 -34
  121. package/dist/browser/PipeTransport.d.ts +0 -10
  122. package/dist/browser/PipeTransport.js +0 -86
  123. package/dist/browser/Puppeteer.d.ts +0 -35
  124. package/dist/browser/Puppeteer.js +0 -17
  125. package/dist/browser/QueryHandler.d.ts +0 -64
  126. package/dist/browser/QueryHandler.js +0 -183
  127. package/dist/browser/SecurityDetails.d.ts +0 -55
  128. package/dist/browser/SecurityDetails.js +0 -95
  129. package/dist/browser/Tracing.d.ts +0 -45
  130. package/dist/browser/Tracing.js +0 -136
  131. package/dist/browser/USKeyboardLayout.d.ts +0 -39
  132. package/dist/browser/USKeyboardLayout.js +0 -406
  133. package/dist/browser/WebWorker.d.ts +0 -96
  134. package/dist/browser/WebWorker.js +0 -122
  135. package/dist/browser/dialog.d.ts +0 -70
  136. package/dist/browser/dialog.js +0 -114
  137. package/dist/browser/fetch.d.ts +0 -16
  138. package/dist/browser/fetch.js +0 -46
  139. package/dist/browser/find-up.d.ts +0 -4
  140. package/dist/browser/find-up.js +0 -85
  141. package/dist/browser/pkg-dir.d.ts +0 -3
  142. package/dist/browser/pkg-dir.js +0 -13
  143. package/dist/browser-log.d.ts.map +0 -1
  144. package/dist/browser-log.js.map +0 -1
  145. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  146. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  147. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  148. package/dist/can-use-parallel-encoding.js.map +0 -1
  149. package/dist/chunk.d.ts.map +0 -1
  150. package/dist/chunk.js.map +0 -1
  151. package/dist/combine-videos.d.ts.map +0 -1
  152. package/dist/combine-videos.js.map +0 -1
  153. package/dist/convert-to-pcm.d.ts.map +0 -1
  154. package/dist/convert-to-pcm.js.map +0 -1
  155. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  156. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  157. package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
  158. package/dist/create-ffmpeg-merge-filter.js.map +0 -1
  159. package/dist/create-silent-audio.d.ts.map +0 -1
  160. package/dist/create-silent-audio.js.map +0 -1
  161. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  162. package/dist/cycle-browser-tabs.js.map +0 -1
  163. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  164. package/dist/delay-render-embedded-stack.js.map +0 -1
  165. package/dist/delete-directory.d.ts.map +0 -1
  166. package/dist/delete-directory.js.map +0 -1
  167. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  168. package/dist/ensure-frames-in-order.js.map +0 -1
  169. package/dist/ensure-output-directory.d.ts.map +0 -1
  170. package/dist/ensure-output-directory.js.map +0 -1
  171. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  172. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  173. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  174. package/dist/error-handling/symbolicate-error.js.map +0 -1
  175. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  176. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  177. package/dist/ffmpeg-filter-file.d.ts.map +0 -1
  178. package/dist/ffmpeg-filter-file.js.map +0 -1
  179. package/dist/ffmpeg-flags.d.ts.map +0 -1
  180. package/dist/ffmpeg-flags.js.map +0 -1
  181. package/dist/get-audio-codec-name.d.ts.map +0 -1
  182. package/dist/get-audio-codec-name.js.map +0 -1
  183. package/dist/get-browser-instance.d.ts.map +0 -1
  184. package/dist/get-browser-instance.js.map +0 -1
  185. package/dist/get-codec-name.d.ts.map +0 -1
  186. package/dist/get-codec-name.js.map +0 -1
  187. package/dist/get-compositions.d.ts.map +0 -1
  188. package/dist/get-compositions.js.map +0 -1
  189. package/dist/get-concurrency.d.ts.map +0 -1
  190. package/dist/get-concurrency.js.map +0 -1
  191. package/dist/get-duration-from-frame-range.d.ts.map +0 -1
  192. package/dist/get-duration-from-frame-range.js.map +0 -1
  193. package/dist/get-extension-from-codec.d.ts.map +0 -1
  194. package/dist/get-extension-from-codec.js.map +0 -1
  195. package/dist/get-format-for-codec.d.ts +0 -2
  196. package/dist/get-format-for-codec.js +0 -34
  197. package/dist/get-frame-to-render.d.ts.map +0 -1
  198. package/dist/get-frame-to-render.js.map +0 -1
  199. package/dist/get-local-browser-executable.d.ts.map +0 -1
  200. package/dist/get-local-browser-executable.js.map +0 -1
  201. package/dist/get-port.d.ts.map +0 -1
  202. package/dist/get-port.js.map +0 -1
  203. package/dist/get-prores-profile-name.d.ts.map +0 -1
  204. package/dist/get-prores-profile-name.js.map +0 -1
  205. package/dist/image-format.d.ts.map +0 -1
  206. package/dist/image-format.js.map +0 -1
  207. package/dist/index.d.ts.map +0 -1
  208. package/dist/index.js.map +0 -1
  209. package/dist/is-serve-url.d.ts.map +0 -1
  210. package/dist/is-serve-url.js.map +0 -1
  211. package/dist/legacy-webpack-config.d.ts.map +0 -1
  212. package/dist/legacy-webpack-config.js.map +0 -1
  213. package/dist/make-assets-download-dir.d.ts.map +0 -1
  214. package/dist/make-assets-download-dir.js.map +0 -1
  215. package/dist/merge-audio-track.d.ts.map +0 -1
  216. package/dist/merge-audio-track.js.map +0 -1
  217. package/dist/normalize-serve-url.d.ts.map +0 -1
  218. package/dist/normalize-serve-url.js.map +0 -1
  219. package/dist/open-browser.d.ts.map +0 -1
  220. package/dist/open-browser.js.map +0 -1
  221. package/dist/p-limit.d.ts.map +0 -1
  222. package/dist/p-limit.js.map +0 -1
  223. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  224. package/dist/parse-browser-error-stack.js.map +0 -1
  225. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  226. package/dist/parse-ffmpeg-progress.js.map +0 -1
  227. package/dist/pool.d.ts.map +0 -1
  228. package/dist/pool.js.map +0 -1
  229. package/dist/prepare-server.d.ts.map +0 -1
  230. package/dist/prepare-server.js.map +0 -1
  231. package/dist/preprocess-audio-track.d.ts.map +0 -1
  232. package/dist/preprocess-audio-track.js.map +0 -1
  233. package/dist/prespawn-ffmpeg.d.ts.map +0 -1
  234. package/dist/prespawn-ffmpeg.js.map +0 -1
  235. package/dist/provide-screenshot.d.ts.map +0 -1
  236. package/dist/provide-screenshot.js.map +0 -1
  237. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  238. package/dist/puppeteer-evaluate.js.map +0 -1
  239. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  240. package/dist/puppeteer-screenshot.js.map +0 -1
  241. package/dist/render-frames.d.ts.map +0 -1
  242. package/dist/render-frames.js.map +0 -1
  243. package/dist/render-media.d.ts.map +0 -1
  244. package/dist/render-media.js.map +0 -1
  245. package/dist/render-still.d.ts.map +0 -1
  246. package/dist/render-still.js.map +0 -1
  247. package/dist/resolve-asset-src.d.ts.map +0 -1
  248. package/dist/resolve-asset-src.js.map +0 -1
  249. package/dist/sample-rate.d.ts.map +0 -1
  250. package/dist/sample-rate.js.map +0 -1
  251. package/dist/screenshot-dom-element.d.ts.map +0 -1
  252. package/dist/screenshot-dom-element.js.map +0 -1
  253. package/dist/screenshot-task.d.ts.map +0 -1
  254. package/dist/screenshot-task.js.map +0 -1
  255. package/dist/seek-to-frame.d.ts.map +0 -1
  256. package/dist/seek-to-frame.js.map +0 -1
  257. package/dist/serve-static.d.ts.map +0 -1
  258. package/dist/serve-static.js.map +0 -1
  259. package/dist/set-props-and-env.d.ts.map +0 -1
  260. package/dist/set-props-and-env.js.map +0 -1
  261. package/dist/stitch-frames-to-video.d.ts.map +0 -1
  262. package/dist/stitch-frames-to-video.js.map +0 -1
  263. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  264. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  265. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  266. package/dist/symbolicate-stacktrace.js.map +0 -1
  267. package/dist/tmp-dir.d.ts.map +0 -1
  268. package/dist/tmp-dir.js.map +0 -1
  269. package/dist/types.d.ts.map +0 -1
  270. package/dist/types.js.map +0 -1
  271. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  272. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  273. package/dist/validate-ffmpeg.d.ts.map +0 -1
  274. package/dist/validate-ffmpeg.js.map +0 -1
  275. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  276. package/dist/validate-puppeteer-timeout.js.map +0 -1
  277. package/dist/validate-scale.d.ts.map +0 -1
  278. package/dist/validate-scale.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ declare type Callback = () => void;
2
+ export declare type CancelSignal = (callback: Callback) => void;
3
+ export declare const getCancelSignal: () => {
4
+ cancelSignal: CancelSignal;
5
+ cancel: () => void;
6
+ };
7
+ export {};
package/dist/abort.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCancelSignal = void 0;
4
+ const getCancelSignal = () => {
5
+ const callbacks = [];
6
+ let cancelled = false;
7
+ return {
8
+ cancelSignal: (callback) => callbacks.push(callback),
9
+ cancel: () => {
10
+ if (cancelled) {
11
+ return;
12
+ }
13
+ callbacks.forEach((cb) => {
14
+ cb();
15
+ });
16
+ cancelled = true;
17
+ },
18
+ };
19
+ };
20
+ exports.getCancelSignal = getCancelSignal;
@@ -26,8 +26,11 @@ const waitForAssetToBeDownloaded = ({ src, downloadDir, }) => {
26
26
  }
27
27
  return new Promise((resolve) => {
28
28
  listeners[src][downloadDir].push(() => {
29
- var _a;
30
- resolve((_a = hasBeenDownloadedMap[src]) === null || _a === void 0 ? void 0 : _a[downloadDir]);
29
+ const srcMap = hasBeenDownloadedMap[src];
30
+ if (!srcMap || !srcMap[downloadDir]) {
31
+ throw new Error('Expected file for ' + src + 'to be available in ' + downloadDir);
32
+ }
33
+ resolve(srcMap[downloadDir]);
31
34
  });
32
35
  });
33
36
  };
@@ -38,7 +41,6 @@ const notifyAssetIsDownloaded = ({ src, downloadDir, to, }) => {
38
41
  if (!listeners[src][downloadDir]) {
39
42
  listeners[src][downloadDir] = [];
40
43
  }
41
- listeners[src][downloadDir].forEach((fn) => fn());
42
44
  if (!isDownloadingMap[src]) {
43
45
  isDownloadingMap[src] = {};
44
46
  }
@@ -47,6 +49,7 @@ const notifyAssetIsDownloaded = ({ src, downloadDir, to, }) => {
47
49
  hasBeenDownloadedMap[src] = {};
48
50
  }
49
51
  hasBeenDownloadedMap[src][downloadDir] = to;
52
+ listeners[src][downloadDir].forEach((fn) => fn());
50
53
  };
51
54
  const validateMimeType = (mimeType, src) => {
52
55
  if (!mimeType.includes('/')) {
@@ -13,9 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import type { Page } from './BrowserPage';
16
17
  import type { Connection } from './Connection';
17
18
  import { EventEmitter } from './EventEmitter';
18
- import type { Page } from './Page';
19
19
  import type { Viewport } from './PuppeteerViewport';
20
20
  import { Target } from './Target';
21
21
  declare type BrowserCloseCallback = () => Promise<void> | void;
File without changes
File without changes
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { Browser } from './Browser';
17
+ import type { Page } from './BrowserPage';
17
18
  import type { CDPSession } from './Connection';
18
19
  import type { Frame as TFrame } from './devtools-types';
19
20
  import { DOMWorld } from './DOMWorld';
@@ -24,7 +25,6 @@ import type { HTTPResponse } from './HTTPResponse';
24
25
  import type { JSHandle } from './JSHandle';
25
26
  import type { PuppeteerLifeCycleEvent } from './LifecycleWatcher';
26
27
  import { NetworkManager } from './NetworkManager';
27
- import type { Page } from './Page';
28
28
  import type { TimeoutSettings } from './TimeoutSettings';
29
29
  export declare const FrameManagerEmittedEvents: {
30
30
  FrameNavigated: symbol;
@@ -0,0 +1,74 @@
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 type { Browser } from './Browser';
17
+ import type { CDPSession } from './Connection';
18
+ import { ConsoleMessage } from './ConsoleMessage';
19
+ import type { EvaluateFn, EvaluateFnReturnType, EvaluateHandleFn, SerializableOrJSHandle, UnwrapPromiseLike } from './EvalTypes';
20
+ import { EventEmitter } from './EventEmitter';
21
+ import type { Frame } from './FrameManager';
22
+ import type { HTTPResponse } from './HTTPResponse';
23
+ import type { JSHandle } from './JSHandle';
24
+ import type { Viewport } from './PuppeteerViewport';
25
+ import type { Target } from './Target';
26
+ import { TaskQueue } from './TaskQueue';
27
+ interface WaitForOptions {
28
+ timeout?: number;
29
+ }
30
+ interface PageEventObject {
31
+ console: ConsoleMessage;
32
+ error: Error;
33
+ }
34
+ export declare class Page extends EventEmitter {
35
+ #private;
36
+ static _create(client: CDPSession, target: Target, defaultViewport: Viewport, browser: Browser): Promise<Page>;
37
+ browser: Browser;
38
+ screenshotTaskQueue: TaskQueue;
39
+ constructor(client: CDPSession, target: Target, browser: Browser);
40
+ /**
41
+ * Listen to page events.
42
+ */
43
+ on<K extends keyof PageEventObject>(eventName: K, handler: (event: PageEventObject[K]) => void): EventEmitter;
44
+ once<K extends keyof PageEventObject>(eventName: K, handler: (event: PageEventObject[K]) => void): EventEmitter;
45
+ off<K extends keyof PageEventObject>(eventName: K, handler: (event: PageEventObject[K]) => void): EventEmitter;
46
+ /**
47
+ * @returns A target this page was created from.
48
+ */
49
+ target(): Target;
50
+ _client(): CDPSession;
51
+ /**
52
+ * @returns The page's main frame.
53
+ * @remarks
54
+ * Page is guaranteed to have a main frame which persists during navigations.
55
+ */
56
+ mainFrame(): Frame;
57
+ setViewport(viewport: Viewport): Promise<void>;
58
+ setDefaultNavigationTimeout(timeout: number): void;
59
+ setDefaultTimeout(timeout: number): void;
60
+ evaluateHandle<HandlerType extends JSHandle = JSHandle>(pageFunction: EvaluateHandleFn, ...args: SerializableOrJSHandle[]): Promise<HandlerType>;
61
+ url(): string;
62
+ goto(url: string, options?: WaitForOptions & {
63
+ referer?: string;
64
+ }): Promise<HTTPResponse | null>;
65
+ bringToFront(): Promise<void>;
66
+ evaluate<T extends EvaluateFn>(pageFunction: T, ...args: SerializableOrJSHandle[]): Promise<UnwrapPromiseLike<EvaluateFnReturnType<T>>>;
67
+ evaluateOnNewDocument(pageFunction: Function | string, ...args: unknown[]): Promise<void>;
68
+ close(options?: {
69
+ runBeforeUnload?: boolean;
70
+ }): Promise<void>;
71
+ isClosed(): boolean;
72
+ waitForFunction(browser: Browser, pageFunction: Function | string, ...args: SerializableOrJSHandle[]): Promise<JSHandle>;
73
+ }
74
+ export {};
@@ -0,0 +1,283 @@
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 _Page_instances, _Page_closed, _Page_client, _Page_target, _Page_timeoutSettings, _Page_frameManager, _Page_pageBindings, _Page_initialize, _Page_onTargetCrashed, _Page_onLogEntryAdded, _Page_onConsoleAPI, _Page_onBindingCalled, _Page_addConsoleMessage;
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.Page = void 0;
31
+ const assert_1 = require("./assert");
32
+ const ConsoleMessage_1 = require("./ConsoleMessage");
33
+ const EventEmitter_1 = require("./EventEmitter");
34
+ const FrameManager_1 = require("./FrameManager");
35
+ const JSHandle_1 = require("./JSHandle");
36
+ const TaskQueue_1 = require("./TaskQueue");
37
+ const TimeoutSettings_1 = require("./TimeoutSettings");
38
+ const util_1 = require("./util");
39
+ class Page extends EventEmitter_1.EventEmitter {
40
+ constructor(client, target, browser) {
41
+ super();
42
+ _Page_instances.add(this);
43
+ _Page_closed.set(this, false);
44
+ _Page_client.set(this, void 0);
45
+ _Page_target.set(this, void 0);
46
+ _Page_timeoutSettings.set(this, new TimeoutSettings_1.TimeoutSettings());
47
+ _Page_frameManager.set(this, void 0);
48
+ _Page_pageBindings.set(this, new Map());
49
+ __classPrivateFieldSet(this, _Page_client, client, "f");
50
+ __classPrivateFieldSet(this, _Page_target, target, "f");
51
+ __classPrivateFieldSet(this, _Page_frameManager, new FrameManager_1.FrameManager(client, this, __classPrivateFieldGet(this, _Page_timeoutSettings, "f")), "f");
52
+ this.screenshotTaskQueue = new TaskQueue_1.TaskQueue();
53
+ this.browser = browser;
54
+ client.on('Target.attachedToTarget', (event) => {
55
+ switch (event.targetInfo.type) {
56
+ case 'iframe':
57
+ break;
58
+ case 'worker':
59
+ break;
60
+ default:
61
+ // If we don't detach from service workers, they will never die.
62
+ // We still want to attach to workers for emitting events.
63
+ // We still want to attach to iframes so sessions may interact with them.
64
+ // We detach from all other types out of an abundance of caution.
65
+ // See https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypePage%5B%5D%22
66
+ // for the complete list of available types.
67
+ client
68
+ .send('Target.detachFromTarget', {
69
+ sessionId: event.sessionId,
70
+ })
71
+ .catch((err) => console.log(err));
72
+ }
73
+ });
74
+ client.on('Runtime.consoleAPICalled', (event) => {
75
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onConsoleAPI).call(this, event);
76
+ });
77
+ client.on('Runtime.bindingCalled', (event) => {
78
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onBindingCalled).call(this, event);
79
+ });
80
+ client.on('Inspector.targetCrashed', () => {
81
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onTargetCrashed).call(this);
82
+ });
83
+ client.on('Log.entryAdded', (event) => {
84
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onLogEntryAdded).call(this, event);
85
+ });
86
+ }
87
+ static async _create(client, target, defaultViewport, browser) {
88
+ const page = new Page(client, target, browser);
89
+ await __classPrivateFieldGet(page, _Page_instances, "m", _Page_initialize).call(page);
90
+ await page.setViewport(defaultViewport);
91
+ return page;
92
+ }
93
+ /**
94
+ * Listen to page events.
95
+ */
96
+ // Note: this method exists to define event typings and handle
97
+ // proper wireup of cooperative request interception. Actual event listening and
98
+ // dispatching is delegated to EventEmitter.
99
+ on(eventName, handler) {
100
+ return super.on(eventName, handler);
101
+ }
102
+ once(eventName, handler) {
103
+ // Note: this method only exists to define the types; we delegate the impl
104
+ // to EventEmitter.
105
+ return super.once(eventName, handler);
106
+ }
107
+ off(eventName, handler) {
108
+ return super.off(eventName, handler);
109
+ }
110
+ /**
111
+ * @returns A target this page was created from.
112
+ */
113
+ target() {
114
+ return __classPrivateFieldGet(this, _Page_target, "f");
115
+ }
116
+ _client() {
117
+ return __classPrivateFieldGet(this, _Page_client, "f");
118
+ }
119
+ /**
120
+ * @returns The page's main frame.
121
+ * @remarks
122
+ * Page is guaranteed to have a main frame which persists during navigations.
123
+ */
124
+ mainFrame() {
125
+ return __classPrivateFieldGet(this, _Page_frameManager, "f").mainFrame();
126
+ }
127
+ setViewport(viewport) {
128
+ return __classPrivateFieldGet(this, _Page_client, "f").send('Emulation.setDeviceMetricsOverride', {
129
+ mobile: false,
130
+ width: viewport.width,
131
+ height: viewport.height,
132
+ deviceScaleFactor: viewport.deviceScaleFactor,
133
+ screenOrientation: {
134
+ angle: 0,
135
+ type: 'portraitPrimary',
136
+ },
137
+ });
138
+ }
139
+ setDefaultNavigationTimeout(timeout) {
140
+ __classPrivateFieldGet(this, _Page_timeoutSettings, "f").setDefaultNavigationTimeout(timeout);
141
+ }
142
+ setDefaultTimeout(timeout) {
143
+ __classPrivateFieldGet(this, _Page_timeoutSettings, "f").setDefaultTimeout(timeout);
144
+ }
145
+ async evaluateHandle(pageFunction, ...args) {
146
+ const context = await this.mainFrame().executionContext();
147
+ return context.evaluateHandle(pageFunction, ...args);
148
+ }
149
+ url() {
150
+ return this.mainFrame().url();
151
+ }
152
+ goto(url, options = {}) {
153
+ return __classPrivateFieldGet(this, _Page_frameManager, "f").mainFrame().goto(url, options);
154
+ }
155
+ async bringToFront() {
156
+ await __classPrivateFieldGet(this, _Page_client, "f").send('Page.bringToFront');
157
+ }
158
+ evaluate(pageFunction, ...args) {
159
+ return __classPrivateFieldGet(this, _Page_frameManager, "f").mainFrame().evaluate(pageFunction, ...args);
160
+ }
161
+ async evaluateOnNewDocument(pageFunction, ...args) {
162
+ const source = (0, util_1.evaluationString)(pageFunction, ...args);
163
+ await __classPrivateFieldGet(this, _Page_client, "f").send('Page.addScriptToEvaluateOnNewDocument', {
164
+ source,
165
+ });
166
+ }
167
+ async close(options = { runBeforeUnload: undefined }) {
168
+ const connection = __classPrivateFieldGet(this, _Page_client, "f").connection();
169
+ (0, assert_1.assert)(connection, 'Protocol error: Connection closed. Most likely the page has been closed.');
170
+ const runBeforeUnload = Boolean(options.runBeforeUnload);
171
+ if (runBeforeUnload) {
172
+ await __classPrivateFieldGet(this, _Page_client, "f").send('Page.close');
173
+ }
174
+ else {
175
+ await connection.send('Target.closeTarget', {
176
+ targetId: __classPrivateFieldGet(this, _Page_target, "f")._targetId,
177
+ });
178
+ await __classPrivateFieldGet(this, _Page_target, "f")._isClosedPromise;
179
+ }
180
+ }
181
+ isClosed() {
182
+ return __classPrivateFieldGet(this, _Page_closed, "f");
183
+ }
184
+ waitForFunction(browser, pageFunction, ...args) {
185
+ return this.mainFrame().waitForFunction(browser, pageFunction, ...args);
186
+ }
187
+ }
188
+ exports.Page = Page;
189
+ _Page_closed = new WeakMap(), _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSettings = new WeakMap(), _Page_frameManager = new WeakMap(), _Page_pageBindings = new WeakMap(), _Page_instances = new WeakSet(), _Page_initialize = async function _Page_initialize() {
190
+ await Promise.all([
191
+ __classPrivateFieldGet(this, _Page_frameManager, "f").initialize(),
192
+ __classPrivateFieldGet(this, _Page_client, "f").send('Target.setAutoAttach', {
193
+ autoAttach: true,
194
+ waitForDebuggerOnStart: false,
195
+ flatten: true,
196
+ }),
197
+ __classPrivateFieldGet(this, _Page_client, "f").send('Performance.enable'),
198
+ __classPrivateFieldGet(this, _Page_client, "f").send('Log.enable'),
199
+ ]);
200
+ }, _Page_onTargetCrashed = function _Page_onTargetCrashed() {
201
+ this.emit('error', new Error('Page crashed!'));
202
+ }, _Page_onLogEntryAdded = function _Page_onLogEntryAdded(event) {
203
+ const { level, text, args, source, url, lineNumber } = event.entry;
204
+ if (args) {
205
+ args.map((arg) => {
206
+ return (0, util_1.releaseObject)(__classPrivateFieldGet(this, _Page_client, "f"), arg);
207
+ });
208
+ }
209
+ if (source !== 'worker') {
210
+ this.emit("console" /* PageEmittedEvents.Console */, new ConsoleMessage_1.ConsoleMessage(level, text, [], [{ url, lineNumber }]));
211
+ }
212
+ }, _Page_onConsoleAPI = function _Page_onConsoleAPI(event) {
213
+ if (event.executionContextId === 0) {
214
+ return;
215
+ }
216
+ const context = __classPrivateFieldGet(this, _Page_frameManager, "f").executionContextById(event.executionContextId, __classPrivateFieldGet(this, _Page_client, "f"));
217
+ const values = event.args.map((arg) => {
218
+ return (0, JSHandle_1._createJSHandle)(context, arg);
219
+ });
220
+ __classPrivateFieldGet(this, _Page_instances, "m", _Page_addConsoleMessage).call(this, event.type, values, event.stackTrace);
221
+ }, _Page_onBindingCalled = async function _Page_onBindingCalled(event) {
222
+ let payload;
223
+ try {
224
+ payload = JSON.parse(event.payload);
225
+ }
226
+ catch (_a) {
227
+ // The binding was either called by something in the page or it was
228
+ // called before our wrapper was initialized.
229
+ return;
230
+ }
231
+ const { type, name, seq, args } = payload;
232
+ if (type !== 'exposedFun' || !__classPrivateFieldGet(this, _Page_pageBindings, "f").has(name)) {
233
+ return;
234
+ }
235
+ let expression = null;
236
+ try {
237
+ const pageBinding = __classPrivateFieldGet(this, _Page_pageBindings, "f").get(name);
238
+ (0, assert_1.assert)(pageBinding);
239
+ const result = await pageBinding(...args);
240
+ expression = (0, util_1.pageBindingDeliverResultString)(name, seq, result);
241
+ }
242
+ catch (_error) {
243
+ if ((0, util_1.isErrorLike)(_error)) {
244
+ expression = (0, util_1.pageBindingDeliverErrorString)(name, seq, _error.message, _error.stack);
245
+ }
246
+ else {
247
+ expression = (0, util_1.pageBindingDeliverErrorValueString)(name, seq, _error);
248
+ }
249
+ }
250
+ __classPrivateFieldGet(this, _Page_client, "f").send('Runtime.evaluate', {
251
+ expression,
252
+ contextId: event.executionContextId,
253
+ });
254
+ }, _Page_addConsoleMessage = function _Page_addConsoleMessage(eventType, args, stackTrace) {
255
+ if (!this.listenerCount("console" /* PageEmittedEvents.Console */)) {
256
+ args.forEach((arg) => {
257
+ return arg.dispose();
258
+ });
259
+ return;
260
+ }
261
+ const textTokens = [];
262
+ for (const arg of args) {
263
+ const remoteObject = arg._remoteObject;
264
+ if (remoteObject.objectId) {
265
+ textTokens.push(arg.toString());
266
+ }
267
+ else {
268
+ textTokens.push((0, util_1.valueFromRemoteObject)(remoteObject));
269
+ }
270
+ }
271
+ const stackTraceLocations = [];
272
+ if (stackTrace) {
273
+ for (const callFrame of stackTrace.callFrames) {
274
+ stackTraceLocations.push({
275
+ url: callFrame.url,
276
+ lineNumber: callFrame.lineNumber,
277
+ columnNumber: callFrame.columnNumber,
278
+ });
279
+ }
280
+ }
281
+ const message = new ConsoleMessage_1.ConsoleMessage(eventType, textTokens.join(' '), args, stackTraceLocations);
282
+ this.emit("console" /* PageEmittedEvents.Console */, message);
283
+ };
@@ -14,9 +14,9 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { Browser, BrowserContext } from './Browser';
17
+ import { Page } from './BrowserPage';
17
18
  import type { CDPSession } from './Connection';
18
19
  import type { TargetInfo } from './devtools-types';
19
- import { Page } from './Page';
20
20
  import type { Viewport } from './PuppeteerViewport';
21
21
  export declare class Target {
22
22
  #private;
@@ -28,7 +28,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
28
28
  var _Target_browserContext, _Target_targetInfo, _Target_sessionFactory, _Target_defaultViewport, _Target_pagePromise;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.Target = void 0;
31
- const Page_1 = require("./Page");
31
+ const BrowserPage_1 = require("./BrowserPage");
32
32
  const isPagetTarget = (target) => {
33
33
  return (target.type === 'page' ||
34
34
  target.type === 'background_page' ||
@@ -84,7 +84,7 @@ class Target {
84
84
  if (isPagetTarget(__classPrivateFieldGet(this, _Target_targetInfo, "f")) && !__classPrivateFieldGet(this, _Target_pagePromise, "f")) {
85
85
  __classPrivateFieldSet(this, _Target_pagePromise, __classPrivateFieldGet(this, _Target_sessionFactory, "f").call(this).then((client) => {
86
86
  var _a;
87
- return Page_1.Page._create(client, this, (_a = __classPrivateFieldGet(this, _Target_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null, this.browser());
87
+ return BrowserPage_1.Page._create(client, this, (_a = __classPrivateFieldGet(this, _Target_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null, this.browser());
88
88
  }), "f");
89
89
  }
90
90
  return (_a = (await __classPrivateFieldGet(this, _Target_pagePromise, "f"))) !== null && _a !== void 0 ? _a : null;