@remotion/renderer 3.0.20 → 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 (185) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts +2 -2
  2. package/dist/assets/convert-assets-to-file-urls.d.ts +2 -2
  3. package/dist/assets/download-and-map-assets-to-file.d.ts +1 -1
  4. package/dist/assets/ffmpeg-volume-expression.d.ts +1 -1
  5. package/dist/assets/flatten-volume-array.d.ts +1 -1
  6. package/dist/assets/get-audio-channels.d.ts +1 -2
  7. package/dist/assets/get-audio-channels.js +1 -2
  8. package/dist/assets/types.d.ts +1 -1
  9. package/dist/browser/Accessibility.d.ts +175 -0
  10. package/dist/browser/Accessibility.js +423 -0
  11. package/dist/browser/AriaQueryHandler.d.ts +20 -0
  12. package/dist/browser/AriaQueryHandler.js +108 -0
  13. package/dist/browser/Browser.d.ts +209 -0
  14. package/dist/browser/Browser.js +402 -0
  15. package/dist/browser/BrowserConnector.d.ts +26 -0
  16. package/dist/browser/BrowserConnector.js +49 -0
  17. package/dist/browser/BrowserFetcher.d.ts +89 -0
  18. package/dist/browser/BrowserFetcher.js +512 -0
  19. package/dist/browser/BrowserRunner.d.ts +39 -0
  20. package/dist/browser/BrowserRunner.js +308 -0
  21. package/dist/browser/Connection.d.ts +49 -0
  22. package/dist/browser/Connection.js +262 -0
  23. package/dist/browser/ConnectionTransport.d.ts +21 -0
  24. package/dist/browser/ConnectionTransport.js +17 -0
  25. package/dist/browser/ConsoleMessage.d.ts +55 -0
  26. package/dist/browser/ConsoleMessage.js +75 -0
  27. package/dist/browser/Coverage.d.ts +180 -0
  28. package/dist/browser/Coverage.js +371 -0
  29. package/dist/browser/DOMWorld.d.ts +50 -0
  30. package/dist/browser/DOMWorld.js +280 -0
  31. package/dist/browser/Debug.d.ts +19 -0
  32. package/dist/browser/Debug.js +42 -0
  33. package/dist/browser/DeviceDescriptors.d.ts +40 -0
  34. package/dist/browser/DeviceDescriptors.js +1407 -0
  35. package/dist/browser/EmulationManager.d.ts +7 -0
  36. package/dist/browser/EmulationManager.js +40 -0
  37. package/dist/browser/Errors.d.ts +25 -0
  38. package/dist/browser/Errors.js +35 -0
  39. package/dist/browser/EvalTypes.d.ts +27 -0
  40. package/dist/browser/EvalTypes.js +17 -0
  41. package/dist/browser/EventEmitter.d.ts +70 -0
  42. package/dist/browser/EventEmitter.js +102 -0
  43. package/dist/browser/ExecutionContext.d.ts +35 -0
  44. package/dist/browser/ExecutionContext.js +190 -0
  45. package/dist/browser/FileChooser.d.ts +56 -0
  46. package/dist/browser/FileChooser.js +86 -0
  47. package/dist/browser/FrameManager.d.ts +96 -0
  48. package/dist/browser/FrameManager.js +512 -0
  49. package/dist/browser/HTTPRequest.d.ts +42 -0
  50. package/dist/browser/HTTPRequest.js +82 -0
  51. package/dist/browser/HTTPResponse.d.ts +100 -0
  52. package/dist/browser/HTTPResponse.js +196 -0
  53. package/dist/browser/Input.d.ts +355 -0
  54. package/dist/browser/Input.js +592 -0
  55. package/dist/browser/JSHandle.d.ts +36 -0
  56. package/dist/browser/JSHandle.js +93 -0
  57. package/dist/browser/LaunchOptions.d.ts +117 -0
  58. package/dist/browser/LaunchOptions.js +17 -0
  59. package/dist/browser/Launcher.d.ts +9 -0
  60. package/dist/browser/Launcher.js +602 -0
  61. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  62. package/dist/browser/LifecycleWatcher.js +193 -0
  63. package/dist/browser/NetworkConditions.d.ts +26 -0
  64. package/dist/browser/NetworkConditions.js +33 -0
  65. package/dist/browser/NetworkEventManager.d.ts +35 -0
  66. package/dist/browser/NetworkEventManager.js +128 -0
  67. package/dist/browser/NetworkManager.d.ts +36 -0
  68. package/dist/browser/NetworkManager.js +284 -0
  69. package/dist/browser/NodeWebSocketTransport.d.ts +11 -0
  70. package/dist/browser/NodeWebSocketTransport.js +90 -0
  71. package/dist/browser/PDFOptions.d.ts +165 -0
  72. package/dist/browser/PDFOptions.js +34 -0
  73. package/dist/browser/PipeTransport.d.ts +10 -0
  74. package/dist/browser/PipeTransport.js +86 -0
  75. package/dist/browser/Product.d.ts +16 -0
  76. package/dist/browser/Product.js +17 -0
  77. package/dist/browser/Puppeteer.d.ts +35 -0
  78. package/dist/browser/Puppeteer.js +17 -0
  79. package/dist/browser/PuppeteerNode.d.ts +92 -0
  80. package/dist/browser/PuppeteerNode.js +143 -0
  81. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  82. package/dist/browser/PuppeteerViewport.js +2 -0
  83. package/dist/browser/QueryHandler.d.ts +64 -0
  84. package/dist/browser/QueryHandler.js +183 -0
  85. package/dist/browser/ScreenshotOptions.d.ts +14 -0
  86. package/dist/browser/ScreenshotOptions.js +2 -0
  87. package/dist/browser/SecurityDetails.d.ts +55 -0
  88. package/dist/browser/SecurityDetails.js +95 -0
  89. package/dist/browser/Target.d.ts +61 -0
  90. package/dist/browser/Target.js +146 -0
  91. package/dist/browser/TaskQueue.d.ts +20 -0
  92. package/dist/browser/TaskQueue.js +47 -0
  93. package/dist/browser/TimeoutSettings.d.ts +23 -0
  94. package/dist/browser/TimeoutSettings.js +62 -0
  95. package/dist/browser/Tracing.d.ts +45 -0
  96. package/dist/browser/Tracing.js +136 -0
  97. package/dist/browser/USKeyboardLayout.d.ts +39 -0
  98. package/dist/browser/USKeyboardLayout.js +406 -0
  99. package/dist/browser/WebWorker.d.ts +96 -0
  100. package/dist/browser/WebWorker.js +122 -0
  101. package/dist/browser/assert.d.ts +21 -0
  102. package/dist/browser/assert.js +29 -0
  103. package/dist/browser/compat.d.ts +2 -0
  104. package/dist/browser/compat.js +17 -0
  105. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  106. package/dist/browser/create-browser-fetcher.js +140 -0
  107. package/dist/browser/dialog.d.ts +70 -0
  108. package/dist/browser/dialog.js +114 -0
  109. package/dist/browser/environment.d.ts +16 -0
  110. package/dist/browser/environment.js +19 -0
  111. package/dist/browser/fetch.d.ts +16 -0
  112. package/dist/browser/fetch.js +46 -0
  113. package/dist/browser/find-up.d.ts +4 -0
  114. package/dist/browser/find-up.js +85 -0
  115. package/dist/browser/get-download-destination.d.ts +1 -0
  116. package/dist/browser/get-download-destination.js +38 -0
  117. package/dist/browser/mitt/index.d.ts +22 -0
  118. package/dist/browser/mitt/index.js +49 -0
  119. package/dist/browser/node.d.ts +2 -0
  120. package/dist/browser/node.js +9 -0
  121. package/dist/browser/page.d.ts +78 -0
  122. package/dist/browser/page.js +277 -0
  123. package/dist/browser/pkg-dir.d.ts +3 -0
  124. package/dist/browser/pkg-dir.js +13 -0
  125. package/dist/browser/revisions.d.ts +21 -0
  126. package/dist/browser/revisions.js +22 -0
  127. package/dist/browser/util.d.ts +46 -0
  128. package/dist/browser/util.js +161 -0
  129. package/dist/browser-log.d.ts +1 -1
  130. package/dist/calculate-ffmpeg-filters.d.ts +1 -1
  131. package/dist/can-use-parallel-encoding.d.ts +1 -1
  132. package/dist/combine-videos.d.ts +1 -1
  133. package/dist/convert-to-pcm.d.ts +1 -1
  134. package/dist/create-silent-audio.d.ts +1 -1
  135. package/dist/cycle-browser-tabs.d.ts +1 -1
  136. package/dist/delay-render-embedded-stack.d.ts +1 -1
  137. package/dist/ensure-presentation-timestamp.d.ts +1 -1
  138. package/dist/ensure-presentation-timestamp.js +1 -1
  139. package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
  140. package/dist/error-handling/symbolicate-error.d.ts +1 -1
  141. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  142. package/dist/extract-frame-from-video.d.ts +5 -6
  143. package/dist/extract-frame-from-video.js +51 -22
  144. package/dist/get-audio-codec-name.d.ts +1 -1
  145. package/dist/get-browser-instance.d.ts +3 -3
  146. package/dist/get-codec-name.d.ts +1 -1
  147. package/dist/get-compositions.d.ts +4 -4
  148. package/dist/get-duration-from-frame-range.d.ts +1 -1
  149. package/dist/get-extension-from-codec.d.ts +1 -1
  150. package/dist/get-frame-to-render.d.ts +1 -1
  151. package/dist/get-local-browser-executable.d.ts +1 -1
  152. package/dist/get-prores-profile-name.d.ts +1 -1
  153. package/dist/image-format.d.ts +1 -1
  154. package/dist/is-vp9-video.d.ts +3 -0
  155. package/dist/is-vp9-video.js +24 -0
  156. package/dist/last-frame-from-video-cache.d.ts +4 -4
  157. package/dist/last-frame-from-video-cache.js +9 -6
  158. package/dist/merge-audio-track.d.ts +1 -1
  159. package/dist/offthread-video-server.d.ts +4 -3
  160. package/dist/offthread-video-server.js +14 -3
  161. package/dist/open-browser.d.ts +1 -1
  162. package/dist/prepare-server.d.ts +2 -2
  163. package/dist/preprocess-audio-track.d.ts +2 -2
  164. package/dist/prespawn-ffmpeg.d.ts +2 -2
  165. package/dist/provide-screenshot.d.ts +2 -3
  166. package/dist/puppeteer-evaluate.d.ts +1 -1
  167. package/dist/puppeteer-evaluate.js +0 -1
  168. package/dist/puppeteer-screenshot.d.ts +1 -2
  169. package/dist/render-frames.d.ts +8 -8
  170. package/dist/render-media.d.ts +7 -7
  171. package/dist/render-still.d.ts +6 -6
  172. package/dist/screenshot-dom-element.d.ts +2 -3
  173. package/dist/screenshot-task.d.ts +2 -3
  174. package/dist/seek-to-frame.d.ts +1 -1
  175. package/dist/serve-handler/index.d.ts +1 -1
  176. package/dist/serve-handler/index.js +0 -1
  177. package/dist/serve-static.d.ts +2 -2
  178. package/dist/set-props-and-env.d.ts +1 -1
  179. package/dist/stitch-frames-to-video.d.ts +3 -3
  180. package/dist/stringify-ffmpeg-filter.d.ts +1 -1
  181. package/dist/symbolicate-stacktrace.d.ts +1 -1
  182. package/dist/types.d.ts +1 -1
  183. package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
  184. package/dist/validate-output-filename.d.ts +1 -1
  185. package/package.json +4 -4
