@pagepocket/puppeteer-adapter 0.6.1

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,23 @@
1
+ import type { InterceptSession, InterceptTarget, NetworkEventHandlers, NetworkInterceptorAdapter, TriggerAction } from "@pagepocket/interceptor";
2
+ import { type Browser, type GoToOptions, type LaunchOptions, type Page } from "puppeteer";
3
+ export type PuppeteerAdapterOptions = {
4
+ browser?: Browser;
5
+ page?: Page;
6
+ launch?: (options?: LaunchOptions) => Promise<Browser>;
7
+ launchOptions?: LaunchOptions;
8
+ gotoOptions?: GoToOptions;
9
+ triggerActions?: TriggerAction[];
10
+ };
11
+ export declare class PuppeteerAdapter implements NetworkInterceptorAdapter {
12
+ readonly name = "puppeteer";
13
+ readonly capabilities: {
14
+ canGetResponseBody: boolean;
15
+ canStreamResponseBody: boolean;
16
+ canGetRequestBody: boolean;
17
+ providesResourceType: boolean;
18
+ };
19
+ private options;
20
+ constructor(options?: PuppeteerAdapterOptions);
21
+ start(target: InterceptTarget, handlers: NetworkEventHandlers, _options?: Record<string, unknown>): Promise<InterceptSession>;
22
+ }
23
+ //# 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,EAKzB,aAAa,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAkB,EAChB,KAAK,OAAO,EACZ,KAAK,WAAW,EAGhB,KAAK,aAAa,EAClB,KAAK,IAAI,EACV,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC,CAAC;AA8FF,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,YAAY;;;;;MAKnB;IAEF,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,GAAE,uBAA4B;IAI3C,KAAK,CACT,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,gBAAgB,CAAC;CAsJ7B"}
package/dist/index.js ADDED
@@ -0,0 +1,226 @@
1
+ import puppeteer from "puppeteer";
2
+ const normalizeHeaders = (headers) => {
3
+ const output = {};
4
+ for (const key in headers) {
5
+ const value = headers[key];
6
+ if (value === undefined)
7
+ continue;
8
+ output[key] = typeof value === "string" ? value : String(value);
9
+ }
10
+ return output;
11
+ };
12
+ const getHeaderValue = (headers, name) => {
13
+ const target = name.toLowerCase();
14
+ for (const key in headers) {
15
+ if (key.toLowerCase() === target) {
16
+ return headers[key];
17
+ }
18
+ }
19
+ return undefined;
20
+ };
21
+ const getFrameId = (request) => {
22
+ const frame = request.frame();
23
+ if (!frame)
24
+ return undefined;
25
+ const frameRef = frame;
26
+ if (frameRef._id)
27
+ return frameRef._id;
28
+ if (frameRef._frameId)
29
+ return frameRef._frameId;
30
+ if (typeof frameRef.id === "function")
31
+ return frameRef.id();
32
+ return undefined;
33
+ };
34
+ const getInitiator = (request) => {
35
+ const requestRef = request;
36
+ const initiator = requestRef.initiator?.();
37
+ if (!initiator)
38
+ return undefined;
39
+ return {
40
+ type: initiator.type,
41
+ url: initiator.url
42
+ };
43
+ };
44
+ const toResourceType = (request) => {
45
+ const type = request.resourceType?.();
46
+ return type ? type : undefined;
47
+ };
48
+ const runTriggerActions = async (page, actions = []) => {
49
+ if (actions.length === 0)
50
+ return;
51
+ await page.evaluate((actionsArg) => {
52
+ const hoverAll = () => {
53
+ const elements = Array.from(document.querySelectorAll("*"));
54
+ const trigger = (el) => {
55
+ const rect = el.getBoundingClientRect();
56
+ const x = rect.left + rect.width / 2;
57
+ const y = rect.top + rect.height / 2;
58
+ const event = new MouseEvent("mouseover", {
59
+ bubbles: true,
60
+ cancelable: true,
61
+ clientX: x,
62
+ clientY: y
63
+ });
64
+ el.dispatchEvent(event);
65
+ };
66
+ elements.forEach(trigger);
67
+ };
68
+ const scrollToEnd = () => {
69
+ const scrollHeight = document.documentElement?.scrollHeight ?? document.body?.scrollHeight;
70
+ if (typeof scrollHeight === "number") {
71
+ window.scrollTo({ top: scrollHeight, behavior: "instant" });
72
+ }
73
+ };
74
+ for (const action of actionsArg) {
75
+ if (action === "HOVER") {
76
+ hoverAll();
77
+ }
78
+ if (action === "SCROLL_TO_END") {
79
+ scrollToEnd();
80
+ }
81
+ }
82
+ }, actions);
83
+ };
84
+ export class PuppeteerAdapter {
85
+ constructor(options = {}) {
86
+ this.name = "puppeteer";
87
+ this.capabilities = {
88
+ canGetResponseBody: true,
89
+ canStreamResponseBody: false,
90
+ canGetRequestBody: false,
91
+ providesResourceType: true
92
+ };
93
+ this.options = options;
94
+ }
95
+ async start(target, handlers, _options) {
96
+ let browser = this.options.browser;
97
+ let page = this.options.page;
98
+ let ownsBrowser = false;
99
+ let ownsPage = false;
100
+ if (target.kind === "puppeteer-page") {
101
+ page = target.page;
102
+ }
103
+ else if (target.kind === "url") {
104
+ if (!page) {
105
+ if (!browser) {
106
+ const doLaunch = this.options.launch ?? puppeteer.launch;
107
+ browser = await doLaunch(this.options.launchOptions);
108
+ ownsBrowser = true;
109
+ }
110
+ page = await browser.newPage();
111
+ ownsPage = true;
112
+ }
113
+ }
114
+ else {
115
+ throw new Error("PuppeteerAdapter only supports url or puppeteer-page targets.");
116
+ }
117
+ if (!page || typeof page.on !== "function") {
118
+ throw new Error("PuppeteerAdapter requires a Puppeteer Page instance.");
119
+ }
120
+ const requestIds = new WeakMap();
121
+ let requestSequence = 0;
122
+ const getRequestId = (request) => {
123
+ const existing = requestIds.get(request);
124
+ if (existing) {
125
+ return existing;
126
+ }
127
+ const requestId = `pptr-${Date.now()}-${requestSequence++}`;
128
+ requestIds.set(request, requestId);
129
+ return requestId;
130
+ };
131
+ const emitRequest = (request, timestamp) => {
132
+ const requestEvent = {
133
+ type: "request",
134
+ requestId: getRequestId(request),
135
+ url: request.url(),
136
+ method: request.method(),
137
+ headers: normalizeHeaders(request.headers()),
138
+ frameId: getFrameId(request),
139
+ resourceType: toResourceType(request),
140
+ initiator: getInitiator(request),
141
+ timestamp
142
+ };
143
+ handlers.onEvent(requestEvent);
144
+ };
145
+ const onRequest = (request) => {
146
+ const timestamp = Date.now();
147
+ emitRequest(request, timestamp);
148
+ };
149
+ const onResponse = (response) => {
150
+ const timestamp = Date.now();
151
+ const request = response.request();
152
+ if (!requestIds.has(request)) {
153
+ emitRequest(request, timestamp);
154
+ }
155
+ const headers = normalizeHeaders(response.headers());
156
+ const responseEvent = {
157
+ type: "response",
158
+ requestId: getRequestId(request),
159
+ url: response.url(),
160
+ status: response.status(),
161
+ statusText: response.statusText(),
162
+ headers,
163
+ mimeType: getHeaderValue(headers, "content-type"),
164
+ fromDiskCache: response.fromCache(),
165
+ fromServiceWorker: response.fromServiceWorker(),
166
+ timestamp,
167
+ body: {
168
+ kind: "late",
169
+ read: async () => {
170
+ try {
171
+ const buffer = await response.buffer();
172
+ return new Uint8Array(buffer);
173
+ }
174
+ catch (error) {
175
+ handlers.onError?.(error);
176
+ return new Uint8Array();
177
+ }
178
+ }
179
+ }
180
+ };
181
+ handlers.onEvent(responseEvent);
182
+ };
183
+ const onRequestFailed = (request) => {
184
+ const timestamp = Date.now();
185
+ const failure = request.failure?.();
186
+ const hadRequest = requestIds.has(request);
187
+ const requestId = getRequestId(request);
188
+ if (!hadRequest) {
189
+ emitRequest(request, timestamp);
190
+ }
191
+ const failedEvent = {
192
+ type: "failed",
193
+ requestId,
194
+ url: request.url(),
195
+ errorText: failure?.errorText ?? "Request failed",
196
+ timestamp
197
+ };
198
+ handlers.onEvent(failedEvent);
199
+ };
200
+ page.on("request", onRequest);
201
+ page.on("response", onResponse);
202
+ page.on("requestfailed", onRequestFailed);
203
+ const navigate = async (url, options) => {
204
+ await page.goto(url, {
205
+ ...this.options.gotoOptions,
206
+ ...options
207
+ });
208
+ await runTriggerActions(page, this.options.triggerActions);
209
+ };
210
+ return {
211
+ navigate: target.kind === "url" ? navigate : undefined,
212
+ stop: async () => {
213
+ page.off("request", onRequest);
214
+ page.off("response", onResponse);
215
+ page.off("requestfailed", onRequestFailed);
216
+ if (ownsPage) {
217
+ await page.close();
218
+ }
219
+ if (ownsBrowser && browser) {
220
+ await browser.close();
221
+ }
222
+ }
223
+ };
224
+ }
225
+ }
226
+ //# 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 ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@pagepocket/puppeteer-adapter",
3
+ "version": "0.6.1",
4
+ "description": "Puppeteer adapter for PagePocket network interception.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "dependencies": {
12
+ "puppeteer": "^22.12.1",
13
+ "@pagepocket/interceptor": "0.6.1"
14
+ },
15
+ "devDependencies": {
16
+ "@types/node": "^20.17.12",
17
+ "tsx": "^4.21.0",
18
+ "typescript": "^5.7.2"
19
+ },
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json",
22
+ "test": "tsx --test specs/*.spec.ts"
23
+ }
24
+ }