@remotion/renderer 4.0.267 → 4.0.268

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.
package/bundle.ts ADDED
@@ -0,0 +1,27 @@
1
+ import {buildPackage} from '../.monorepo/builder';
2
+
3
+ await buildPackage({
4
+ formats: {
5
+ cjs: 'use-tsc',
6
+ esm: 'build',
7
+ },
8
+ external: 'dependencies',
9
+ entrypoints: [
10
+ {
11
+ path: 'src/index.ts',
12
+ target: 'node',
13
+ },
14
+ {
15
+ path: 'src/client.ts',
16
+ target: 'node',
17
+ },
18
+ {
19
+ path: 'src/pure.ts',
20
+ target: 'browser',
21
+ },
22
+ {
23
+ path: 'src/error-handling.ts',
24
+ target: 'node',
25
+ },
26
+ ],
27
+ });
@@ -37,8 +37,13 @@ const makeAndReturn = (dir, name) => {
37
37
  (0, node_fs_1.mkdirSync)(p);
38
38
  return p;
39
39
  };
40
- const packageJsonPath = node_path_1.default.join(__dirname, '..', '..', 'package.json');
41
- const packageJson = node_fs_1.default.existsSync(packageJsonPath)
40
+ const dontInlineThis = 'package.json';
41
+ let packageJsonPath = null;
42
+ try {
43
+ packageJsonPath = require.resolve('../../' + dontInlineThis);
44
+ }
45
+ catch (_a) { }
46
+ const packageJson = packageJsonPath && node_fs_1.default.existsSync(packageJsonPath)
42
47
  ? JSON.parse(node_fs_1.default.readFileSync(packageJsonPath, 'utf-8'))
43
48
  : null;
44
49
  const makeDownloadMap = () => {
@@ -13,6 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { BrowserLog } from '../browser-log';
16
17
  import type { LogLevel } from '../log-level';
17
18
  import type { Page } from './BrowserPage';
18
19
  import type { BrowserRunner } from './BrowserRunner';
@@ -50,17 +51,19 @@ export declare class HeadlessBrowser extends EventEmitter {
50
51
  runner: BrowserRunner;
51
52
  });
52
53
  browserContexts(): BrowserContext[];
