@remotion/renderer 4.0.0-fastlambda.8 → 4.0.0-lambda.3

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 (191) hide show
  1. package/dist/assets/cleanup-assets.d.ts +2 -0
  2. package/dist/assets/cleanup-assets.js +2 -0
  3. package/dist/assets/download-and-map-assets-to-file.d.ts +6 -0
  4. package/dist/assets/download-and-map-assets-to-file.js +46 -19
  5. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
  6. package/dist/assets/ffmpeg-volume-expression.js +15 -12
  7. package/dist/assets/get-audio-channels.d.ts +5 -2
  8. package/dist/assets/get-audio-channels.js +15 -4
  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/calculate-ffmpeg-filters.js +2 -2
  130. package/dist/combine-videos.d.ts +2 -1
  131. package/dist/combine-videos.js +8 -1
  132. package/dist/cycle-browser-tabs.d.ts +2 -1
  133. package/dist/cycle-browser-tabs.js +9 -2
  134. package/dist/ensure-presentation-timestamp.d.ts +1 -0
  135. package/dist/ensure-presentation-timestamp.js +57 -0
  136. package/dist/extract-frame-from-video.d.ts +11 -0
  137. package/dist/extract-frame-from-video.js +197 -0
  138. package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
  139. package/dist/frame-to-ffmpeg-timestamp.js +8 -0
  140. package/dist/get-compositions.d.ts +5 -2
  141. package/dist/get-compositions.js +23 -5
  142. package/dist/get-duration-of-asset.d.ts +7 -0
  143. package/dist/get-duration-of-asset.js +36 -0
  144. package/dist/get-port.js +26 -24
  145. package/dist/index.d.ts +33 -9
  146. package/dist/index.js +14 -5
  147. package/dist/is-beyond-last-frame.d.ts +2 -0
  148. package/dist/is-beyond-last-frame.js +12 -0
  149. package/dist/last-frame-from-video-cache.d.ts +10 -0
  150. package/dist/last-frame-from-video-cache.js +50 -0
  151. package/dist/make-assets-download-dir.js +6 -1
  152. package/dist/make-cancel-signal.d.ts +7 -0
  153. package/dist/make-cancel-signal.js +25 -0
  154. package/dist/merge-audio-track.js +2 -2
  155. package/dist/offthread-video-server.d.ts +14 -0
  156. package/dist/offthread-video-server.js +67 -0
  157. package/dist/open-browser.d.ts +6 -6
  158. package/dist/open-browser.js +24 -20
  159. package/dist/prepare-server.d.ts +13 -2
  160. package/dist/prepare-server.js +35 -5
  161. package/dist/preprocess-audio-track.d.ts +1 -0
  162. package/dist/preprocess-audio-track.js +2 -2
  163. package/dist/prespawn-ffmpeg.d.ts +2 -0
  164. package/dist/prespawn-ffmpeg.js +10 -9
  165. package/dist/provide-screenshot.js +1 -1
  166. package/dist/puppeteer-screenshot.js +5 -1
  167. package/dist/render-frames.d.ts +6 -1
  168. package/dist/render-frames.js +96 -37
  169. package/dist/render-media.d.ts +12 -2
  170. package/dist/render-media.js +127 -54
  171. package/dist/render-still.d.ts +14 -4
  172. package/dist/render-still.js +58 -19
  173. package/dist/serve-handler/glob-slash.d.ts +1 -0
  174. package/dist/serve-handler/glob-slash.js +12 -0
  175. package/dist/serve-handler/index.d.ts +4 -0
  176. package/dist/serve-handler/index.js +205 -0
  177. package/dist/serve-handler/is-path-inside.d.ts +1 -0
  178. package/dist/serve-handler/is-path-inside.js +27 -0
  179. package/dist/serve-handler/range-parser.d.ts +13 -0
  180. package/dist/serve-handler/range-parser.js +57 -0
  181. package/dist/serve-static.d.ts +10 -3
  182. package/dist/serve-static.js +22 -4
  183. package/dist/set-props-and-env.d.ts +3 -1
  184. package/dist/set-props-and-env.js +28 -6
  185. package/dist/stitch-frames-to-video.d.ts +4 -1
  186. package/dist/stitch-frames-to-video.js +36 -15
  187. package/dist/stringify-ffmpeg-filter.js +3 -0
  188. package/dist/tmp-dir.js +5 -1
  189. package/dist/validate-fps-for-gif.d.ts +2 -0
  190. package/dist/validate-fps-for-gif.js +9 -0
  191. package/package.json +6 -7