@@ -0,0 +1,402 @@
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 _Browser_instances, _Browser_defaultViewport, _Browser_process, _Browser_connection, _Browser_closeCallback, _Browser_defaultContext, _Browser_contexts, _Browser_targets, _Browser_targetCreated, _Browser_targetDestroyed, _Browser_targetInfoChanged, _Browser_getVersion, _BrowserContext_browser, _BrowserContext_id;
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.BrowserContext = exports.Browser = void 0;
31
+ const assert_1 = require("./assert");
32
+ const EventEmitter_1 = require("./EventEmitter");
33
+ const Target_1 = require("./Target");
34
+ const util_1 = require("./util");
35
+ class Browser extends EventEmitter_1.EventEmitter {
36
+ // eslint-disable-next-line max-params
37
+ constructor(connection, contextIds, defaultViewport, process, closeCallback) {
38
+ super();
39
+ _Browser_instances.add(this);
40
+ _Browser_defaultViewport.set(this, void 0);
41
+ _Browser_process.set(this, void 0);
42
+ _Browser_connection.set(this, void 0);
43
+ _Browser_closeCallback.set(this, void 0);
44
+ _Browser_defaultContext.set(this, void 0);
45
+ _Browser_contexts.set(this, void 0);
46
+ _Browser_targets.set(this, void 0);
47
+ __classPrivateFieldSet(this, _Browser_defaultViewport, defaultViewport, "f");
48
+ __classPrivateFieldSet(this, _Browser_process, process, "f");
49
+ __classPrivateFieldSet(this, _Browser_connection, connection, "f");
50
+ __classPrivateFieldSet(this, _Browser_closeCallback, closeCallback ||
51
+ function () {
52
+ return undefined;
53
+ }, "f");
54
+ __classPrivateFieldSet(this, _Browser_defaultContext, new BrowserContext(this), "f");
55
+ __classPrivateFieldSet(this, _Browser_contexts, new Map(), "f");
56
+ for (const contextId of contextIds) {
57
+ __classPrivateFieldGet(this, _Browser_contexts, "f").set(contextId, new BrowserContext(this, contextId));
58
+ }
59
+ __classPrivateFieldSet(this, _Browser_targets, new Map(), "f");
60
+ __classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetCreated', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetCreated).bind(this));
61
+ __classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetDestroyed', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetDestroyed).bind(this));
62
+ __classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetInfoChanged', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetInfoChanged).bind(this));
63
+ }
64
+ static async _create({ connection, contextIds, defaultViewport, process, closeCallback, }) {
65
+ const browser = new Browser(connection, contextIds, defaultViewport, process, closeCallback);
66
+ await connection.send('Target.setDiscoverTargets', { discover: true });
67
+ return browser;
68
+ }
69
+ get _targets() {
70
+ return __classPrivateFieldGet(this, _Browser_targets, "f");
71
+ }
72
+ /**
73
+ * The spawned browser process. Returns `null` if the browser instance was created with
74
+ * {@link Puppeteer.connect}.
75
+ */
76
+ process() {
77
+ var _a;
78
+ return (_a = __classPrivateFieldGet(this, _Browser_process, "f")) !== null && _a !== void 0 ? _a : null;
79
+ }
80
+ /**
81
+ * Creates a new incognito browser context. This won't share cookies/cache with other
82
+ * browser contexts.
83
+ *
84
+ * @example
85
+ * ```js
86
+ * (async () => {
87
+ * const browser = await puppeteer.launch();
88
+ * // Create a new incognito browser context.
89
+ * const context = await browser.createIncognitoBrowserContext();
90
+ * // Create a new page in a pristine context.
91
+ * const page = await context.newPage();
92
+ * // Do stuff
93
+ * await page.goto('https://example.com');
94
+ * })();
95
+ * ```
96
+ */
97
+ async createIncognitoBrowserContext(options = {}) {
98
+ const { proxyServer, proxyBypassList } = options;
99
+ const { browserContextId } = await __classPrivateFieldGet(this, _Browser_connection, "f").send('Target.createBrowserContext', {
100
+ proxyServer,
101
+ proxyBypassList: proxyBypassList === null || proxyBypassList === void 0 ? void 0 : proxyBypassList.join(','),
102
+ });
103
+ const context = new BrowserContext(this, browserContextId);
104
+ __classPrivateFieldGet(this, _Browser_contexts, "f").set(browserContextId, context);
105
+ return context;
106
+ }
107
+ /**
108
+ * Returns an array of all open browser contexts. In a newly created browser, this will
109
+ * return a single instance of {@link BrowserContext}.
110
+ */
111
+ browserContexts() {
112
+ return [__classPrivateFieldGet(this, _Browser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _Browser_contexts, "f").values())];
113
+ }
114
+ /**
115
+ * Returns the default browser context. The default browser context cannot be closed.
116
+ */
117
+ defaultBrowserContext() {
118
+ return __classPrivateFieldGet(this, _Browser_defaultContext, "f");
119
+ }
120
+ async _disposeContext(contextId) {
121
+ if (!contextId) {
122
+ return;
123
+ }
124
+ await __classPrivateFieldGet(this, _Browser_connection, "f").send('Target.disposeBrowserContext', {
125
+ browserContextId: contextId,
126
+ });
127
+ __classPrivateFieldGet(this, _Browser_contexts, "f").delete(contextId);
128
+ }
129
+ /**
130
+ * The browser websocket endpoint which can be used as an argument to
131
+ * {@link Puppeteer.connect}.
132
+ *
133
+ * @returns The Browser websocket url.
134
+ *
135
+ * @remarks
136
+ *
137
+ * The format is `ws://${host}:${port}/devtools/browser/<id>`.
138
+ *
139
+ * You can find the `webSocketDebuggerUrl` from `http://${host}:${port}/json/version`.
140
+ * Learn more about the
141
+ * {@link https://chromedevtools.github.io/devtools-protocol | devtools protocol} and
142
+ * the {@link
143
+ * https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target
144
+ * | browser endpoint}.
145
+ */
146
+ wsEndpoint() {
147
+ return __classPrivateFieldGet(this, _Browser_connection, "f").url();
148
+ }
149
+ /**
150
+ * Promise which resolves to a new {@link Page} object. The Page is created in
151
+ * a default browser context.
152
+ */
153
+ newPage() {
154
+ return __classPrivateFieldGet(this, _Browser_defaultContext, "f").newPage();
155
+ }
156
+ async _createPageInContext(contextId) {
157
+ const { targetId } = await __classPrivateFieldGet(this, _Browser_connection, "f").send('Target.createTarget', {
158
+ url: 'about:blank',
159
+ browserContextId: contextId || undefined,
160
+ });
161
+ const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(targetId);
162
+ if (!target) {
163
+ throw new Error(`Missing target for page (id = ${targetId})`);
164
+ }
165
+ const initialized = await target._initializedPromise;
166
+ if (!initialized) {
167
+ throw new Error(`Failed to create target for page (id = ${targetId})`);
168
+ }
169
+ const page = await target.page();
170
+ if (!page) {
171
+ throw new Error(`Failed to create a page for context (id = ${contextId})`);
172
+ }
173
+ return page;
174
+ }
175
+ /**
176
+ * All active targets inside the Browser. In case of multiple browser contexts, returns
177
+ * an array with all the targets in all browser contexts.
178
+ */
179
+ targets() {
180
+ return Array.from(__classPrivateFieldGet(this, _Browser_targets, "f").values()).filter((target) => {
181
+ return target._isInitialized;
182
+ });
183
+ }
184
+ /**
185
+ * The target associated with the browser.
186
+ */
187
+ target() {
188
+ const browserTarget = this.targets().find((target) => {
189
+ return target.type() === 'browser';
190
+ });
191
+ if (!browserTarget) {
192
+ throw new Error('Browser target is not found');
193
+ }
194
+ return browserTarget;
195
+ }
196
+ /**
197
+ * Searches for a target in all browser contexts.
198
+ *
199
+ * @param predicate - A function to be run for every target.
200
+ * @returns The first target found that matches the `predicate` function.
201
+ *
202
+ * @example
203
+ *
204
+ * An example of finding a target for a page opened via `window.open`:
205
+ * ```js
206
+ * await page.evaluate(() => window.open('https://www.example.com/'));
207
+ * const newWindowTarget = await browser.waitForTarget(target => target.url() === 'https://www.example.com/');
208
+ * ```
209
+ */
210
+ async waitForTarget(predicate, options = {}) {
211
+ const { timeout = 30000 } = options;
212
+ let resolve;
213
+ let isResolved = false;
214
+ const targetPromise = new Promise((x) => {
215
+ resolve = x;
216
+ });
217
+ this.on("targetcreated" /* BrowserEmittedEvents.TargetCreated */, check);
218
+ this.on("targetchanged" /* BrowserEmittedEvents.TargetChanged */, check);
219
+ try {
220
+ if (!timeout) {
221
+ return await targetPromise;
222
+ }
223
+ this.targets().forEach(check);
224
+ return await (0, util_1.waitWithTimeout)(targetPromise, 'target', timeout);
225
+ }
226
+ finally {
227
+ this.off("targetcreated" /* BrowserEmittedEvents.TargetCreated */, check);
228
+ this.off("targetchanged" /* BrowserEmittedEvents.TargetChanged */, check);
229
+ }
230
+ async function check(target) {
231
+ if ((await predicate(target)) && !isResolved) {
232
+ isResolved = true;
233
+ resolve(target);
234
+ }
235
+ }
236
+ }
237
+ /**
238
+ * An array of all open pages inside the Browser.
239
+ *
240
+ * @remarks
241
+ *
242
+ * In case of multiple browser contexts, returns an array with all the pages in all
243
+ * browser contexts. Non-visible pages, such as `"background_page"`, will not be listed
244
+ * here. You can find them using {@link Target.page}.
245
+ */
246
+ async pages() {
247
+ const contextPages = await Promise.all(this.browserContexts().map((context) => {
248
+ return context.pages();
249
+ }));
250
+ // Flatten array.
251
+ return contextPages.reduce((acc, x) => {
252
+ return acc.concat(x);
253
+ }, []);
254
+ }
255
+ /**
256
+ * A string representing the browser name and version.
257
+ *
258
+ * @remarks
259
+ *
260
+ * For headless Chromium, this is similar to `HeadlessChrome/61.0.3153.0`. For
261
+ * non-headless, this is similar to `Chrome/61.0.3153.0`.
262
+ *
263
+ * The format of browser.version() might change with future releases of Chromium.
264
+ */
265
+ async version() {
266
+ const version = await __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_getVersion).call(this);
267
+ return version.product;
268
+ }
269
+ /**
270
+ * The browser's original user agent. Pages can override the browser user agent with
271
+ * {@link Page.setUserAgent}.
272
+ */
273
+ async userAgent() {
274
+ const version = await __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_getVersion).call(this);
275
+ return version.userAgent;
276
+ }
277
+ /**
278
+ * Closes Chromium and all of its pages (if any were opened). The {@link Browser} object
279
+ * itself is considered to be disposed and cannot be used anymore.
280
+ */
281
+ async close() {
282
+ await __classPrivateFieldGet(this, _Browser_closeCallback, "f").call(null);
283
+ this.disconnect();
284
+ }
285
+ /**
286
+ * Disconnects Puppeteer from the browser, but leaves the Chromium process running.
287
+ * After calling `disconnect`, the {@link Browser} object is considered disposed and
288
+ * cannot be used anymore.
289
+ */
290
+ disconnect() {
291
+ __classPrivateFieldGet(this, _Browser_connection, "f").dispose();
292
+ }
293
+ /**
294
+ * Indicates that the browser is connected.
295
+ */
296
+ isConnected() {
297
+ return !__classPrivateFieldGet(this, _Browser_connection, "f")._closed;
298
+ }
299
+ }
300
+ exports.Browser = Browser;
301
+ _Browser_defaultViewport = new WeakMap(), _Browser_process = new WeakMap(), _Browser_connection = new WeakMap(), _Browser_closeCallback = new WeakMap(), _Browser_defaultContext = new WeakMap(), _Browser_contexts = new WeakMap(), _Browser_targets = new WeakMap(), _Browser_instances = new WeakSet(), _Browser_targetCreated = async function _Browser_targetCreated(event) {
302
+ var _a;
303
+ const { targetInfo } = event;
304
+ const { browserContextId } = targetInfo;
305
+ const context = browserContextId && __classPrivateFieldGet(this, _Browser_contexts, "f").has(browserContextId)
306
+ ? __classPrivateFieldGet(this, _Browser_contexts, "f").get(browserContextId)
307
+ : __classPrivateFieldGet(this, _Browser_defaultContext, "f");
308
+ if (!context) {
309
+ throw new Error('Missing browser context');
310
+ }
311
+ const target = new Target_1.Target(targetInfo, context, () => {
312
+ return __classPrivateFieldGet(this, _Browser_connection, "f").createSession(targetInfo);
313
+ }, (_a = __classPrivateFieldGet(this, _Browser_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null);
314
+ (0, assert_1.assert)(!__classPrivateFieldGet(this, _Browser_targets, "f").has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
315
+ __classPrivateFieldGet(this, _Browser_targets, "f").set(event.targetInfo.targetId, target);
316
+ if (await target._initializedPromise) {
317
+ this.emit("targetcreated" /* BrowserEmittedEvents.TargetCreated */, target);
318
+ }
319
+ }, _Browser_targetDestroyed = function _Browser_targetDestroyed(event) {
320
+ const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(event.targetId);
321
+ if (!target) {
322
+ throw new Error(`Missing target in _targetDestroyed (id = ${event.targetId})`);
323
+ }
324
+ target._initializedCallback(false);
325
+ __classPrivateFieldGet(this, _Browser_targets, "f").delete(event.targetId);
326
+ target._closedCallback();
327
+ }, _Browser_targetInfoChanged = function _Browser_targetInfoChanged(event) {
328
+ const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(event.targetInfo.targetId);
329
+ if (!target) {
330
+ throw new Error(`Missing target in targetInfoChanged (id = ${event.targetInfo.targetId})`);
331
+ }
332
+ const previousURL = target.url();
333
+ const wasInitialized = target._isInitialized;
334
+ target._targetInfoChanged(event.targetInfo);
335
+ if (wasInitialized && previousURL !== target.url()) {
336
+ this.emit("targetchanged" /* BrowserEmittedEvents.TargetChanged */, target);
337
+ }
338
+ }, _Browser_getVersion = function _Browser_getVersion() {
339
+ return __classPrivateFieldGet(this, _Browser_connection, "f").send('Browser.getVersion');
340
+ };
341
+ class BrowserContext extends EventEmitter_1.EventEmitter {
342
+ constructor(browser, contextId) {
343
+ super();
344
+ _BrowserContext_browser.set(this, void 0);
345
+ _BrowserContext_id.set(this, void 0);
346
+ __classPrivateFieldSet(this, _BrowserContext_browser, browser, "f");
347
+ __classPrivateFieldSet(this, _BrowserContext_id, contextId, "f");
348
+ }
349
+ targets() {
350
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f").targets().filter((target) => {
351
+ return target.browserContext() === this;
352
+ });
353
+ }
354
+ waitForTarget(predicate, options = {}) {
355
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f").waitForTarget((target) => {
356
+ return target.browserContext() === this && predicate(target);
357
+ }, options);
358
+ }
359
+ async pages() {
360
+ const pages = await Promise.all(this.targets()
361
+ .filter((target) => target.type() === 'page')
362
+ .map((target) => target.page()));
363
+ return pages.filter((page) => {
364
+ return Boolean(page);
365
+ });
366
+ }
367
+ /**
368
+ * Returns whether BrowserContext is incognito.
369
+ * The default browser context is the only non-incognito browser context.
370
+ *
371
+ * @remarks
372
+ * The default browser context cannot be closed.
373
+ */
374
+ isIncognito() {
375
+ return Boolean(__classPrivateFieldGet(this, _BrowserContext_id, "f"));
376
+ }
377
+ /**
378
+ * Creates a new page in the browser context.
379
+ */
380
+ newPage() {
381
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f")._createPageInContext(__classPrivateFieldGet(this, _BrowserContext_id, "f"));
382
+ }
383
+ /**
384
+ * The browser this browser context belongs to.
385
+ */
386
+ browser() {
387
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f");
388
+ }
389
+ /**
390
+ * Closes the browser context. All the targets that belong to the browser context
391
+ * will be closed.
392
+ *
393
+ * @remarks
394
+ * Only incognito browser contexts can be closed.
395
+ */
396
+ async close() {
397
+ (0, assert_1.assert)(__classPrivateFieldGet(this, _BrowserContext_id, "f"), 'Non-incognito profiles cannot be closed!');
398
+ await __classPrivateFieldGet(this, _BrowserContext_browser, "f")._disposeContext(__classPrivateFieldGet(this, _BrowserContext_id, "f"));
399
+ }
400
+ }
401
+ exports.BrowserContext = BrowserContext;
402
+ _BrowserContext_browser = new WeakMap(), _BrowserContext_id = new WeakMap();
@@ -0,0 +1,26 @@
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
+ import { Browser } from './Browser';
17
+ import { ConnectionTransport } from './ConnectionTransport';
18
+ import { Viewport } from './PuppeteerViewport';
19
+ export interface BrowserConnectOptions {
20
+ defaultViewport: Viewport;
21
+ }
22
+ export declare type ConnectToBrowserOptions = BrowserConnectOptions & {
23
+ browserWSEndpoint: string;
24
+ transport: ConnectionTransport;
25
+ };
26
+ export declare function _connectToBrowser(options: ConnectToBrowserOptions): Promise<Browser>;
@@ -0,0 +1,49 @@
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._connectToBrowser = void 0;
19
+ const assert_1 = require("./assert");
20
+ const Browser_1 = require("./Browser");
21
+ const Connection_1 = require("./Connection");
22
+ const NodeWebSocketTransport_1 = require("./NodeWebSocketTransport");
23
+ const getWebSocketTransportClass = () => {
24
+ return NodeWebSocketTransport_1.NodeWebSocketTransport;
25
+ };
26
+ async function _connectToBrowser(options) {
27
+ const { browserWSEndpoint, defaultViewport, transport } = options;
28
+ (0, assert_1.assert)(Number(Boolean(browserWSEndpoint)) + Number(Boolean(transport)) === 1, 'Exactly one of browserWSEndpoint, browserURL or transport must be passed to puppeteer.connect');
29
+ let connection;
30
+ if (transport) {
31
+ connection = new Connection_1.Connection('', transport);
32
+ }
33
+ else if (browserWSEndpoint) {
34
+ const WebSocketClass = getWebSocketTransportClass();
35
+ const connectionTransport = await WebSocketClass.create(browserWSEndpoint);
36
+ connection = new Connection_1.Connection(browserWSEndpoint, connectionTransport);
37
+ }
38
+ const { browserContextIds } = await connection.send('Target.getBrowserContexts');
39
+ return Browser_1.Browser._create({
40
+ connection,
41
+ contextIds: browserContextIds,
42
+ defaultViewport,
43
+ process: undefined,
44
+ closeCallback: () => {
45
+ return connection.send('Browser.close').catch(() => undefined);
46
+ },
47
+ });
48
+ }
49
+ exports._connectToBrowser = _connectToBrowser;
@@ -0,0 +1,89 @@
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 { Product } from './Product';
17
+ declare type Platform = 'linux' | 'mac' | 'mac_arm' | 'win32' | 'win64';
18
+ export interface BrowserFetcherOptions {
19
+ platform: Platform | null;
20
+ product: Product;
21
+ path: string | null;
22
+ }
23
+ interface BrowserFetcherRevisionInfo {
24
+ folderPath: string;
25
+ executablePath: string;
26
+ url: string;
27
+ local: boolean;
28
+ revision: string;
29
+ product: string;
30
+ }
31
+ export declare class BrowserFetcher {
32
+ #private;
33
+ constructor(options: BrowserFetcherOptions);
34
+ /**
35
+ * @returns Returns the current `Platform`, which is one of `mac`, `linux`,
36
+ * `win32` or `win64`.
37
+ */
38
+ platform(): Platform;
39
+ /**
40
+ * @returns Returns the current `Product`, which is one of `chrome` or
41
+ * `firefox`.
42
+ */
43
+ product(): Product;
44
+ /**
45
+ * @returns The download host being used.
46
+ */
47
+ host(): string;
48
+ /**
49
+ * Initiates a HEAD request to check if the revision is available.
50
+ * @remarks
51
+ * This method is affected by the current `product`.
52
+ * @param revision - The revision to check availability for.
53
+ * @returns A promise that resolves to `true` if the revision could be downloaded
54
+ * from the host.
55
+ */
56
+ canDownload(revision: string): Promise<boolean>;
57
+ /**
58
+ * Initiates a GET request to download the revision from the host.
59
+ * @remarks
60
+ * This method is affected by the current `product`.
61
+ * @param revision - The revision to download.
62
+ * @param progressCallback - A function that will be called with two arguments:
63
+ * How many bytes have been downloaded and the total number of bytes of the download.
64
+ * @returns A promise with revision information when the revision is downloaded
65
+ * and extracted.
66
+ */
67
+ download(revision: string, progressCallback?: (x: number, y: number) => void): Promise<BrowserFetcherRevisionInfo | undefined>;
68
+ /**
69
+ * @remarks
70
+ * This method is affected by the current `product`.
71
+ * @returns A promise with a list of all revision strings (for the current `product`)
72
+ * available locally on disk.
73
+ */
74
+ localRevisions(): Promise<string[]>;
75
+ /**
76
+ * @remarks
77
+ * This method is affected by the current `product`.
78
+ * @param revision - A revision to remove for the current `product`.
79
+ * @returns A promise that resolves when the revision has been removes or
80
+ * throws if the revision has not been downloaded.
81
+ */
82
+ remove(revision: string): Promise<void>;
83
+ /**
84
+ * @param revision - The revision to get info for.
85
+ * @returns The revision info for the given revision.
86
+ */
87
+ revisionInfo(revision: string): BrowserFetcherRevisionInfo;
88
+ }
89
+ export {};