53
- newPage({ context, logLevel, indent, pageIndex, }: {
54
+ newPage({ context, logLevel, indent, pageIndex, onBrowserLog, }: {
54
55
  context: SourceMapGetter;
55
56
  logLevel: LogLevel;
56
57
  indent: boolean;
57
58
  pageIndex: number;
59
+ onBrowserLog: null | ((log: BrowserLog) => void);
58
60
  }): Promise<Page>;
59
- _createPageInContext({ context, logLevel, indent, pageIndex, }: {
61
+ _createPageInContext({ context, logLevel, indent, pageIndex, onBrowserLog, }: {
60
62
  context: SourceMapGetter;
61
63
  logLevel: LogLevel;
62
64
  indent: boolean;
63
65
  pageIndex: number;
66
+ onBrowserLog: null | ((log: BrowserLog) => void);
64
67
  }): Promise<Page>;
65
68
  targets(): Target[];
66
69
  waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: WaitForTargetOptions): Promise<Target>;
@@ -78,11 +81,12 @@ export declare class BrowserContext extends EventEmitter {
78
81
  timeout?: number;
79
82
  }): Promise<Target>;
80
83
  pages(): Promise<Page[]>;
81
- newPage({ context, logLevel, indent, pageIndex, }: {
84
+ newPage({ context, logLevel, indent, pageIndex, onBrowserLog, }: {
82
85
  context: SourceMapGetter;
83
86
  logLevel: LogLevel;
84
87
  indent: boolean;
85
88
  pageIndex: number;
89
+ onBrowserLog: null | ((log: BrowserLog) => void);
86
90
  }): Promise<Page>;
87
91
  browser(): HeadlessBrowser;
88
92
  }
@@ -74,10 +74,16 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
74
74
  browserContexts() {
75
75
  return [__classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").values())];
76
76
  }
77
- newPage({ context, logLevel, indent, pageIndex, }) {
78
- return __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f").newPage({ context, logLevel, indent, pageIndex });
77
+ newPage({ context, logLevel, indent, pageIndex, onBrowserLog, }) {
78
+ return __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f").newPage({
79
+ context,
80
+ logLevel,
81
+ indent,
82
+ pageIndex,
83
+ onBrowserLog,
84
+ });
79
85
  }
80
- async _createPageInContext({ context, logLevel, indent, pageIndex, }) {
86
+ async _createPageInContext({ context, logLevel, indent, pageIndex, onBrowserLog, }) {
81
87
  const { value: { targetId }, } = await this.connection.send('Target.createTarget', {
82
88
  url: 'about:blank',
83
89
  browserContextId: undefined,
@@ -95,6 +101,7 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
95
101
  logLevel,
96
102
  indent,
97
103
  pageIndex,
104
+ onBrowserLog,
98
105
  });
99
106
  if (!page) {
100
107
  throw new Error(`Failed to create a page for context`);
@@ -218,12 +225,13 @@ class BrowserContext extends EventEmitter_1.EventEmitter {
218
225
  return Boolean(page);
219
226
  });
220
227
  }
221
- newPage({ context, logLevel, indent, pageIndex, }) {
228
+ newPage({ context, logLevel, indent, pageIndex, onBrowserLog, }) {
222
229
  return __classPrivateFieldGet(this, _BrowserContext_browser, "f")._createPageInContext({
223
230
  context,
224
231
  logLevel,
225
232
  indent,
226
233
  pageIndex,
234
+ onBrowserLog,
227
235
  });
228
236
  }
229
237
  browser() {
@@ -1,3 +1,4 @@
1
+ import { BrowserLog } from '../browser-log';
1
2
  import type { LogLevel } from '../log-level';
2
3
  import type { HeadlessBrowser } from './Browser';
3
4
  import type { CDPSession } from './Connection';
@@ -15,7 +16,6 @@ interface WaitForOptions {
15
16
  timeout?: number;
16
17
  }
17
18
  export declare const enum PageEmittedEvents {
18
- Console = "console",
19
19
  Error = "error",
20
20
  Disposed = "disposed"
21
21
  }
@@ -27,7 +27,7 @@ interface PageEventObject {
27
27
  export declare class Page extends EventEmitter {
28
28
  #private;
29
29
  id: string;
30
- static _create({ client, target, defaultViewport, browser, sourceMapGetter, logLevel, indent, pageIndex, }: {
30
+ static _create({ client, target, defaultViewport, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, }: {
31
31
  client: CDPSession;
32
32
  target: Target;
33
33
  defaultViewport: Viewport;
@@ -36,14 +36,17 @@ export declare class Page extends EventEmitter {
36
36
  logLevel: LogLevel;
37
37
  indent: boolean;
38
38
  pageIndex: number;
39
+ onBrowserLog: null | ((log: BrowserLog) => void);
39
40
  }): Promise<Page>;
40
41
  closed: boolean;
41
42
  browser: HeadlessBrowser;
42
43
  screenshotTaskQueue: TaskQueue;
43
44
  sourceMapGetter: SourceMapGetter;
44
45
  logLevel: LogLevel;
46
+ indent: boolean;
45
47
  pageIndex: number;
46
- constructor({ client, target, browser, sourceMapGetter, logLevel, indent, pageIndex, }: {
48
+ onBrowserLog: null | ((log: BrowserLog) => void);
49
+ constructor({ client, target, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, }: {
47
50
  client: CDPSession;
48
51
  target: Target;
49
52
  browser: HeadlessBrowser;
@@ -51,6 +54,7 @@ export declare class Page extends EventEmitter {
51
54
  logLevel: LogLevel;
52
55
  indent: boolean;
53
56
  pageIndex: number;
57
+ onBrowserLog: null | ((log: BrowserLog) => void);
54
58
  });
55
59
  /**
56
60
  * Listen to page events.
@@ -10,7 +10,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
10
10
  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");
11
11
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
12
  };
13
- var _Page_instances, _Page_client, _Page_target, _Page_timeoutSettings, _Page_frameManager, _Page_pageBindings, _Page_initialize, _Page_onTargetCrashed, _Page_onLogEntryAdded, _Page_onConsoleAPI, _Page_onBindingCalled, _Page_addConsoleMessage;
13
+ var _Page_instances, _Page_client, _Page_target, _Page_timeoutSettings, _Page_frameManager, _Page_pageBindings, _Page_onConsole, _Page_initialize, _Page_onTargetCrashed, _Page_onLogEntryAdded, _Page_onConsoleAPI, _Page_onBindingCalled, _Page_addConsoleMessage;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.Page = void 0;
16
16
  /**
@@ -49,7 +49,7 @@ const shouldHideWarning = (log) => {
49
49
  return false;
50
50
  };
51
51
  class Page extends EventEmitter_1.EventEmitter {
52
- static async _create({ client, target, defaultViewport, browser, sourceMapGetter, logLevel, indent, pageIndex, }) {
52
+ static async _create({ client, target, defaultViewport, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, }) {
53
53
  const page = new Page({
54
54
  client,
55
55
  target,
@@ -58,12 +58,13 @@ class Page extends EventEmitter_1.EventEmitter {
58
58
  logLevel,
59
59
  indent,
60
60
  pageIndex,
61
+ onBrowserLog,
61
62
  });
62
63
  await __classPrivateFieldGet(page, _Page_instances, "m", _Page_initialize).call(page);
63
64
  await page.setViewport(defaultViewport);
64
65
  return page;
65
66
  }
66
- constructor({ client, target, browser, sourceMapGetter, logLevel, indent, pageIndex, }) {
67
+ constructor({ client, target, browser, sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, }) {
67
68
  super();
68
69
  _Page_instances.add(this);
69
70
  this.closed = false;
@@ -72,57 +73,23 @@ class Page extends EventEmitter_1.EventEmitter {
72
73
  _Page_timeoutSettings.set(this, new TimeoutSettings_1.TimeoutSettings());
73
74
  _Page_frameManager.set(this, void 0);
74
75
  _Page_pageBindings.set(this, new Map());
75
- __classPrivateFieldSet(this, _Page_client, client, "f");
76
- __classPrivateFieldSet(this, _Page_target, target, "f");
77
- __classPrivateFieldSet(this, _Page_frameManager, new FrameManager_1.FrameManager(client, this, indent, logLevel), "f");
78
- this.screenshotTaskQueue = new TaskQueue_1.TaskQueue();
79
- this.browser = browser;
80
- this.id = String(Math.random());
81
- this.sourceMapGetter = sourceMapGetter;
82
- this.logLevel = logLevel;
83
- this.pageIndex = pageIndex;
84
- client.on('Target.attachedToTarget', (event) => {
85
- switch (event.targetInfo.type) {
86
- case 'iframe':
87
- break;
88
- case 'worker':
89
- break;
90
- default:
91
- // If we don't detach from service workers, they will never die.
92
- // We still want to attach to workers for emitting events.
93
- // We still want to attach to iframes so sessions may interact with them.
94
- // We detach from all other types out of an abundance of caution.
95
- // 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
96
- // for the complete list of available types.
97
- client
98
- .send('Target.detachFromTarget', {
99
- sessionId: event.sessionId,
100
- })
101
- .catch((err) => logger_1.Log.error({ indent, logLevel }, err));
102
- }
103
- });
104
- client.on('Runtime.consoleAPICalled', (event) => {
105
- return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onConsoleAPI).call(this, event);
106
- });
107
- client.on('Runtime.bindingCalled', (event) => {
108
- return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onBindingCalled).call(this, event);
109
- });
110
- client.on('Inspector.targetCrashed', () => {
111
- return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onTargetCrashed).call(this);
112
- });
113
- client.on('Log.entryAdded', (event) => {
114
- return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onLogEntryAdded).call(this, event);
115
- });
116
- this.on('console', (log) => {
117
- var _a;
76
+ _Page_onConsole.set(this, (log) => {
77
+ var _a, _b;
118
78
  const { url, columnNumber, lineNumber } = log.location();
79
+ const logLevel = this.logLevel;
80
+ const indent = this.indent;
119
81
  if (shouldHideWarning(log)) {
120
82
  return;
121
83
  }
84
+ (_a = this.onBrowserLog) === null || _a === void 0 ? void 0 : _a.call(this, {
85
+ stackTrace: log.stackTrace(),
86
+ text: log.text,
87
+ type: log.type,
88
+ });
122
89
  if ((url === null || url === void 0 ? void 0 : url.endsWith(no_react_1.NoReactInternals.bundleName)) &&
123
90
  lineNumber &&
124
91
  this.sourceMapGetter()) {
125
- const origPosition = (_a = this.sourceMapGetter()) === null || _a === void 0 ? void 0 : _a.originalPositionFor({
92
+ const origPosition = (_b = this.sourceMapGetter()) === null || _b === void 0 ? void 0 : _b.originalPositionFor({
126
93
  column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : 0,
127
94
  line: lineNumber,
128
95
  });
@@ -161,6 +128,49 @@ class Page extends EventEmitter_1.EventEmitter {
161
128
  logger_1.Log.verbose({ logLevel, tag: `console.${log.type}`, indent }, log.text);
162
129
  }
163
130
  });
131
+ __classPrivateFieldSet(this, _Page_client, client, "f");
132
+ __classPrivateFieldSet(this, _Page_target, target, "f");
133
+ __classPrivateFieldSet(this, _Page_frameManager, new FrameManager_1.FrameManager(client, this, indent, logLevel), "f");
134
+ this.screenshotTaskQueue = new TaskQueue_1.TaskQueue();
135
+ this.browser = browser;
136
+ this.id = String(Math.random());
137
+ this.sourceMapGetter = sourceMapGetter;
138
+ this.logLevel = logLevel;
139
+ this.indent = indent;
140
+ this.pageIndex = pageIndex;
141
+ this.onBrowserLog = onBrowserLog;
142
+ client.on('Target.attachedToTarget', (event) => {
143
+ switch (event.targetInfo.type) {
144
+ case 'iframe':
145
+ break;
146
+ case 'worker':
147
+ break;
148
+ default:
149
+ // If we don't detach from service workers, they will never die.
150
+ // We still want to attach to workers for emitting events.
151
+ // We still want to attach to iframes so sessions may interact with them.
152
+ // We detach from all other types out of an abundance of caution.
153
+ // 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
154
+ // for the complete list of available types.
155
+ client
156
+ .send('Target.detachFromTarget', {
157
+ sessionId: event.sessionId,
158
+ })
159
+ .catch((err) => logger_1.Log.error({ indent, logLevel }, err));
160
+ }
161
+ });
162
+ client.on('Runtime.consoleAPICalled', (event) => {
163
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onConsoleAPI).call(this, event);
164
+ });
165
+ client.on('Runtime.bindingCalled', (event) => {
166
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onBindingCalled).call(this, event);
167
+ });
168
+ client.on('Inspector.targetCrashed', () => {
169
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onTargetCrashed).call(this);
170
+ });
171
+ client.on('Log.entryAdded', (event) => {
172
+ return __classPrivateFieldGet(this, _Page_instances, "m", _Page_onLogEntryAdded).call(this, event);
173
+ });
164
174
  }
165
175
  /**
166
176
  * Listen to page events.
@@ -277,7 +287,7 @@ class Page extends EventEmitter_1.EventEmitter {
277
287
  }
278
288
  }
279
289
  exports.Page = Page;
280
- _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() {
290
+ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSettings = new WeakMap(), _Page_frameManager = new WeakMap(), _Page_pageBindings = new WeakMap(), _Page_onConsole = new WeakMap(), _Page_instances = new WeakSet(), _Page_initialize = async function _Page_initialize() {
281
291
  await Promise.all([
282
292
  __classPrivateFieldGet(this, _Page_frameManager, "f").initialize(),
283
293
  __classPrivateFieldGet(this, _Page_client, "f").send('Target.setAutoAttach', {
@@ -291,6 +301,7 @@ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSetting
291
301
  }, _Page_onTargetCrashed = function _Page_onTargetCrashed() {
292
302
  this.emit('error', new Error('Page crashed!'));
293
303
  }, _Page_onLogEntryAdded = function _Page_onLogEntryAdded(event) {
304
+ var _a;
294
305
  const { level, text, args, source, url, lineNumber } = event.entry;
295
306
  if (args) {
296
307
  args.map((arg) => {
@@ -305,13 +316,19 @@ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSetting
305
316
  .join(', ')
306
317
  : '';
307
318
  if (source !== 'worker') {
308
- this.emit("console" /* PageEmittedEvents.Console */, new ConsoleMessage_1.ConsoleMessage({
319
+ const message = new ConsoleMessage_1.ConsoleMessage({
309
320
  type: level,
310
321
  text,
311
322
  args: [],
312
323
  stackTraceLocations: [{ url, lineNumber }],
313
324
  previewString,
314
- }));
325
+ });
326
+ (_a = this.onBrowserLog) === null || _a === void 0 ? void 0 : _a.call(this, {
327
+ stackTrace: message.stackTrace(),
328
+ text: message.text,
329
+ type: message.type,
330
+ });
331
+ __classPrivateFieldGet(this, _Page_onConsole, "f").call(this, message);
315
332
  }
316
333
  }, _Page_onConsoleAPI = function _Page_onConsoleAPI(event) {
317
334
  if (event.executionContextId === 0) {
@@ -356,12 +373,6 @@ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSetting
356
373
  contextId: event.executionContextId,
357
374
  });
358
375
  }, _Page_addConsoleMessage = function _Page_addConsoleMessage(eventType, args, stackTrace) {
359
- if (!this.listenerCount("console" /* PageEmittedEvents.Console */)) {
360
- args.forEach((arg) => {
361
- return arg.dispose();
362
- });
363
- return;
364
- }
365
376
  const textTokens = [];
366
377
  for (const arg of args) {
367
378
  const remoteObject = arg._remoteObject;
@@ -393,5 +404,5 @@ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSetting
393
404
  stackTraceLocations,
394
405
  previewString,
395
406
  });
396
- this.emit("console" /* PageEmittedEvents.Console */, message);
407
+ __classPrivateFieldGet(this, _Page_onConsole, "f").call(this, message);
397
408
  };
@@ -13,6 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { BrowserLog } from '../browser-log';
16
17
  import type { LogLevel } from '../log-level';
17
18
  import type { BrowserContext, HeadlessBrowser } from './Browser';
18
19
  import { Page } from './BrowserPage';
@@ -37,11 +38,12 @@ export declare class Target {
37
38
  /**
38
39
  * If the target is not of type `"page"` or `"background_page"`, returns `null`.
39
40
  */
40
- page({ sourceMapGetter, logLevel, indent, pageIndex, }: {
41
+ page({ sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, }: {
41
42
  sourceMapGetter: SourceMapGetter;
42
43
  logLevel: LogLevel;
43
44
  indent: boolean;
44
45
  pageIndex: number;
46
+ onBrowserLog: null | ((log: BrowserLog) => void);
45
47
  }): Promise<Page | null>;
46
48
  expectPage(): Promise<Page | null>;
47
49
  url(): string;
@@ -79,7 +79,7 @@ class Target {
79
79
  /**
80
80
  * If the target is not of type `"page"` or `"background_page"`, returns `null`.
81
81
  */
82
- async page({ sourceMapGetter, logLevel, indent, pageIndex, }) {
82
+ async page({ sourceMapGetter, logLevel, indent, pageIndex, onBrowserLog, }) {
83
83
  var _a;
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) => {
@@ -93,6 +93,7 @@ class Target {
93
93
  logLevel,
94
94
  indent,
95
95
  pageIndex,
96
+ onBrowserLog,
96
97
  });
97
98
  }), "f");
98
99
  }