@@ -0,0 +1,209 @@
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
+ /// <reference types="node" />
17
+ import { ChildProcess } from 'child_process';
18
+ import { Connection } from './Connection';
19
+ import { EventEmitter } from './EventEmitter';
20
+ import { Page } from './Page';
21
+ import { Viewport } from './PuppeteerViewport';
22
+ import { Target } from './Target';
23
+ interface BrowserContextOptions {
24
+ /**
25
+ * Proxy server with optional port to use for all requests.
26
+ * Username and password can be set in `Page.authenticate`.
27
+ */
28
+ proxyServer?: string;
29
+ /**
30
+ * Bypass the proxy for the given semi-colon-separated list of hosts.
31
+ */
32
+ proxyBypassList?: string[];
33
+ }
34
+ declare type BrowserCloseCallback = () => Promise<void> | void;
35
+ interface WaitForTargetOptions {
36
+ /**
37
+ * Maximum wait time in milliseconds. Pass `0` to disable the timeout.
38
+ * @defaultValue 30 seconds.
39
+ */
40
+ timeout?: number;
41
+ }
42
+ export declare class Browser extends EventEmitter {
43
+ #private;
44
+ static _create({ connection, contextIds, defaultViewport, process, closeCallback, }: {
45
+ connection: Connection;
46
+ contextIds: string[];
47
+ defaultViewport: Viewport;
48
+ process?: ChildProcess;
49
+ closeCallback?: BrowserCloseCallback;
50
+ }): Promise<Browser>;
51
+ get _targets(): Map<string, Target>;
52
+ constructor(connection: Connection, contextIds: string[], defaultViewport: Viewport, process?: ChildProcess, closeCallback?: BrowserCloseCallback);
53
+ /**
54
+ * The spawned browser process. Returns `null` if the browser instance was created with
55
+ * {@link Puppeteer.connect}.
56
+ */
57
+ process(): ChildProcess | null;
58
+ /**
59
+ * Creates a new incognito browser context. This won't share cookies/cache with other
60
+ * browser contexts.
61
+ *
62
+ * @example
63
+ * ```js
64
+ * (async () => {
65
+ * const browser = await puppeteer.launch();
66
+ * // Create a new incognito browser context.
67
+ * const context = await browser.createIncognitoBrowserContext();
68
+ * // Create a new page in a pristine context.
69
+ * const page = await context.newPage();
70
+ * // Do stuff
71
+ * await page.goto('https://example.com');
72
+ * })();
73
+ * ```
74
+ */
75
+ createIncognitoBrowserContext(options?: BrowserContextOptions): Promise<BrowserContext>;
76
+ /**
77
+ * Returns an array of all open browser contexts. In a newly created browser, this will
78
+ * return a single instance of {@link BrowserContext}.
79
+ */
80
+ browserContexts(): BrowserContext[];
81
+ /**
82
+ * Returns the default browser context. The default browser context cannot be closed.
83
+ */
84
+ defaultBrowserContext(): BrowserContext;
85
+ _disposeContext(contextId?: string): Promise<void>;
86
+ /**
87
+ * The browser websocket endpoint which can be used as an argument to
88
+ * {@link Puppeteer.connect}.
89
+ *
90
+ * @returns The Browser websocket url.
91
+ *
92
+ * @remarks
93
+ *
94
+ * The format is `ws://${host}:${port}/devtools/browser/<id>`.
95
+ *
96
+ * You can find the `webSocketDebuggerUrl` from `http://${host}:${port}/json/version`.
97
+ * Learn more about the
98
+ * {@link https://chromedevtools.github.io/devtools-protocol | devtools protocol} and
99
+ * the {@link
100
+ * https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target
101
+ * | browser endpoint}.
102
+ */
103
+ wsEndpoint(): string;
104
+ /**
105
+ * Promise which resolves to a new {@link Page} object. The Page is created in
106
+ * a default browser context.
107
+ */
108
+ newPage(): Promise<Page>;
109
+ _createPageInContext(contextId?: string): Promise<Page>;
110
+ /**
111
+ * All active targets inside the Browser. In case of multiple browser contexts, returns
112
+ * an array with all the targets in all browser contexts.
113
+ */
114
+ targets(): Target[];
115
+ /**
116
+ * The target associated with the browser.
117
+ */
118
+ target(): Target;
119
+ /**
120
+ * Searches for a target in all browser contexts.
121
+ *
122
+ * @param predicate - A function to be run for every target.
123
+ * @returns The first target found that matches the `predicate` function.
124
+ *
125
+ * @example
126
+ *
127
+ * An example of finding a target for a page opened via `window.open`:
128
+ * ```js
129
+ * await page.evaluate(() => window.open('https://www.example.com/'));
130
+ * const newWindowTarget = await browser.waitForTarget(target => target.url() === 'https://www.example.com/');
131
+ * ```
132
+ */
133
+ waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: WaitForTargetOptions): Promise<Target>;
134
+ /**
135
+ * An array of all open pages inside the Browser.
136
+ *
137
+ * @remarks
138
+ *
139
+ * In case of multiple browser contexts, returns an array with all the pages in all
140
+ * browser contexts. Non-visible pages, such as `"background_page"`, will not be listed
141
+ * here. You can find them using {@link Target.page}.
142
+ */
143
+ pages(): Promise<Page[]>;
144
+ /**
145
+ * A string representing the browser name and version.
146
+ *
147
+ * @remarks
148
+ *
149
+ * For headless Chromium, this is similar to `HeadlessChrome/61.0.3153.0`. For
150
+ * non-headless, this is similar to `Chrome/61.0.3153.0`.
151
+ *
152
+ * The format of browser.version() might change with future releases of Chromium.
153
+ */
154
+ version(): Promise<string>;
155
+ /**
156
+ * The browser's original user agent. Pages can override the browser user agent with
157
+ * {@link Page.setUserAgent}.
158
+ */
159
+ userAgent(): Promise<string>;
160
+ /**
161
+ * Closes Chromium and all of its pages (if any were opened). The {@link Browser} object
162
+ * itself is considered to be disposed and cannot be used anymore.
163
+ */
164
+ close(): Promise<void>;
165
+ /**
166
+ * Disconnects Puppeteer from the browser, but leaves the Chromium process running.
167
+ * After calling `disconnect`, the {@link Browser} object is considered disposed and
168
+ * cannot be used anymore.
169
+ */
170
+ disconnect(): void;
171
+ /**
172
+ * Indicates that the browser is connected.
173
+ */
174
+ isConnected(): boolean;
175
+ }
176
+ export declare class BrowserContext extends EventEmitter {
177
+ #private;
178
+ constructor(browser: Browser, contextId?: string);
179
+ targets(): Target[];
180
+ waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: {
181
+ timeout?: number;
182
+ }): Promise<Target>;
183
+ pages(): Promise<Page[]>;
184
+ /**
185
+ * Returns whether BrowserContext is incognito.
186
+ * The default browser context is the only non-incognito browser context.
187
+ *
188
+ * @remarks
189
+ * The default browser context cannot be closed.
190
+ */
191
+ isIncognito(): boolean;
192
+ /**
193
+ * Creates a new page in the browser context.
194
+ */
195
+ newPage(): Promise<Page>;
196
+ /**
197
+ * The browser this browser context belongs to.
198
+ */
199
+ browser(): Browser;
200
+ /**
201
+ * Closes the browser context. All the targets that belong to the browser context
202
+ * will be closed.
203
+ *
204
+ * @remarks
205
+ * Only incognito browser contexts can be closed.
206
+ */
207
+ close(): Promise<void>;
208
+ }
209
+ export {};
@@ -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;