@remotion/renderer 4.1.0-alpha3 → 4.1.0-alpha5
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/dist/browser/Browser.d.ts +7 -6
- package/dist/browser/Browser.js +13 -13
- package/dist/browser/BrowserPage.d.ts +13 -2
- package/dist/browser/BrowserPage.js +45 -13
- package/dist/browser/BrowserRunner.js +2 -2
- package/dist/browser/Connection.d.ts +9 -3
- package/dist/browser/Connection.js +11 -3
- package/dist/browser/ConsoleMessage.d.ts +8 -1
- package/dist/browser/ConsoleMessage.js +2 -1
- package/dist/browser/ExecutionContext.js +4 -4
- package/dist/browser/FrameManager.js +2 -2
- package/dist/browser/LaunchOptions.d.ts +2 -0
- package/dist/browser/Launcher.js +2 -1
- package/dist/browser/NetworkManager.d.ts +4 -1
- package/dist/browser/Target.d.ts +2 -1
- package/dist/browser/Target.js +3 -1
- package/dist/browser/devtools-types.d.ts +59 -0
- package/dist/browser/should-log-message.js +8 -0
- package/dist/chalk/index.d.ts +2 -1
- package/dist/chalk/index.js +3 -8
- package/dist/chalk/is-color-supported.d.ts +1 -1
- package/dist/chalk/is-color-supported.js +18 -10
- package/dist/compositor/compositor.d.ts +3 -2
- package/dist/compositor/compositor.js +6 -5
- package/dist/create-ffmpeg-merge-filter.js +1 -2
- package/dist/cycle-browser-tabs.d.ts +2 -1
- package/dist/cycle-browser-tabs.js +2 -2
- package/dist/format-logs.d.ts +3 -0
- package/dist/format-logs.js +201 -0
- package/dist/get-browser-instance.d.ts +3 -2
- package/dist/get-browser-instance.js +5 -5
- package/dist/get-compositions.d.ts +6 -5
- package/dist/get-compositions.js +7 -6
- package/dist/index.d.ts +21 -19
- package/dist/logger.d.ts +1 -2
- package/dist/logger.js +7 -12
- package/dist/offthread-video-server.d.ts +3 -2
- package/dist/offthread-video-server.js +4 -3
- package/dist/open-browser.d.ts +3 -2
- package/dist/open-browser.js +7 -5
- package/dist/perf.js +4 -2
- package/dist/prepare-server.d.ts +3 -2
- package/dist/prepare-server.js +4 -4
- package/dist/prespawn-ffmpeg.d.ts +2 -1
- package/dist/prespawn-ffmpeg.js +2 -30
- package/dist/puppeteer-evaluate.d.ts +4 -1
- package/dist/puppeteer-evaluate.js +5 -5
- package/dist/render-frames.d.ts +14 -7
- package/dist/render-frames.js +18 -14
- package/dist/render-media.d.ts +14 -7
- package/dist/render-media.js +12 -14
- package/dist/render-still.d.ts +11 -5
- package/dist/render-still.js +11 -11
- package/dist/replace-browser.d.ts +2 -1
- package/dist/replace-browser.js +2 -2
- package/dist/screenshot-task.js +4 -2
- package/dist/seek-to-frame.js +1 -1
- package/dist/select-composition.d.ts +9 -4
- package/dist/select-composition.js +15 -14
- package/dist/serve-static.d.ts +2 -1
- package/dist/serve-static.js +1 -1
- package/dist/set-props-and-env.js +5 -5
- package/dist/stitch-frames-to-video.d.ts +2 -1
- package/dist/stitch-frames-to-video.js +12 -22
- package/dist/take-frame-and-compose.js +1 -1
- package/package.json +9 -9
|
@@ -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 type { LogLevel } from '../log-level';
|
|
16
17
|
import type { AnySourceMapConsumer } from '../symbolicate-stacktrace';
|
|
17
18
|
import type { Page } from './BrowserPage';
|
|
18
19
|
import type { Connection } from './Connection';
|
|
@@ -40,12 +41,12 @@ export declare class HeadlessBrowser extends EventEmitter {
|
|
|
40
41
|
get _targets(): Map<string, Target>;
|
|
41
42
|
constructor(connection: Connection, defaultViewport: Viewport, closeCallback?: BrowserCloseCallback);
|
|
42
43
|
browserContexts(): BrowserContext[];
|
|
43
|
-
newPage(context: AnySourceMapConsumer | null): Promise<Page>;
|
|
44
|
-
_createPageInContext(context: AnySourceMapConsumer | null): Promise<Page>;
|
|
44
|
+
newPage(context: AnySourceMapConsumer | null, logLevel: LogLevel, indent: boolean): Promise<Page>;
|
|
45
|
+
_createPageInContext(context: AnySourceMapConsumer | null, logLevel: LogLevel, indent: boolean): Promise<Page>;
|
|
45
46
|
targets(): Target[];
|
|
46
47
|
waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: WaitForTargetOptions): Promise<Target>;
|
|
47
|
-
pages(): Promise<Page[]>;
|
|
48
|
-
close(silent: boolean): Promise<void>;
|
|
48
|
+
pages(logLevel: LogLevel, indent: boolean): Promise<Page[]>;
|
|
49
|
+
close(silent: boolean, logLevel: LogLevel, indent: boolean): Promise<void>;
|
|
49
50
|
disconnect(): void;
|
|
50
51
|
}
|
|
51
52
|
export declare class BrowserContext extends EventEmitter {
|
|
@@ -55,8 +56,8 @@ export declare class BrowserContext extends EventEmitter {
|
|
|
55
56
|
waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: {
|
|
56
57
|
timeout?: number;
|
|
57
58
|
}): Promise<Target>;
|
|
58
|
-
pages(): Promise<Page[]>;
|
|
59
|
-
newPage(context: AnySourceMapConsumer | null): Promise<Page>;
|
|
59
|
+
pages(logLevel: LogLevel, indent: boolean): Promise<Page[]>;
|
|
60
|
+
newPage(context: AnySourceMapConsumer | null, logLevel: LogLevel, indent: boolean): Promise<Page>;
|
|
60
61
|
browser(): HeadlessBrowser;
|
|
61
62
|
}
|
|
62
63
|
export {};
|
package/dist/browser/Browser.js
CHANGED
|
@@ -65,11 +65,11 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
65
65
|
browserContexts() {
|
|
66
66
|
return [__classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").values())];
|
|
67
67
|
}
|
|
68
|
-
newPage(context) {
|
|
69
|
-
return __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f").newPage(context);
|
|
68
|
+
newPage(context, logLevel, indent) {
|
|
69
|
+
return __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f").newPage(context, logLevel, indent);
|
|
70
70
|
}
|
|
71
|
-
async _createPageInContext(context) {
|
|
72
|
-
const { targetId } = await this.connection.send('Target.createTarget', {
|
|
71
|
+
async _createPageInContext(context, logLevel, indent) {
|
|
72
|
+
const { value: { targetId }, } = await this.connection.send('Target.createTarget', {
|
|
73
73
|
url: 'about:blank',
|
|
74
74
|
browserContextId: undefined,
|
|
75
75
|
});
|
|
@@ -81,7 +81,7 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
81
81
|
if (!initialized) {
|
|
82
82
|
throw new Error(`Failed to create target for page (id = ${targetId})`);
|
|
83
83
|
}
|
|
84
|
-
const page = await target.page(context);
|
|
84
|
+
const page = await target.page(context, logLevel, indent);
|
|
85
85
|
if (!page) {
|
|
86
86
|
throw new Error(`Failed to create a page for context`);
|
|
87
87
|
}
|
|
@@ -119,18 +119,18 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
async pages() {
|
|
122
|
+
async pages(logLevel, indent) {
|
|
123
123
|
const contextPages = await Promise.all(this.browserContexts().map((context) => {
|
|
124
|
-
return context.pages();
|
|
124
|
+
return context.pages(logLevel, indent);
|
|
125
125
|
}));
|
|
126
126
|
// Flatten array.
|
|
127
127
|
return contextPages.reduce((acc, x) => {
|
|
128
128
|
return acc.concat(x);
|
|
129
129
|
}, []);
|
|
130
130
|
}
|
|
131
|
-
async close(silent) {
|
|
131
|
+
async close(silent, logLevel, indent) {
|
|
132
132
|
await __classPrivateFieldGet(this, _HeadlessBrowser_closeCallback, "f").call(null);
|
|
133
|
-
(await this.pages()).forEach((page) => {
|
|
133
|
+
(await this.pages(logLevel, indent)).forEach((page) => {
|
|
134
134
|
page.emit("disposed" /* PageEmittedEvents.Disposed */);
|
|
135
135
|
page.closed = true;
|
|
136
136
|
});
|
|
@@ -196,16 +196,16 @@ class BrowserContext extends EventEmitter_1.EventEmitter {
|
|
|
196
196
|
return target.browserContext() === this && predicate(target);
|
|
197
197
|
}, options);
|
|
198
198
|
}
|
|
199
|
-
async pages() {
|
|
199
|
+
async pages(logLevel, indent) {
|
|
200
200
|
const pages = await Promise.all(this.targets()
|
|
201
201
|
.filter((target) => target.type() === 'page')
|
|
202
|
-
.map((target) => target.page(null)));
|
|
202
|
+
.map((target) => target.page(null, logLevel, indent)));
|
|
203
203
|
return pages.filter((page) => {
|
|
204
204
|
return Boolean(page);
|
|
205
205
|
});
|
|
206
206
|
}
|
|
207
|
-
newPage(context) {
|
|
208
|
-
return __classPrivateFieldGet(this, _BrowserContext_browser, "f")._createPageInContext(context);
|
|
207
|
+
newPage(context, logLevel, indent) {
|
|
208
|
+
return __classPrivateFieldGet(this, _BrowserContext_browser, "f")._createPageInContext(context, logLevel, indent);
|
|
209
209
|
}
|
|
210
210
|
browser() {
|
|
211
211
|
return __classPrivateFieldGet(this, _BrowserContext_browser, "f");
|
|
@@ -25,6 +25,7 @@ import type { JSHandle } from './JSHandle';
|
|
|
25
25
|
import type { Viewport } from './PuppeteerViewport';
|
|
26
26
|
import type { Target } from './Target';
|
|
27
27
|
import { TaskQueue } from './TaskQueue';
|
|
28
|
+
import type { LogLevel } from '../log-level';
|
|
28
29
|
interface WaitForOptions {
|
|
29
30
|
timeout?: number;
|
|
30
31
|
}
|
|
@@ -41,18 +42,28 @@ interface PageEventObject {
|
|
|
41
42
|
export declare class Page extends EventEmitter {
|
|
42
43
|
#private;
|
|
43
44
|
id: string;
|
|
44
|
-
static _create({ client, target, defaultViewport, browser, sourcemapContext, }: {
|
|
45
|
+
static _create({ client, target, defaultViewport, browser, sourcemapContext, logLevel, indent, }: {
|
|
45
46
|
client: CDPSession;
|
|
46
47
|
target: Target;
|
|
47
48
|
defaultViewport: Viewport;
|
|
48
49
|
browser: HeadlessBrowser;
|
|
49
50
|
sourcemapContext: AnySourceMapConsumer | null;
|
|
51
|
+
logLevel: LogLevel;
|
|
52
|
+
indent: boolean;
|
|
50
53
|
}): Promise<Page>;
|
|
51
54
|
closed: boolean;
|
|
52
55
|
browser: HeadlessBrowser;
|
|
53
56
|
screenshotTaskQueue: TaskQueue;
|
|
54
57
|
sourcemapContext: AnySourceMapConsumer | null;
|
|
55
|
-
|
|
58
|
+
logLevel: LogLevel;
|
|
59
|
+
constructor({ client, target, browser, sourcemapContext, logLevel, indent, }: {
|
|
60
|
+
client: CDPSession;
|
|
61
|
+
target: Target;
|
|
62
|
+
browser: HeadlessBrowser;
|
|
63
|
+
sourcemapContext: AnySourceMapConsumer | null;
|
|
64
|
+
logLevel: LogLevel;
|
|
65
|
+
indent: boolean;
|
|
66
|
+
});
|
|
56
67
|
/**
|
|
57
68
|
* Listen to page events.
|
|
58
69
|
*/
|
|
@@ -39,14 +39,22 @@ const JSHandle_1 = require("./JSHandle");
|
|
|
39
39
|
const TaskQueue_1 = require("./TaskQueue");
|
|
40
40
|
const TimeoutSettings_1 = require("./TimeoutSettings");
|
|
41
41
|
const util_1 = require("./util");
|
|
42
|
+
const format_logs_1 = require("../format-logs");
|
|
42
43
|
class Page extends EventEmitter_1.EventEmitter {
|
|
43
|
-
static async _create({ client, target, defaultViewport, browser, sourcemapContext, }) {
|
|
44
|
-
const page = new Page(
|
|
44
|
+
static async _create({ client, target, defaultViewport, browser, sourcemapContext, logLevel, indent, }) {
|
|
45
|
+
const page = new Page({
|
|
46
|
+
client,
|
|
47
|
+
target,
|
|
48
|
+
browser,
|
|
49
|
+
sourcemapContext,
|
|
50
|
+
logLevel,
|
|
51
|
+
indent,
|
|
52
|
+
});
|
|
45
53
|
await __classPrivateFieldGet(page, _Page_instances, "m", _Page_initialize).call(page);
|
|
46
54
|
await page.setViewport(defaultViewport);
|
|
47
55
|
return page;
|
|
48
56
|
}
|
|
49
|
-
constructor(client, target, browser, sourcemapContext) {
|
|
57
|
+
constructor({ client, target, browser, sourcemapContext, logLevel, indent, }) {
|
|
50
58
|
super();
|
|
51
59
|
_Page_instances.add(this);
|
|
52
60
|
this.closed = false;
|
|
@@ -62,6 +70,7 @@ class Page extends EventEmitter_1.EventEmitter {
|
|
|
62
70
|
this.browser = browser;
|
|
63
71
|
this.id = String(Math.random());
|
|
64
72
|
this.sourcemapContext = sourcemapContext;
|
|
73
|
+
this.logLevel = logLevel;
|
|
65
74
|
client.on('Target.attachedToTarget', (event) => {
|
|
66
75
|
switch (event.targetInfo.type) {
|
|
67
76
|
case 'iframe':
|
|
@@ -112,14 +121,13 @@ class Page extends EventEmitter_1.EventEmitter {
|
|
|
112
121
|
.filter(truthy_1.truthy)
|
|
113
122
|
.join(':');
|
|
114
123
|
logger_1.Log.verboseAdvanced({
|
|
115
|
-
logLevel
|
|
116
|
-
tag:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}, log.text);
|
|
124
|
+
logLevel,
|
|
125
|
+
tag: [origPosition.name, file].filter(truthy_1.truthy).join('@'),
|
|
126
|
+
indent,
|
|
127
|
+
}, log.previewString);
|
|
120
128
|
}
|
|
121
129
|
else {
|
|
122
|
-
logger_1.Log.verboseAdvanced({ logLevel
|
|
130
|
+
logger_1.Log.verboseAdvanced({ logLevel, tag: `console.${log.type}`, indent }, log.text);
|
|
123
131
|
}
|
|
124
132
|
});
|
|
125
133
|
}
|
|
@@ -157,8 +165,8 @@ class Page extends EventEmitter_1.EventEmitter {
|
|
|
157
165
|
mainFrame() {
|
|
158
166
|
return __classPrivateFieldGet(this, _Page_frameManager, "f").mainFrame();
|
|
159
167
|
}
|
|
160
|
-
setViewport(viewport) {
|
|
161
|
-
|
|
168
|
+
async setViewport(viewport) {
|
|
169
|
+
const { value } = await __classPrivateFieldGet(this, _Page_client, "f").send('Emulation.setDeviceMetricsOverride', {
|
|
162
170
|
mobile: false,
|
|
163
171
|
width: viewport.width,
|
|
164
172
|
height: viewport.height,
|
|
@@ -168,6 +176,7 @@ class Page extends EventEmitter_1.EventEmitter {
|
|
|
168
176
|
type: 'portraitPrimary',
|
|
169
177
|
},
|
|
170
178
|
});
|
|
179
|
+
return value;
|
|
171
180
|
}
|
|
172
181
|
setDefaultNavigationTimeout(timeout) {
|
|
173
182
|
__classPrivateFieldGet(this, _Page_timeoutSettings, "f").setDefaultNavigationTimeout(timeout);
|
|
@@ -238,8 +247,21 @@ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSetting
|
|
|
238
247
|
return (0, util_1.releaseObject)(__classPrivateFieldGet(this, _Page_client, "f"), arg);
|
|
239
248
|
});
|
|
240
249
|
}
|
|
250
|
+
const previewString = args
|
|
251
|
+
? args
|
|
252
|
+
.map((arg) => {
|
|
253
|
+
return (0, format_logs_1.formatRemoteObject)(arg);
|
|
254
|
+
})
|
|
255
|
+
.join(', ')
|
|
256
|
+
: '';
|
|
241
257
|
if (source !== 'worker') {
|
|
242
|
-
this.emit("console" /* PageEmittedEvents.Console */, new ConsoleMessage_1.ConsoleMessage(
|
|
258
|
+
this.emit("console" /* PageEmittedEvents.Console */, new ConsoleMessage_1.ConsoleMessage({
|
|
259
|
+
type: level,
|
|
260
|
+
text,
|
|
261
|
+
args: [],
|
|
262
|
+
stackTraceLocations: [{ url, lineNumber }],
|
|
263
|
+
previewString,
|
|
264
|
+
}));
|
|
243
265
|
}
|
|
244
266
|
}, _Page_onConsoleAPI = function _Page_onConsoleAPI(event) {
|
|
245
267
|
if (event.executionContextId === 0) {
|
|
@@ -310,6 +332,16 @@ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSetting
|
|
|
310
332
|
});
|
|
311
333
|
}
|
|
312
334
|
}
|
|
313
|
-
const
|
|
335
|
+
const previewString = args
|
|
336
|
+
.map((a) => (0, format_logs_1.formatRemoteObject)(a._remoteObject))
|
|
337
|
+
.filter(Boolean)
|
|
338
|
+
.join(' ');
|
|
339
|
+
const message = new ConsoleMessage_1.ConsoleMessage({
|
|
340
|
+
type: eventType,
|
|
341
|
+
text: textTokens.join(' '),
|
|
342
|
+
args,
|
|
343
|
+
stackTraceLocations,
|
|
344
|
+
previewString,
|
|
345
|
+
});
|
|
314
346
|
this.emit("console" /* PageEmittedEvents.Console */, message);
|
|
315
347
|
};
|
|
@@ -103,7 +103,7 @@ class BrowserRunner {
|
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
const { output, tag } = formatted;
|
|
106
|
-
logger_1.Log.verboseAdvanced({ indent: options.indent, logLevel:
|
|
106
|
+
logger_1.Log.verboseAdvanced({ indent: options.indent, logLevel: options.logLevel, tag }, output);
|
|
107
107
|
}
|
|
108
108
|
});
|
|
109
109
|
(_b = this.proc.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (d) => {
|
|
@@ -114,7 +114,7 @@ class BrowserRunner {
|
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
const { output, tag } = formatted;
|
|
117
|
-
logger_1.Log.verboseAdvanced({ indent: options.indent, logLevel:
|
|
117
|
+
logger_1.Log.verboseAdvanced({ indent: options.indent, logLevel: options.logLevel, tag }, output);
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
}
|
|
@@ -7,7 +7,10 @@ export declare class Connection extends EventEmitter {
|
|
|
7
7
|
constructor(transport: NodeWebSocketTransport);
|
|
8
8
|
static fromSession(session: CDPSession): Connection | undefined;
|
|
9
9
|
session(sessionId: string): CDPSession | null;
|
|
10
|
-
send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<
|
|
10
|
+
send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<{
|
|
11
|
+
value: Commands[T]['returnType'];
|
|
12
|
+
size: number;
|
|
13
|
+
}>;
|
|
11
14
|
_rawSend(message: Record<string, unknown>): number;
|
|
12
15
|
dispose(): void;
|
|
13
16
|
/**
|
|
@@ -34,8 +37,11 @@ export declare class CDPSession extends EventEmitter {
|
|
|
34
37
|
#private;
|
|
35
38
|
constructor(connection: Connection, targetType: string, sessionId: string);
|
|
36
39
|
connection(): Connection | undefined;
|
|
37
|
-
send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<
|
|
38
|
-
|
|
40
|
+
send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<{
|
|
41
|
+
value: Commands[T]['returnType'];
|
|
42
|
+
size: number;
|
|
43
|
+
}>;
|
|
44
|
+
_onMessage(object: CDPSessionOnMessageObject, size: number): void;
|
|
39
45
|
_onClosed(): void;
|
|
40
46
|
id(): string;
|
|
41
47
|
}
|
|
@@ -68,6 +68,7 @@ class Connection extends EventEmitter_1.EventEmitter {
|
|
|
68
68
|
reject,
|
|
69
69
|
error: new Errors_1.ProtocolError(),
|
|
70
70
|
method,
|
|
71
|
+
returnSize: true,
|
|
71
72
|
});
|
|
72
73
|
});
|
|
73
74
|
}
|
|
@@ -87,7 +88,7 @@ class Connection extends EventEmitter_1.EventEmitter {
|
|
|
87
88
|
* @returns The CDP session that is created
|
|
88
89
|
*/
|
|
89
90
|
async createSession(targetInfo) {
|
|
90
|
-
const { sessionId } = await this.send('Target.attachToTarget', {
|
|
91
|
+
const { value: { sessionId }, } = await this.send('Target.attachToTarget', {
|
|
91
92
|
targetId: targetInfo.targetId,
|
|
92
93
|
flatten: true,
|
|
93
94
|
});
|
|
@@ -126,7 +127,7 @@ _Connection_transport = new WeakMap(), _Connection_lastId = new WeakMap(), _Conn
|
|
|
126
127
|
if (object.sessionId) {
|
|
127
128
|
const session = __classPrivateFieldGet(this, _Connection_sessions, "f").get(object.sessionId);
|
|
128
129
|
if (session) {
|
|
129
|
-
session._onMessage(object);
|
|
130
|
+
session._onMessage(object, message.length);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
else if (object.id) {
|
|
@@ -137,6 +138,9 @@ _Connection_transport = new WeakMap(), _Connection_lastId = new WeakMap(), _Conn
|
|
|
137
138
|
if (object.error) {
|
|
138
139
|
callback.reject(createProtocolError(callback.error, callback.method, object));
|
|
139
140
|
}
|
|
141
|
+
else if (callback.returnSize) {
|
|
142
|
+
callback.resolve({ value: object.result, size: message.length });
|
|
143
|
+
}
|
|
140
144
|
else {
|
|
141
145
|
callback.resolve(object.result);
|
|
142
146
|
}
|
|
@@ -195,16 +199,20 @@ class CDPSession extends EventEmitter_1.EventEmitter {
|
|
|
195
199
|
reject,
|
|
196
200
|
error: new Errors_1.ProtocolError(),
|
|
197
201
|
method,
|
|
202
|
+
returnSize: true,
|
|
198
203
|
});
|
|
199
204
|
});
|
|
200
205
|
}
|
|
201
|
-
_onMessage(object) {
|
|
206
|
+
_onMessage(object, size) {
|
|
202
207
|
const callback = object.id ? __classPrivateFieldGet(this, _CDPSession_callbacks, "f").get(object.id) : undefined;
|
|
203
208
|
if (object.id && callback) {
|
|
204
209
|
__classPrivateFieldGet(this, _CDPSession_callbacks, "f").delete(object.id);
|
|
205
210
|
if (object.error) {
|
|
206
211
|
callback.reject(createProtocolError(callback.error, callback.method, object));
|
|
207
212
|
}
|
|
213
|
+
else if (callback.returnSize) {
|
|
214
|
+
callback.resolve({ value: object.result, size });
|
|
215
|
+
}
|
|
208
216
|
else {
|
|
209
217
|
callback.resolve(object.result);
|
|
210
218
|
}
|
|
@@ -25,7 +25,14 @@ export declare class ConsoleMessage {
|
|
|
25
25
|
type: ConsoleMessageType;
|
|
26
26
|
text: string;
|
|
27
27
|
args: JSHandle[];
|
|
28
|
-
|
|
28
|
+
previewString: string;
|
|
29
|
+
constructor({ type, text, args, stackTraceLocations, previewString, }: {
|
|
30
|
+
type: ConsoleMessageType;
|
|
31
|
+
text: string;
|
|
32
|
+
args: JSHandle[];
|
|
33
|
+
stackTraceLocations: ConsoleMessageLocation[];
|
|
34
|
+
previewString: string;
|
|
35
|
+
});
|
|
29
36
|
location(): ConsoleMessageLocation;
|
|
30
37
|
stackTrace(): ConsoleMessageLocation[];
|
|
31
38
|
}
|
|
@@ -29,11 +29,12 @@ var _ConsoleMessage_stackTraceLocations;
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.ConsoleMessage = void 0;
|
|
31
31
|
class ConsoleMessage {
|
|
32
|
-
constructor(type, text, args, stackTraceLocations) {
|
|
32
|
+
constructor({ type, text, args, stackTraceLocations, previewString, }) {
|
|
33
33
|
_ConsoleMessage_stackTraceLocations.set(this, void 0);
|
|
34
34
|
this.type = type;
|
|
35
35
|
this.text = text;
|
|
36
36
|
this.args = args;
|
|
37
|
+
this.previewString = previewString;
|
|
37
38
|
__classPrivateFieldSet(this, _ConsoleMessage_stackTraceLocations, stackTraceLocations, "f");
|
|
38
39
|
}
|
|
39
40
|
location() {
|
|
@@ -55,7 +55,7 @@ _ExecutionContext_instances = new WeakSet(), _ExecutionContext_evaluate = async
|
|
|
55
55
|
const expressionWithSourceUrl = SOURCE_URL_REGEX.test(expression)
|
|
56
56
|
? expression
|
|
57
57
|
: expression + '\n' + suffix;
|
|
58
|
-
const { exceptionDetails: _details, result: _remoteObject } = await this._client
|
|
58
|
+
const { value: { exceptionDetails: _details, result: _remoteObject }, } = await this._client
|
|
59
59
|
.send('Runtime.evaluate', {
|
|
60
60
|
expression: expressionWithSourceUrl,
|
|
61
61
|
contextId,
|
|
@@ -114,7 +114,7 @@ _ExecutionContext_instances = new WeakSet(), _ExecutionContext_evaluate = async
|
|
|
114
114
|
}
|
|
115
115
|
throw error;
|
|
116
116
|
}
|
|
117
|
-
const { exceptionDetails, result: remoteObject } = await callFunctionOnPromise.catch(rewriteError);
|
|
117
|
+
const { value: { exceptionDetails, result: remoteObject }, } = await callFunctionOnPromise.catch(rewriteError);
|
|
118
118
|
if (exceptionDetails) {
|
|
119
119
|
throw new Error('Evaluation failed: ' + (0, util_1.getExceptionMessage)(exceptionDetails));
|
|
120
120
|
}
|
|
@@ -160,10 +160,10 @@ _ExecutionContext_instances = new WeakSet(), _ExecutionContext_evaluate = async
|
|
|
160
160
|
}
|
|
161
161
|
function rewriteError(error) {
|
|
162
162
|
if (error.message.includes('Object reference chain is too long')) {
|
|
163
|
-
return { result: { type: 'undefined' } };
|
|
163
|
+
return { value: { result: { type: 'undefined' } }, size: 1 };
|
|
164
164
|
}
|
|
165
165
|
if (error.message.includes("Object couldn't be returned by value")) {
|
|
166
|
-
return { result: { type: 'undefined' } };
|
|
166
|
+
return { value: { result: { type: 'undefined' } }, size: 1 };
|
|
167
167
|
}
|
|
168
168
|
if (error.message.endsWith('Cannot find context with specified id') ||
|
|
169
169
|
error.message.endsWith('Inspected target navigated or closed')) {
|
|
@@ -122,7 +122,7 @@ class FrameManager extends EventEmitter_1.EventEmitter {
|
|
|
122
122
|
flatten: true,
|
|
123
123
|
}),
|
|
124
124
|
]);
|
|
125
|
-
const { frameTree } = result[1];
|
|
125
|
+
const { value: { frameTree }, } = result[1];
|
|
126
126
|
__classPrivateFieldGet(this, _FrameManager_instances, "m", _FrameManager_handleFrameTree).call(this, client, frameTree);
|
|
127
127
|
await Promise.all([
|
|
128
128
|
client.send('Page.setLifecycleEventsEnabled', { enabled: true }),
|
|
@@ -166,7 +166,7 @@ class FrameManager extends EventEmitter_1.EventEmitter {
|
|
|
166
166
|
return watcher.navigationResponse();
|
|
167
167
|
async function navigate(client, _url, referrer, frameId) {
|
|
168
168
|
try {
|
|
169
|
-
const response = await client.send('Page.navigate', {
|
|
169
|
+
const { value: response } = await client.send('Page.navigate', {
|
|
170
170
|
url: _url,
|
|
171
171
|
referrer,
|
|
172
172
|
frameId,
|
|
@@ -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 type { LogLevel } from '../log-level';
|
|
16
17
|
import type { BrowserConnectOptions } from './BrowserConnector';
|
|
17
18
|
import type { Product } from './Product';
|
|
18
19
|
export interface BrowserLaunchArgumentOptions {
|
|
@@ -26,6 +27,7 @@ export interface LaunchOptions {
|
|
|
26
27
|
executablePath?: string;
|
|
27
28
|
timeout?: number;
|
|
28
29
|
dumpio?: boolean;
|
|
30
|
+
logLevel: LogLevel;
|
|
29
31
|
env?: Record<string, string | undefined>;
|
|
30
32
|
product?: Product;
|
|
31
33
|
indent: boolean;
|
package/dist/browser/Launcher.js
CHANGED
|
@@ -84,6 +84,7 @@ class ChromeLauncher {
|
|
|
84
84
|
dumpio,
|
|
85
85
|
env,
|
|
86
86
|
indent,
|
|
87
|
+
logLevel: options.logLevel,
|
|
87
88
|
});
|
|
88
89
|
let browser;
|
|
89
90
|
try {
|
|
@@ -107,7 +108,7 @@ class ChromeLauncher {
|
|
|
107
108
|
}, { timeout });
|
|
108
109
|
}
|
|
109
110
|
catch (error) {
|
|
110
|
-
await browser.close(false);
|
|
111
|
+
await browser.close(false, options.logLevel, options.indent);
|
|
111
112
|
throw error;
|
|
112
113
|
}
|
|
113
114
|
return browser;
|
|
@@ -20,7 +20,10 @@ export declare const NetworkManagerEmittedEvents: {
|
|
|
20
20
|
readonly Request: symbol;
|
|
21
21
|
};
|
|
22
22
|
interface CDPSession extends EventEmitter {
|
|
23
|
-
send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<
|
|
23
|
+
send<T extends keyof Commands>(method: T, ...paramArgs: Commands[T]['paramsType']): Promise<{
|
|
24
|
+
value: Commands[T]['returnType'];
|
|
25
|
+
size: number;
|
|
26
|
+
}>;
|
|
24
27
|
}
|
|
25
28
|
interface FrameManager {
|
|
26
29
|
frame(frameId: string): Frame | null;
|
package/dist/browser/Target.d.ts
CHANGED
|
@@ -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 type { LogLevel } from '../log-level';
|
|
16
17
|
import type { AnySourceMapConsumer } from '../symbolicate-stacktrace';
|
|
17
18
|
import type { BrowserContext, HeadlessBrowser } from './Browser';
|
|
18
19
|
import { Page } from './BrowserPage';
|
|
@@ -36,7 +37,7 @@ export declare class Target {
|
|
|
36
37
|
/**
|
|
37
38
|
* If the target is not of type `"page"` or `"background_page"`, returns `null`.
|
|
38
39
|
*/
|
|
39
|
-
page(sourcemapContext: AnySourceMapConsumer | null): Promise<Page | null>;
|
|
40
|
+
page(sourcemapContext: AnySourceMapConsumer | null, logLevel: LogLevel, indent: boolean): Promise<Page | null>;
|
|
40
41
|
url(): string;
|
|
41
42
|
/**
|
|
42
43
|
* Identifies what kind of target this is.
|
package/dist/browser/Target.js
CHANGED
|
@@ -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(sourcemapContext) {
|
|
82
|
+
async page(sourcemapContext, logLevel, indent) {
|
|
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) => {
|
|
@@ -90,6 +90,8 @@ class Target {
|
|
|
90
90
|
defaultViewport: (_a = __classPrivateFieldGet(this, _Target_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null,
|
|
91
91
|
browser: this.browser(),
|
|
92
92
|
sourcemapContext,
|
|
93
|
+
logLevel,
|
|
94
|
+
indent,
|
|
93
95
|
});
|
|
94
96
|
}), "f");
|
|
95
97
|
}
|
|
@@ -44,6 +44,65 @@ export interface DevtoolsRemoteObject {
|
|
|
44
44
|
* Unique object identifier (for non-primitive values).
|
|
45
45
|
*/
|
|
46
46
|
objectId?: RemoteObjectId;
|
|
47
|
+
preview?: ObjectPreview;
|
|
48
|
+
}
|
|
49
|
+
export interface ObjectPreview {
|
|
50
|
+
/**
|
|
51
|
+
* Object type. (ObjectPreviewType enum)
|
|
52
|
+
*/
|
|
53
|
+
type: 'object' | 'function' | 'undefined' | 'string' | 'number' | 'boolean' | 'symbol' | 'bigint';
|
|
54
|
+
/**
|
|
55
|
+
* Object subtype hint. Specified for `object` type values only. (ObjectPreviewSubtype enum)
|
|
56
|
+
*/
|
|
57
|
+
subtype?: 'array' | 'null' | 'node' | 'regexp' | 'date' | 'map' | 'set' | 'weakmap' | 'weakset' | 'iterator' | 'generator' | 'error' | 'proxy' | 'promise' | 'typedarray' | 'arraybuffer' | 'dataview' | 'webassemblymemory' | 'wasmvalue';
|
|
58
|
+
/**
|
|
59
|
+
* String representation of the object.
|
|
60
|
+
*/
|
|
61
|
+
description?: string;
|
|
62
|
+
/**
|
|
63
|
+
* True iff some of the properties or entries of the original object did not fit.
|
|
64
|
+
*/
|
|
65
|
+
overflow: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* List of the properties.
|
|
68
|
+
*/
|
|
69
|
+
properties: PropertyPreview[];
|
|
70
|
+
/**
|
|
71
|
+
* List of the entries. Specified for `map` and `set` subtype values only.
|
|
72
|
+
*/
|
|
73
|
+
entries?: EntryPreview[];
|
|
74
|
+
}
|
|
75
|
+
export interface EntryPreview {
|
|
76
|
+
/**
|
|
77
|
+
* Preview of the key. Specified for map-like collection entries.
|
|
78
|
+
*/
|
|
79
|
+
key?: ObjectPreview;
|
|
80
|
+
/**
|
|
81
|
+
* Preview of the value.
|
|
82
|
+
*/
|
|
83
|
+
value: ObjectPreview;
|
|
84
|
+
}
|
|
85
|
+
export interface PropertyPreview {
|
|
86
|
+
/**
|
|
87
|
+
* Property name.
|
|
88
|
+
*/
|
|
89
|
+
name: string;
|
|
90
|
+
/**
|
|
91
|
+
* Object type. Accessor means that the property itself is an accessor property. (PropertyPreviewType enum)
|
|
92
|
+
*/
|
|
93
|
+
type: 'object' | 'function' | 'undefined' | 'string' | 'number' | 'boolean' | 'symbol' | 'accessor' | 'bigint';
|
|
94
|
+
/**
|
|
95
|
+
* User-friendly property value string.
|
|
96
|
+
*/
|
|
97
|
+
value?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Nested value preview.
|
|
100
|
+
*/
|
|
101
|
+
valuePreview?: ObjectPreview;
|
|
102
|
+
/**
|
|
103
|
+
* Object subtype hint. Specified for `object` type values only. (PropertyPreviewSubtype enum)
|
|
104
|
+
*/
|
|
105
|
+
subtype?: 'array' | 'null' | 'node' | 'regexp' | 'date' | 'map' | 'set' | 'weakmap' | 'weakset' | 'iterator' | 'generator' | 'error' | 'proxy' | 'promise' | 'typedarray' | 'arraybuffer' | 'dataview' | 'webassemblymemory' | 'wasmvalue';
|
|
47
106
|
}
|
|
48
107
|
type TargetID = string;
|
|
49
108
|
export interface TargetInfo {
|
|
@@ -6,6 +6,14 @@ const shouldLogBrowserMessage = (message) => {
|
|
|
6
6
|
if (message.startsWith('DevTools listening on')) {
|
|
7
7
|
return false;
|
|
8
8
|
}
|
|
9
|
+
// In Ubuntu GitHub Action
|
|
10
|
+
if (message.includes('Falling back to ALSA for audio output')) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
// In Ubuntu GitHub Action
|
|
14
|
+
if (message.includes('Floss manager not present, cannot set Floss enable/disable')) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
9
17
|
// Noisy but harmless warning
|
|
10
18
|
if (message.includes('Failed to send GpuControl.CreateCommandBuffer')) {
|
|
11
19
|
return false;
|
package/dist/chalk/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ type Style = {
|
|
|
5
5
|
};
|
|
6
6
|
type Method = (str: string) => string;
|
|
7
7
|
type Colors = {
|
|
8
|
-
enabled: boolean;
|
|
8
|
+
enabled: () => boolean;
|
|
9
9
|
visible: boolean;
|
|
10
10
|
styles: Record<string, Style>;
|
|
11
11
|
keys: Record<string, string[]>;
|
|
@@ -26,6 +26,7 @@ type ColorsWithMethods = Colors & {
|
|
|
26
26
|
yellow: Method;
|
|
27
27
|
blue: Method;
|
|
28
28
|
magenta: Method;
|
|
29
|
+
cyan: Method;
|
|
29
30
|
white: Method;
|
|
30
31
|
gray: Method;
|
|
31
32
|
bgBlack: Method;
|
package/dist/chalk/index.js
CHANGED
|
@@ -2,15 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.chalk = void 0;
|
|
4
4
|
const is_color_supported_1 = require("./is-color-supported");
|
|
5
|
-
const hasColor = () => {
|
|
6
|
-
if (typeof process !== 'undefined' && process.env.FORCE_COLOR) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
return is_color_supported_1.isColorSupported;
|
|
10
|
-
};
|
|
11
5
|
exports.chalk = (() => {
|
|
12
6
|
const colors = {
|
|
13
|
-
enabled:
|
|
7
|
+
enabled: () => (0, is_color_supported_1.isColorSupported)(),
|
|
14
8
|
visible: true,
|
|
15
9
|
styles: {},
|
|
16
10
|
keys: {},
|
|
@@ -37,7 +31,7 @@ exports.chalk = (() => {
|
|
|
37
31
|
const style = (input, stack) => {
|
|
38
32
|
if (input === '' || input === null || input === undefined)
|
|
39
33
|
return '';
|
|
40
|
-
if (colors.enabled === false)
|
|
34
|
+
if (colors.enabled() === false)
|
|
41
35
|
return input;
|
|
42
36
|
if (colors.visible === false)
|
|
43
37
|
return '';
|
|
@@ -81,6 +75,7 @@ exports.chalk = (() => {
|
|
|
81
75
|
define('yellow', [33, 39], 'color');
|
|
82
76
|
define('blue', [34, 39], 'color');
|
|
83
77
|
define('magenta', [35, 39], 'color');
|
|
78
|
+
define('cyan', [36, 39], 'color');
|
|
84
79
|
define('white', [37, 39], 'color');
|
|
85
80
|
define('gray', [90, 39], 'color');
|
|
86
81
|
define('grey', [90, 39], 'color');
|