@pagepocket/cdp-adapter 0.5.0 → 0.6.0

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.
@@ -0,0 +1,55 @@
1
+ import type { InterceptSession, InterceptTarget, NetworkEventHandlers, NetworkInterceptorAdapter } from "@pagepocket/lib";
2
+ type CdpClient = {
3
+ send?: (method: string, params?: Record<string, unknown>) => Promise<unknown>;
4
+ on?: (event: string, listener: (payload: unknown) => void) => void;
5
+ off?: (event: string, listener: (payload: unknown) => void) => void;
6
+ close?: () => Promise<void>;
7
+ Network?: {
8
+ enable?: (params?: Record<string, unknown>) => Promise<void>;
9
+ disable?: () => Promise<void>;
10
+ getResponseBody?: (params: {
11
+ requestId: string;
12
+ }) => Promise<{
13
+ body: string;
14
+ base64Encoded?: boolean;
15
+ }>;
16
+ requestWillBeSent?: (listener: (payload: unknown) => void) => void;
17
+ responseReceived?: (listener: (payload: unknown) => void) => void;
18
+ loadingFailed?: (listener: (payload: unknown) => void) => void;
19
+ loadingFinished?: (listener: (payload: unknown) => void) => void;
20
+ };
21
+ Page?: {
22
+ enable?: () => Promise<void>;
23
+ navigate?: (params: {
24
+ url: string;
25
+ }) => Promise<void>;
26
+ getResourceContent?: (params: {
27
+ frameId: string;
28
+ url: string;
29
+ }) => Promise<{
30
+ content: string;
31
+ base64Encoded?: boolean;
32
+ }>;
33
+ };
34
+ };
35
+ export type CdpAdapterOptions = {
36
+ protocolVersion?: string;
37
+ clientFactory?: (options?: {
38
+ tabId: number;
39
+ protocolVersion: string;
40
+ }) => Promise<CdpClient> | CdpClient;
41
+ };
42
+ export declare class CdpAdapter implements NetworkInterceptorAdapter {
43
+ readonly name = "cdp";
44
+ readonly capabilities: {
45
+ canGetResponseBody: boolean;
46
+ canStreamResponseBody: boolean;
47
+ canGetRequestBody: boolean;
48
+ providesResourceType: boolean;
49
+ };
50
+ private options;
51
+ constructor(options?: CdpAdapterOptions);
52
+ start(target: InterceptTarget, handlers: NetworkEventHandlers, _options?: Record<string, unknown>): Promise<InterceptSession>;
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EAK1B,MAAM,iBAAiB,CAAC;AAmCzB,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACnE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC;YAC3D,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC,CAAC;QACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;QACnE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;QAClE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;QAC/D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;KAClE,CAAC;IACF,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE;YAC5B,OAAO,EAAE,MAAM,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC;SACb,KAAK,OAAO,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;KACzB,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CACtC,CAAC;AAsRF,qBAAa,UAAW,YAAW,yBAAyB;IAC1D,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,YAAY;;;;;MAKnB;IAEF,OAAO,CAAC,OAAO,CAAoB;gBAEvB,OAAO,GAAE,iBAAsB;IAIrC,KAAK,CACT,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,gBAAgB,CAAC;CA+U7B"}
package/dist/index.js ADDED
@@ -0,0 +1,502 @@
1
+ const decodeBase64 = (input) => {
2
+ const bufferCtor = globalThis.Buffer;
3
+ if (bufferCtor) {
4
+ return new Uint8Array(bufferCtor.from(input, "base64"));
5
+ }
6
+ const binary = atob(input);
7
+ const bytes = new Uint8Array(binary.length);
8
+ for (let i = 0; i < binary.length; i += 1) {
9
+ bytes[i] = binary.charCodeAt(i);
10
+ }
11
+ return bytes;
12
+ };
13
+ const encodeUtf8 = (input) => new TextEncoder().encode(input);
14
+ const normalizeHeaders = (headers) => {
15
+ const output = {};
16
+ if (!headers)
17
+ return output;
18
+ for (const key of Object.keys(headers)) {
19
+ const value = headers[key];
20
+ if (value === undefined || value === null)
21
+ continue;
22
+ output[key] = Array.isArray(value) ? value.join(", ") : String(value);
23
+ }
24
+ return output;
25
+ };
26
+ const mapResourceType = (input) => {
27
+ if (!input)
28
+ return undefined;
29
+ const normalized = input.toLowerCase();
30
+ switch (normalized) {
31
+ case "document":
32
+ return "document";
33
+ case "stylesheet":
34
+ return "stylesheet";
35
+ case "script":
36
+ return "script";
37
+ case "image":
38
+ return "image";
39
+ case "font":
40
+ return "font";
41
+ case "media":
42
+ return "media";
43
+ case "xhr":
44
+ return "xhr";
45
+ case "fetch":
46
+ return "fetch";
47
+ case "other":
48
+ return "other";
49
+ default:
50
+ return normalized;
51
+ }
52
+ };
53
+ const inferResourceTypeFromMime = (mimeType) => {
54
+ if (!mimeType)
55
+ return undefined;
56
+ const normalized = mimeType.toLowerCase();
57
+ if (normalized.includes("text/html") || normalized.includes("application/xhtml+xml")) {
58
+ return "document";
59
+ }
60
+ if (normalized.includes("text/css")) {
61
+ return "stylesheet";
62
+ }
63
+ if (normalized.includes("javascript") || normalized.includes("ecmascript")) {
64
+ return "script";
65
+ }
66
+ if (normalized.startsWith("image/")) {
67
+ return "image";
68
+ }
69
+ if (normalized.startsWith("font/") ||
70
+ normalized.includes("woff") ||
71
+ normalized.includes("ttf") ||
72
+ normalized.includes("otf")) {
73
+ return "font";
74
+ }
75
+ if (normalized.startsWith("audio/") || normalized.startsWith("video/")) {
76
+ return "media";
77
+ }
78
+ return undefined;
79
+ };
80
+ const callCdp = async (client, method, params) => {
81
+ if (typeof client.send === "function") {
82
+ return (await client.send(method, params));
83
+ }
84
+ const [domain, command] = method.split(".");
85
+ const domainApi = client[domain];
86
+ const fn = domainApi?.[command];
87
+ if (typeof fn === "function") {
88
+ return (await fn(params));
89
+ }
90
+ throw new Error(`CDP session missing method ${method}.`);
91
+ };
92
+ const subscribe = (client, eventName, handler) => {
93
+ if (typeof client.on === "function") {
94
+ client.on(eventName, handler);
95
+ return () => client.off?.(eventName, handler);
96
+ }
97
+ const [domain, event] = eventName.split(".");
98
+ const domainApi = client[domain];
99
+ const fn = domainApi?.[event];
100
+ if (typeof fn === "function") {
101
+ fn(handler);
102
+ return () => undefined;
103
+ }
104
+ throw new Error(`CDP session missing event ${eventName}.`);
105
+ };
106
+ const isNoBodyError = (error) => {
107
+ const message = error instanceof Error ? error.message : String(error);
108
+ return message.includes("No data found for resource with given identifier");
109
+ };
110
+ const logInfo = (label, data) => {
111
+ console.info(`[pagepocket][cdp-adapter] ${label} ${JSON.stringify(data)}`);
112
+ };
113
+ const getChromeGlobal = () => globalThis.chrome;
114
+ const createChromeDebuggerClient = (target, protocolVersion) => {
115
+ const chromeGlobal = getChromeGlobal();
116
+ const chromeDebugger = chromeGlobal?.debugger;
117
+ if (!chromeDebugger) {
118
+ throw new Error("chrome.debugger API is not available in this environment.");
119
+ }
120
+ const chromeRuntime = chromeGlobal?.runtime;
121
+ let attached = false;
122
+ let closed = false;
123
+ const listeners = new Map();
124
+ const assertNoLastError = (action) => {
125
+ const lastError = chromeRuntime?.lastError;
126
+ if (lastError?.message) {
127
+ throw new Error(`${action} failed: ${lastError.message}`);
128
+ }
129
+ };
130
+ const attach = () => new Promise((resolve, reject) => {
131
+ chromeDebugger.attach(target, protocolVersion, () => {
132
+ try {
133
+ assertNoLastError("chrome.debugger.attach");
134
+ attached = true;
135
+ resolve();
136
+ }
137
+ catch (error) {
138
+ reject(error);
139
+ }
140
+ });
141
+ });
142
+ const detach = () => new Promise((resolve, reject) => {
143
+ chromeDebugger.detach(target, () => {
144
+ try {
145
+ assertNoLastError("chrome.debugger.detach");
146
+ attached = false;
147
+ resolve();
148
+ }
149
+ catch (error) {
150
+ reject(error);
151
+ }
152
+ });
153
+ });
154
+ const ensureAttached = async () => {
155
+ if (attached)
156
+ return;
157
+ await attach();
158
+ };
159
+ return {
160
+ send: async (method, params) => {
161
+ await ensureAttached();
162
+ return new Promise((resolve, reject) => {
163
+ chromeDebugger.sendCommand(target, method, params ?? {}, (result) => {
164
+ try {
165
+ assertNoLastError(`chrome.debugger.sendCommand(${method})`);
166
+ resolve(result);
167
+ }
168
+ catch (error) {
169
+ reject(error);
170
+ }
171
+ });
172
+ });
173
+ },
174
+ on: (event, listener) => {
175
+ const handler = (source, method, params) => {
176
+ if (source.tabId !== target.tabId)
177
+ return;
178
+ if (method !== event)
179
+ return;
180
+ listener(params);
181
+ };
182
+ listeners.set(listener, handler);
183
+ chromeDebugger.onEvent.addListener(handler);
184
+ },
185
+ off: (_event, listener) => {
186
+ const handler = listeners.get(listener);
187
+ if (!handler)
188
+ return;
189
+ listeners.delete(listener);
190
+ chromeDebugger.onEvent.removeListener(handler);
191
+ },
192
+ close: async () => {
193
+ if (closed)
194
+ return;
195
+ closed = true;
196
+ if (!attached)
197
+ return;
198
+ await detach();
199
+ }
200
+ };
201
+ };
202
+ export class CdpAdapter {
203
+ constructor(options = {}) {
204
+ this.name = "cdp";
205
+ this.capabilities = {
206
+ canGetResponseBody: true,
207
+ canStreamResponseBody: false,
208
+ canGetRequestBody: false,
209
+ providesResourceType: true
210
+ };
211
+ this.options = options;
212
+ }
213
+ async start(target, handlers, _options) {
214
+ if (target.kind !== "cdp-tab") {
215
+ throw new Error("CdpAdapter only supports cdp-tab targets.");
216
+ }
217
+ const protocolVersion = this.options.protocolVersion ?? "1.3";
218
+ const clientFactory = this.options.clientFactory;
219
+ const client = (await clientFactory?.({ tabId: target.tabId, protocolVersion })) ??
220
+ createChromeDebuggerClient({ tabId: target.tabId }, protocolVersion);
221
+ const ownsClient = true;
222
+ await callCdp(client, "Network.enable");
223
+ const activeRequestId = new Map();
224
+ const requestSequence = new Map();
225
+ const requestUrls = new Map();
226
+ const requestInfo = new Map();
227
+ const requestEvents = new Map();
228
+ const responses = new Map();
229
+ const requestTimeOffsets = new Map();
230
+ let globalTimeOffset = null;
231
+ const getLogicalRequestId = (cdpRequestId) => activeRequestId.get(cdpRequestId) ?? `${cdpRequestId}:0`;
232
+ const resolveTimestampMs = (payload, requestId) => {
233
+ if (typeof payload.wallTime === "number") {
234
+ if (typeof payload.timestamp === "number") {
235
+ const offset = payload.wallTime - payload.timestamp;
236
+ if (requestId) {
237
+ requestTimeOffsets.set(requestId, offset);
238
+ }
239
+ globalTimeOffset = offset;
240
+ }
241
+ return payload.wallTime * 1000;
242
+ }
243
+ if (typeof payload.timestamp === "number") {
244
+ const offset = (requestId ? requestTimeOffsets.get(requestId) : undefined) ?? globalTimeOffset;
245
+ if (typeof offset === "number") {
246
+ return (payload.timestamp + offset) * 1000;
247
+ }
248
+ }
249
+ return Date.now();
250
+ };
251
+ const handleRequestWillBeSent = (payload) => {
252
+ const cdpRequestId = payload.requestId;
253
+ const eventTimestamp = resolveTimestampMs(payload, cdpRequestId);
254
+ if (payload.redirectResponse) {
255
+ const previousRequestId = getLogicalRequestId(cdpRequestId);
256
+ const redirectResponse = payload.redirectResponse;
257
+ const redirectEvent = {
258
+ type: "response",
259
+ requestId: previousRequestId,
260
+ url: redirectResponse.url,
261
+ status: redirectResponse.status,
262
+ statusText: redirectResponse.statusText,
263
+ headers: normalizeHeaders(redirectResponse.headers),
264
+ mimeType: redirectResponse.mimeType,
265
+ fromDiskCache: redirectResponse.fromDiskCache,
266
+ fromServiceWorker: redirectResponse.fromServiceWorker,
267
+ timestamp: eventTimestamp
268
+ };
269
+ handlers.onEvent(redirectEvent);
270
+ }
271
+ const sequence = (requestSequence.get(cdpRequestId) ?? -1) + 1;
272
+ requestSequence.set(cdpRequestId, sequence);
273
+ const logicalRequestId = `${cdpRequestId}:${sequence}`;
274
+ activeRequestId.set(cdpRequestId, logicalRequestId);
275
+ const url = payload.request.url;
276
+ requestUrls.set(logicalRequestId, url);
277
+ requestInfo.set(cdpRequestId, {
278
+ url,
279
+ frameId: payload.frameId,
280
+ resourceType: mapResourceType(payload.type),
281
+ initiator: payload.initiator
282
+ });
283
+ const requestEvent = {
284
+ type: "request",
285
+ requestId: logicalRequestId,
286
+ url,
287
+ method: payload.request.method || "GET",
288
+ headers: normalizeHeaders(payload.request.headers),
289
+ frameId: payload.frameId,
290
+ resourceType: mapResourceType(payload.type),
291
+ initiator: payload.initiator,
292
+ timestamp: eventTimestamp
293
+ };
294
+ requestEvents.set(cdpRequestId, requestEvent);
295
+ handlers.onEvent(requestEvent);
296
+ };
297
+ const handleResponseReceived = (payload) => {
298
+ const cdpRequestId = payload.requestId;
299
+ const logicalRequestId = getLogicalRequestId(cdpRequestId);
300
+ const eventTimestamp = resolveTimestampMs(payload, cdpRequestId);
301
+ const response = payload.response;
302
+ if (!requestUrls.has(logicalRequestId)) {
303
+ requestUrls.set(logicalRequestId, response.url);
304
+ }
305
+ const storedRequest = requestEvents.get(cdpRequestId);
306
+ const existingInfo = requestInfo.get(cdpRequestId);
307
+ const inferred = inferResourceTypeFromMime(response.mimeType);
308
+ if ((!existingInfo || !existingInfo.resourceType) && inferred) {
309
+ requestInfo.set(cdpRequestId, {
310
+ url: response.url,
311
+ frameId: existingInfo?.frameId ?? payload.frameId,
312
+ resourceType: inferred,
313
+ initiator: existingInfo?.initiator
314
+ });
315
+ }
316
+ if (!storedRequest && inferred) {
317
+ const synthesizedRequest = {
318
+ type: "request",
319
+ requestId: logicalRequestId,
320
+ url: response.url,
321
+ method: "GET",
322
+ headers: {},
323
+ frameId: payload.frameId,
324
+ resourceType: inferred,
325
+ initiator: undefined,
326
+ timestamp: eventTimestamp
327
+ };
328
+ requestEvents.set(cdpRequestId, synthesizedRequest);
329
+ handlers.onEvent(synthesizedRequest);
330
+ }
331
+ else if (storedRequest && inferred && !storedRequest.resourceType) {
332
+ const updatedRequest = {
333
+ ...storedRequest,
334
+ resourceType: inferred,
335
+ timestamp: eventTimestamp
336
+ };
337
+ requestEvents.set(cdpRequestId, updatedRequest);
338
+ handlers.onEvent(updatedRequest);
339
+ }
340
+ logInfo("response received", {
341
+ requestId: cdpRequestId,
342
+ url: response.url,
343
+ status: response.status,
344
+ mimeType: response.mimeType,
345
+ fromDiskCache: response.fromDiskCache,
346
+ fromServiceWorker: response.fromServiceWorker
347
+ });
348
+ responses.set(cdpRequestId, {
349
+ requestId: logicalRequestId,
350
+ response
351
+ });
352
+ };
353
+ const tryGetResponseBody = async (cdpRequestId) => {
354
+ try {
355
+ const result = await callCdp(client, "Network.getResponseBody", { requestId: cdpRequestId });
356
+ if (result.base64Encoded) {
357
+ return decodeBase64(result.body);
358
+ }
359
+ return encodeUtf8(result.body);
360
+ }
361
+ catch (error) {
362
+ if (isNoBodyError(error)) {
363
+ return null;
364
+ }
365
+ throw error;
366
+ }
367
+ };
368
+ const tryGetPageResourceContent = async (info) => {
369
+ if (!info.frameId || !info.url) {
370
+ return null;
371
+ }
372
+ try {
373
+ const result = await callCdp(client, "Page.getResourceContent", {
374
+ frameId: info.frameId,
375
+ url: info.url
376
+ });
377
+ if (result.base64Encoded) {
378
+ return decodeBase64(result.content);
379
+ }
380
+ return encodeUtf8(result.content);
381
+ }
382
+ catch {
383
+ return null;
384
+ }
385
+ };
386
+ const handleLoadingFinished = async (payload) => {
387
+ const cdpRequestId = payload.requestId;
388
+ const eventTimestamp = resolveTimestampMs(payload, cdpRequestId);
389
+ const storedResponse = responses.get(cdpRequestId);
390
+ if (!storedResponse) {
391
+ logInfo("loadingFinished without response", {
392
+ requestId: cdpRequestId
393
+ });
394
+ return;
395
+ }
396
+ const inferred = inferResourceTypeFromMime(storedResponse.response.mimeType);
397
+ const info = requestInfo.get(cdpRequestId);
398
+ if ((!info || !info.resourceType) && inferred) {
399
+ requestInfo.set(cdpRequestId, {
400
+ url: storedResponse.response.url,
401
+ frameId: info?.frameId,
402
+ resourceType: inferred,
403
+ initiator: info?.initiator
404
+ });
405
+ const storedRequest = requestEvents.get(cdpRequestId);
406
+ if (storedRequest && !storedRequest.resourceType) {
407
+ const updatedRequest = {
408
+ ...storedRequest,
409
+ resourceType: inferred
410
+ };
411
+ requestEvents.set(cdpRequestId, updatedRequest);
412
+ handlers.onEvent(updatedRequest);
413
+ }
414
+ }
415
+ let bodyBytes = null;
416
+ try {
417
+ bodyBytes = await tryGetResponseBody(cdpRequestId);
418
+ }
419
+ catch (error) {
420
+ handlers.onError?.(error instanceof Error ? error : new Error(String(error)));
421
+ }
422
+ if (bodyBytes && bodyBytes.byteLength === 0) {
423
+ bodyBytes = null;
424
+ }
425
+ if (!bodyBytes) {
426
+ const fallbackInfo = requestInfo.get(cdpRequestId);
427
+ if (fallbackInfo?.frameId) {
428
+ bodyBytes = await tryGetPageResourceContent(fallbackInfo);
429
+ }
430
+ }
431
+ logInfo("response body status", {
432
+ requestId: cdpRequestId,
433
+ url: storedResponse.response.url,
434
+ resourceType: requestInfo.get(cdpRequestId)?.resourceType,
435
+ bodyBytes: bodyBytes ? bodyBytes.byteLength : 0
436
+ });
437
+ const responseEvent = {
438
+ type: "response",
439
+ requestId: storedResponse.requestId,
440
+ url: storedResponse.response.url,
441
+ status: storedResponse.response.status,
442
+ statusText: storedResponse.response.statusText,
443
+ headers: normalizeHeaders(storedResponse.response.headers),
444
+ mimeType: storedResponse.response.mimeType,
445
+ fromDiskCache: storedResponse.response.fromDiskCache,
446
+ fromServiceWorker: storedResponse.response.fromServiceWorker,
447
+ timestamp: eventTimestamp,
448
+ body: bodyBytes ? { kind: "buffer", data: bodyBytes } : undefined
449
+ };
450
+ handlers.onEvent(responseEvent);
451
+ };
452
+ const handleLoadingFailed = (payload) => {
453
+ const cdpRequestId = payload.requestId;
454
+ const logicalRequestId = getLogicalRequestId(cdpRequestId);
455
+ const url = requestUrls.get(logicalRequestId) ?? "";
456
+ const failedEvent = {
457
+ type: "failed",
458
+ requestId: logicalRequestId,
459
+ url,
460
+ errorText: payload.errorText,
461
+ timestamp: resolveTimestampMs(payload, cdpRequestId)
462
+ };
463
+ handlers.onEvent(failedEvent);
464
+ };
465
+ const cleanupHandlers = [];
466
+ try {
467
+ cleanupHandlers.push(subscribe(client, "Network.requestWillBeSent", (payload) => handleRequestWillBeSent(payload)));
468
+ cleanupHandlers.push(subscribe(client, "Network.responseReceived", (payload) => handleResponseReceived(payload)));
469
+ cleanupHandlers.push(subscribe(client, "Network.loadingFailed", (payload) => handleLoadingFailed(payload)));
470
+ cleanupHandlers.push(subscribe(client, "Network.loadingFinished", (payload) => {
471
+ void handleLoadingFinished(payload);
472
+ }));
473
+ }
474
+ catch (error) {
475
+ if (error instanceof Error) {
476
+ handlers.onError?.(error);
477
+ }
478
+ throw error;
479
+ }
480
+ const ensurePageEnabled = async () => {
481
+ try {
482
+ await callCdp(client, "Page.enable");
483
+ }
484
+ catch {
485
+ // Ignore if Page domain is not available.
486
+ }
487
+ };
488
+ return {
489
+ navigate: async (url) => {
490
+ await ensurePageEnabled();
491
+ await callCdp(client, "Page.navigate", { url });
492
+ },
493
+ stop: async () => {
494
+ cleanupHandlers.forEach((cleanup) => cleanup());
495
+ if (ownsClient) {
496
+ await client.close?.();
497
+ }
498
+ }
499
+ };
500
+ }
501
+ }
502
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagepocket/cdp-adapter",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Chrome DevTools Protocol adapter for PagePocket network interception.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,8 +12,7 @@
12
12
  "dist"
13
13
  ],
14
14
  "dependencies": {
15
- "chrome-remote-interface": "^0.33.2",
16
- "@pagepocket/lib": "0.5.0"
15
+ "@pagepocket/lib": "0.6.0"
17
16
  },
18
17
  "devDependencies": {
19
18
  "@types/node": "^20.17.12",