@pagepocket/lighterceptor 0.4.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.
Files changed (42) hide show
  1. package/README.md +137 -0
  2. package/dist/examples/aggregate-requests.d.ts +2 -0
  3. package/dist/examples/aggregate-requests.d.ts.map +1 -0
  4. package/dist/examples/aggregate-requests.js +34 -0
  5. package/dist/examples/aggregate-requests.js.map +1 -0
  6. package/dist/examples/basic-lighterceptor.d.ts +2 -0
  7. package/dist/examples/basic-lighterceptor.d.ts.map +1 -0
  8. package/dist/examples/basic-lighterceptor.js +43 -0
  9. package/dist/examples/basic-lighterceptor.js.map +1 -0
  10. package/dist/examples/custom-interceptor.d.ts +2 -0
  11. package/dist/examples/custom-interceptor.d.ts.map +1 -0
  12. package/dist/examples/custom-interceptor.js +57 -0
  13. package/dist/examples/custom-interceptor.js.map +1 -0
  14. package/dist/examples/real-world-moon.d.ts +2 -0
  15. package/dist/examples/real-world-moon.d.ts.map +1 -0
  16. package/dist/examples/real-world-moon.js +69 -0
  17. package/dist/examples/real-world-moon.js.map +1 -0
  18. package/dist/examples/recursive-crawl.d.ts +2 -0
  19. package/dist/examples/recursive-crawl.d.ts.map +1 -0
  20. package/dist/examples/recursive-crawl.js +87 -0
  21. package/dist/examples/recursive-crawl.js.map +1 -0
  22. package/dist/src/dom.d.ts +9 -0
  23. package/dist/src/dom.d.ts.map +1 -0
  24. package/dist/src/dom.js +608 -0
  25. package/dist/src/dom.js.map +1 -0
  26. package/dist/src/index.d.ts +6 -0
  27. package/dist/src/index.d.ts.map +1 -0
  28. package/dist/src/index.js +3 -0
  29. package/dist/src/index.js.map +1 -0
  30. package/dist/src/lighterceptor.d.ts +40 -0
  31. package/dist/src/lighterceptor.d.ts.map +1 -0
  32. package/dist/src/lighterceptor.js +697 -0
  33. package/dist/src/lighterceptor.js.map +1 -0
  34. package/dist/src/resource-loader.d.ts +8 -0
  35. package/dist/src/resource-loader.d.ts.map +1 -0
  36. package/dist/src/resource-loader.js +43 -0
  37. package/dist/src/resource-loader.js.map +1 -0
  38. package/dist/src/types.d.ts +10 -0
  39. package/dist/src/types.d.ts.map +1 -0
  40. package/dist/src/types.js +2 -0
  41. package/dist/src/types.js.map +1 -0
  42. package/package.json +30 -0
@@ -0,0 +1,608 @@
1
+ import { JSDOM, VirtualConsole } from "jsdom";
2
+ import { configMocks, mockAnimationsApi, mockCSSTypedOM, mockIntersectionObserver, mockResizeObserver, mockViewport } from "jsdom-testing-mocks";
3
+ import { InterceptingResourceLoader } from "./resource-loader.js";
4
+ class IntersectionObserverEntryStub {
5
+ boundingClientRect;
6
+ intersectionRatio;
7
+ intersectionRect;
8
+ isIntersecting;
9
+ rootBounds;
10
+ target;
11
+ time;
12
+ constructor(target, boundingClientRect, intersectionRect, intersectionRatio, rootBounds, time, isIntersecting = intersectionRatio > 0) {
13
+ this.boundingClientRect = boundingClientRect;
14
+ this.intersectionRect = intersectionRect;
15
+ this.intersectionRatio = intersectionRatio;
16
+ this.isIntersecting = isIntersecting;
17
+ this.rootBounds = rootBounds;
18
+ this.target = target;
19
+ this.time = time;
20
+ }
21
+ }
22
+ const installJsdomTestingMocks = (window) => {
23
+ const globalWithHooks = globalThis;
24
+ const noopHook = () => { };
25
+ configMocks({
26
+ beforeAll: globalWithHooks.beforeAll ?? noopHook,
27
+ afterAll: globalWithHooks.afterAll ?? noopHook,
28
+ beforeEach: globalWithHooks.beforeEach ?? noopHook,
29
+ afterEach: globalWithHooks.afterEach ?? noopHook,
30
+ act: (trigger) => trigger()
31
+ });
32
+ const previousGlobals = {};
33
+ const setGlobal = (key, value) => {
34
+ previousGlobals[key] = globalThis[key];
35
+ globalThis[key] = value;
36
+ };
37
+ const restoreGlobals = () => {
38
+ const preserveIfUndefined = new Set(["DOMRectReadOnly", "DOMRect"]);
39
+ for (const key of Object.keys(previousGlobals)) {
40
+ const value = previousGlobals[key];
41
+ if (value === undefined) {
42
+ if (preserveIfUndefined.has(key)) {
43
+ continue;
44
+ }
45
+ delete globalThis[key];
46
+ }
47
+ else {
48
+ globalThis[key] = value;
49
+ }
50
+ }
51
+ };
52
+ try {
53
+ setGlobal("window", window);
54
+ setGlobal("document", window.document);
55
+ setGlobal("Element", window.Element);
56
+ setGlobal("Document", window.Document);
57
+ setGlobal("HTMLElement", window.HTMLElement);
58
+ setGlobal("Event", window.Event);
59
+ setGlobal("DOMRect", window.DOMRect);
60
+ setGlobal("DOMRectReadOnly", window.DOMRectReadOnly);
61
+ setGlobal("performance", window.performance);
62
+ if (typeof window.matchMedia !== "function") {
63
+ mockViewport({ width: "1024px", height: "768px" });
64
+ }
65
+ if (typeof window.IntersectionObserver !== "function") {
66
+ mockIntersectionObserver();
67
+ }
68
+ if (typeof window.IntersectionObserverEntry !== "function") {
69
+ window.IntersectionObserverEntry = IntersectionObserverEntryStub;
70
+ }
71
+ if (typeof window.ResizeObserver !== "function") {
72
+ mockResizeObserver();
73
+ }
74
+ if (typeof window.Element?.prototype.animate !== "function") {
75
+ mockAnimationsApi();
76
+ }
77
+ if (typeof window.CSS === "undefined") {
78
+ mockCSSTypedOM();
79
+ const cssGlobals = [
80
+ "CSS",
81
+ "CSSNumericValue",
82
+ "CSSUnitValue",
83
+ "CSSMathValue",
84
+ "CSSMathSum",
85
+ "CSSMathProduct",
86
+ "CSSMathNegate",
87
+ "CSSMathInvert",
88
+ "CSSMathMin",
89
+ "CSSMathMax",
90
+ "CSSMathClamp"
91
+ ];
92
+ for (const key of cssGlobals) {
93
+ const value = globalThis[key];
94
+ if (value) {
95
+ window[key] = value;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ finally {
101
+ restoreGlobals();
102
+ }
103
+ };
104
+ export function createJSDOMWithInterceptor(options) {
105
+ const resources = new InterceptingResourceLoader(options.interceptor);
106
+ const domOptions = options.domOptions ?? {};
107
+ const userBeforeParse = domOptions.beforeParse;
108
+ const virtualConsole = domOptions.virtualConsole ??
109
+ (() => {
110
+ const consoleShim = new VirtualConsole();
111
+ consoleShim.on("jsdomError", () => { });
112
+ return consoleShim;
113
+ })();
114
+ const dom = new JSDOM(options.html, {
115
+ ...domOptions,
116
+ virtualConsole,
117
+ resources,
118
+ beforeParse(window) {
119
+ if (userBeforeParse) {
120
+ userBeforeParse(window);
121
+ }
122
+ installJsdomTestingMocks(window);
123
+ if (typeof window.matchMedia !== "function") {
124
+ window.matchMedia = (query) => ({
125
+ matches: false,
126
+ media: String(query),
127
+ onchange: null,
128
+ addListener: () => { },
129
+ removeListener: () => { },
130
+ addEventListener: () => { },
131
+ removeEventListener: () => { },
132
+ dispatchEvent: () => false
133
+ });
134
+ }
135
+ if (typeof window.CanvasRenderingContext2D !== "function") {
136
+ class CanvasRenderingContext2DStub {
137
+ }
138
+ window.CanvasRenderingContext2D =
139
+ CanvasRenderingContext2DStub;
140
+ }
141
+ window.scrollBy = () => { };
142
+ window.scrollTo = () => { };
143
+ if (window.HTMLCanvasElement?.prototype) {
144
+ const canvasProto = window.HTMLCanvasElement.prototype;
145
+ canvasProto.getContext = function getContext(type) {
146
+ const normalized = String(type ?? "").toLowerCase();
147
+ if (normalized === "2d" || normalized === "bitmaprenderer") {
148
+ return new window.CanvasRenderingContext2D();
149
+ }
150
+ const glState = {
151
+ program: {},
152
+ shader: {}
153
+ };
154
+ const glStub = new Proxy({}, {
155
+ get: (_target, prop) => {
156
+ if (prop === "canvas") {
157
+ return this;
158
+ }
159
+ if (prop === "drawingBufferWidth" || prop === "drawingBufferHeight") {
160
+ return 0;
161
+ }
162
+ if (prop === "getExtension") {
163
+ return () => null;
164
+ }
165
+ if (prop === "getContextAttributes") {
166
+ return () => ({});
167
+ }
168
+ if (prop === "getShaderInfoLog" || prop === "getProgramInfoLog") {
169
+ return () => "";
170
+ }
171
+ if (prop === "getShaderParameter" || prop === "getProgramParameter") {
172
+ return () => true;
173
+ }
174
+ if (prop === "createShader") {
175
+ return () => glState.shader;
176
+ }
177
+ if (prop === "createProgram") {
178
+ return () => glState.program;
179
+ }
180
+ if (prop === "shaderSource" ||
181
+ prop === "compileShader" ||
182
+ prop === "attachShader" ||
183
+ prop === "linkProgram" ||
184
+ prop === "useProgram") {
185
+ return () => undefined;
186
+ }
187
+ if (prop === "getAttribLocation") {
188
+ return () => 0;
189
+ }
190
+ if (prop === "getUniformLocation") {
191
+ return () => ({});
192
+ }
193
+ if (typeof prop === "string" && prop === prop.toUpperCase()) {
194
+ return 0;
195
+ }
196
+ return () => null;
197
+ }
198
+ });
199
+ return glStub;
200
+ };
201
+ }
202
+ const extractCssUrls = (cssText) => {
203
+ const urls = [];
204
+ const pattern = /url\(\s*(['"]?)(.*?)\1\s*\)/gi;
205
+ let match;
206
+ while ((match = pattern.exec(cssText)) !== null) {
207
+ const url = match[2].trim();
208
+ if (url.length > 0) {
209
+ urls.push(url);
210
+ }
211
+ }
212
+ const importPattern = /@import\s+(?:url\(\s*)?(['"]?)([^'")\s]+)\1\s*\)?/gi;
213
+ while ((match = importPattern.exec(cssText)) !== null) {
214
+ const url = match[2].trim();
215
+ if (url.length > 0) {
216
+ urls.push(url);
217
+ }
218
+ }
219
+ return urls;
220
+ };
221
+ const interceptCssText = (cssText) => {
222
+ for (const url of extractCssUrls(cssText)) {
223
+ void Promise.resolve(options.interceptor(url, {
224
+ element: undefined,
225
+ referrer: window.document.URL,
226
+ source: "css"
227
+ }));
228
+ }
229
+ };
230
+ const interceptImgSrc = (url, element) => {
231
+ const imageElement = element instanceof window.HTMLImageElement ? element : undefined;
232
+ void Promise.resolve(options.interceptor(url, {
233
+ element: imageElement,
234
+ referrer: window.document.URL,
235
+ source: "img"
236
+ }));
237
+ };
238
+ const interceptResourceSrc = (url, element) => {
239
+ const iframeOrLink = element instanceof window.HTMLIFrameElement
240
+ ? element
241
+ : element instanceof window.HTMLLinkElement
242
+ ? element
243
+ : undefined;
244
+ void Promise.resolve(options.interceptor(url, {
245
+ element: iframeOrLink,
246
+ referrer: window.document.URL,
247
+ source: "resource"
248
+ }));
249
+ };
250
+ const parseSrcsetUrls = (value) => {
251
+ return value
252
+ .split(",")
253
+ .map((candidate) => candidate.trim().split(/\s+/)[0])
254
+ .filter((url) => url.length > 0);
255
+ };
256
+ const interceptSrcset = (value, element) => {
257
+ const isImage = element instanceof window.HTMLImageElement;
258
+ const source = isImage ? "img" : "resource";
259
+ for (const url of parseSrcsetUrls(value)) {
260
+ void Promise.resolve(options.interceptor(url, {
261
+ element: isImage ? element : undefined,
262
+ referrer: window.document.URL,
263
+ source
264
+ }));
265
+ }
266
+ };
267
+ const patchSrcProperty = (proto, sourceHandler) => {
268
+ const descriptor = proto ? Object.getOwnPropertyDescriptor(proto, "src") : undefined;
269
+ if (proto && descriptor?.set) {
270
+ Object.defineProperty(proto, "src", {
271
+ ...descriptor,
272
+ set(value) {
273
+ sourceHandler(String(value), this);
274
+ descriptor.set?.call(this, value);
275
+ }
276
+ });
277
+ }
278
+ };
279
+ const patchSrcsetProperty = (proto) => {
280
+ const descriptor = proto ? Object.getOwnPropertyDescriptor(proto, "srcset") : undefined;
281
+ if (proto && descriptor?.set) {
282
+ Object.defineProperty(proto, "srcset", {
283
+ ...descriptor,
284
+ set(value) {
285
+ interceptSrcset(String(value), this);
286
+ descriptor.set?.call(this, value);
287
+ }
288
+ });
289
+ }
290
+ };
291
+ const shouldInterceptLinkRel = (rel) => {
292
+ const normalized = rel.toLowerCase();
293
+ return (normalized.includes("preload") ||
294
+ normalized.includes("prefetch") ||
295
+ normalized.includes("stylesheet") ||
296
+ normalized.includes("icon"));
297
+ };
298
+ const interceptLinkHref = (link, rel) => {
299
+ if (shouldInterceptLinkRel(rel) && link.href) {
300
+ interceptResourceSrc(link.href, link);
301
+ }
302
+ };
303
+ const interceptLinkImagesrcset = (link) => {
304
+ const rel = (link.getAttribute("rel") ?? "").toLowerCase();
305
+ if (!rel.includes("preload")) {
306
+ return;
307
+ }
308
+ const imagesrcset = link.getAttribute("imagesrcset");
309
+ if (!imagesrcset) {
310
+ return;
311
+ }
312
+ for (const url of parseSrcsetUrls(imagesrcset)) {
313
+ interceptResourceSrc(url, link);
314
+ }
315
+ };
316
+ const patchAttributeProperty = (proto, property, sourceHandler) => {
317
+ const descriptor = proto ? Object.getOwnPropertyDescriptor(proto, property) : undefined;
318
+ if (proto && descriptor?.set) {
319
+ Object.defineProperty(proto, property, {
320
+ ...descriptor,
321
+ set(value) {
322
+ sourceHandler(String(value), this);
323
+ descriptor.set?.call(this, value);
324
+ }
325
+ });
326
+ }
327
+ };
328
+ const imgProto = window.HTMLImageElement?.prototype;
329
+ const srcDescriptor = imgProto ? Object.getOwnPropertyDescriptor(imgProto, "src") : undefined;
330
+ if (imgProto && srcDescriptor?.set) {
331
+ Object.defineProperty(imgProto, "src", {
332
+ ...srcDescriptor,
333
+ set(value) {
334
+ interceptImgSrc(String(value), this);
335
+ srcDescriptor.set?.call(this, value);
336
+ }
337
+ });
338
+ }
339
+ patchSrcsetProperty(imgProto);
340
+ patchSrcProperty(window.HTMLIFrameElement?.prototype, interceptResourceSrc);
341
+ patchSrcProperty(window.HTMLMediaElement?.prototype, interceptResourceSrc);
342
+ patchSrcProperty(window.HTMLSourceElement?.prototype, interceptResourceSrc);
343
+ patchSrcsetProperty(window.HTMLSourceElement?.prototype);
344
+ patchAttributeProperty(window.HTMLVideoElement?.prototype, "poster", interceptResourceSrc);
345
+ patchAttributeProperty(window.HTMLObjectElement?.prototype, "data", interceptResourceSrc);
346
+ patchSrcProperty(window.HTMLTrackElement?.prototype, interceptResourceSrc);
347
+ patchSrcProperty(window.HTMLEmbedElement?.prototype, interceptResourceSrc);
348
+ const originalSetAttribute = window.Element.prototype.setAttribute;
349
+ window.Element.prototype.setAttribute = function setAttribute(name, value) {
350
+ if (this instanceof window.HTMLImageElement && name.toLowerCase() === "src") {
351
+ interceptImgSrc(String(value), this);
352
+ }
353
+ if (this instanceof window.HTMLImageElement && name.toLowerCase() === "srcset") {
354
+ interceptSrcset(String(value), this);
355
+ }
356
+ if ((this instanceof window.HTMLIFrameElement ||
357
+ this instanceof window.HTMLVideoElement ||
358
+ this instanceof window.HTMLAudioElement ||
359
+ this instanceof window.HTMLSourceElement) &&
360
+ name.toLowerCase() === "src") {
361
+ interceptResourceSrc(String(value), this);
362
+ }
363
+ if (this instanceof window.HTMLTrackElement && name.toLowerCase() === "src") {
364
+ interceptResourceSrc(String(value), this);
365
+ }
366
+ if (this instanceof window.HTMLEmbedElement && name.toLowerCase() === "src") {
367
+ interceptResourceSrc(String(value), this);
368
+ }
369
+ if (this instanceof window.HTMLObjectElement && name.toLowerCase() === "data") {
370
+ interceptResourceSrc(String(value), this);
371
+ }
372
+ if (this instanceof window.HTMLVideoElement && name.toLowerCase() === "poster") {
373
+ interceptResourceSrc(String(value), this);
374
+ }
375
+ if (this instanceof window.HTMLSourceElement && name === "srcset") {
376
+ interceptSrcset(String(value), this);
377
+ }
378
+ if (this instanceof window.HTMLLinkElement) {
379
+ const lowerName = name.toLowerCase();
380
+ if (lowerName === "href") {
381
+ const rel = (this.getAttribute("rel") ?? "").toLowerCase();
382
+ if (shouldInterceptLinkRel(rel)) {
383
+ interceptResourceSrc(String(value), this);
384
+ }
385
+ }
386
+ if (lowerName === "rel") {
387
+ const rel = String(value).toLowerCase();
388
+ interceptLinkHref(this, rel);
389
+ interceptLinkImagesrcset(this);
390
+ }
391
+ if (lowerName === "imagesrcset") {
392
+ interceptLinkImagesrcset(this);
393
+ }
394
+ }
395
+ if (name.toLowerCase() === "style") {
396
+ interceptCssText(String(value));
397
+ }
398
+ return originalSetAttribute.call(this, name, value);
399
+ };
400
+ const styleProto = window.CSSStyleDeclaration?.prototype;
401
+ const originalSetProperty = styleProto?.setProperty;
402
+ if (styleProto && originalSetProperty) {
403
+ styleProto.setProperty = function setProperty(propertyName, value, priority) {
404
+ if (typeof value === "string") {
405
+ interceptCssText(value);
406
+ }
407
+ return originalSetProperty.call(this, propertyName, value, priority);
408
+ };
409
+ const cssTextDescriptor = Object.getOwnPropertyDescriptor(styleProto, "cssText");
410
+ if (cssTextDescriptor?.set) {
411
+ Object.defineProperty(styleProto, "cssText", {
412
+ ...cssTextDescriptor,
413
+ set(value) {
414
+ interceptCssText(String(value));
415
+ cssTextDescriptor.set?.call(this, value);
416
+ }
417
+ });
418
+ }
419
+ }
420
+ const nodeProto = window.Node?.prototype;
421
+ const textContentDescriptor = nodeProto
422
+ ? Object.getOwnPropertyDescriptor(nodeProto, "textContent")
423
+ : undefined;
424
+ if (nodeProto && textContentDescriptor?.set) {
425
+ Object.defineProperty(nodeProto, "textContent", {
426
+ ...textContentDescriptor,
427
+ set(value) {
428
+ if (this instanceof window.HTMLStyleElement) {
429
+ interceptCssText(String(value));
430
+ }
431
+ textContentDescriptor.set?.call(this, value);
432
+ }
433
+ });
434
+ }
435
+ const interceptRequest = (url, source) => {
436
+ void Promise.resolve(options.interceptor(url, {
437
+ element: undefined,
438
+ referrer: window.document.URL,
439
+ source
440
+ }));
441
+ };
442
+ if (typeof window.fetch === "function") {
443
+ const originalFetch = window.fetch.bind(window);
444
+ window.fetch = ((input, init) => {
445
+ let url = "";
446
+ if (typeof input === "string") {
447
+ url = input;
448
+ }
449
+ else if (input instanceof URL) {
450
+ url = input.toString();
451
+ }
452
+ else if ("url" in input) {
453
+ url = String(input.url);
454
+ }
455
+ if (url) {
456
+ interceptRequest(url, "fetch");
457
+ }
458
+ return originalFetch(input, init);
459
+ });
460
+ }
461
+ const xhrProto = window.XMLHttpRequest?.prototype;
462
+ if (xhrProto) {
463
+ const originalOpen = xhrProto.open;
464
+ const originalSend = xhrProto.send;
465
+ xhrProto.open = function open(method, url, async, username, password) {
466
+ this._interceptorUrl = String(url);
467
+ return originalOpen.call(this, method, url, async ?? true, username ?? null, password ?? null);
468
+ };
469
+ xhrProto.send = function send(body) {
470
+ const { _interceptorUrl } = this;
471
+ if (_interceptorUrl) {
472
+ interceptRequest(_interceptorUrl, "xhr");
473
+ }
474
+ return originalSend.call(this, body ?? null);
475
+ };
476
+ }
477
+ }
478
+ });
479
+ scanDocumentRequests(dom.window, options.interceptor);
480
+ triggerHoverSweep(dom.window);
481
+ return dom;
482
+ }
483
+ function triggerHoverSweep(window) {
484
+ const fire = () => {
485
+ const eventInit = { bubbles: true, cancelable: true };
486
+ window.document.querySelectorAll("*").forEach((element) => {
487
+ element.dispatchEvent(new window.Event("mouseover", eventInit));
488
+ element.dispatchEvent(new window.Event("mouseenter", eventInit));
489
+ });
490
+ };
491
+ if (window.document.readyState === "complete") {
492
+ fire();
493
+ return;
494
+ }
495
+ window.addEventListener("load", fire, { once: true });
496
+ window.setTimeout(fire, 0);
497
+ }
498
+ function scanDocumentRequests(window, interceptor) {
499
+ const { document } = window;
500
+ const referrer = document.URL;
501
+ const record = (url, source, element) => {
502
+ void Promise.resolve(interceptor(url, {
503
+ element,
504
+ referrer,
505
+ source
506
+ }));
507
+ };
508
+ const parseSrcsetUrls = (value) => {
509
+ return value
510
+ .split(",")
511
+ .map((candidate) => candidate.trim().split(/\s+/)[0])
512
+ .filter((url) => url.length > 0);
513
+ };
514
+ const shouldInterceptLinkRel = (rel) => {
515
+ const normalized = rel.toLowerCase();
516
+ return (normalized.includes("preload") ||
517
+ normalized.includes("prefetch") ||
518
+ normalized.includes("stylesheet") ||
519
+ normalized.includes("icon"));
520
+ };
521
+ document.querySelectorAll("img[src]").forEach((img) => {
522
+ if (img instanceof window.HTMLImageElement && img.src) {
523
+ record(img.src, "img", img);
524
+ }
525
+ });
526
+ document.querySelectorAll("img[srcset]").forEach((img) => {
527
+ if (img instanceof window.HTMLImageElement) {
528
+ for (const url of parseSrcsetUrls(img.getAttribute("srcset") ?? "")) {
529
+ record(url, "img", img);
530
+ }
531
+ }
532
+ });
533
+ document.querySelectorAll("source[src]").forEach((source) => {
534
+ const src = source.getAttribute("src");
535
+ if (src) {
536
+ record(src, "resource");
537
+ }
538
+ });
539
+ document.querySelectorAll("source[srcset]").forEach((source) => {
540
+ const srcset = source.getAttribute("srcset");
541
+ if (srcset) {
542
+ for (const url of parseSrcsetUrls(srcset)) {
543
+ record(url, "resource");
544
+ }
545
+ }
546
+ });
547
+ document.querySelectorAll("script[src]").forEach((script) => {
548
+ if (script instanceof window.HTMLScriptElement && script.src) {
549
+ record(script.src, "resource");
550
+ }
551
+ });
552
+ document.querySelectorAll("iframe[src]").forEach((iframe) => {
553
+ if (iframe instanceof window.HTMLIFrameElement && iframe.src) {
554
+ record(iframe.src, "resource", iframe);
555
+ }
556
+ });
557
+ document.querySelectorAll("video[src], audio[src]").forEach((media) => {
558
+ const src = media.getAttribute("src");
559
+ if (src) {
560
+ record(src, "resource");
561
+ }
562
+ });
563
+ document.querySelectorAll("video[poster]").forEach((video) => {
564
+ const poster = video.getAttribute("poster");
565
+ if (poster) {
566
+ record(poster, "resource");
567
+ }
568
+ });
569
+ document.querySelectorAll("track[src]").forEach((track) => {
570
+ const src = track.getAttribute("src");
571
+ if (src) {
572
+ record(src, "resource");
573
+ }
574
+ });
575
+ document.querySelectorAll("embed[src]").forEach((embed) => {
576
+ const src = embed.getAttribute("src");
577
+ if (src) {
578
+ record(src, "resource");
579
+ }
580
+ });
581
+ document.querySelectorAll("object[data]").forEach((object) => {
582
+ const data = object.getAttribute("data");
583
+ if (data) {
584
+ record(data, "resource");
585
+ }
586
+ });
587
+ document.querySelectorAll("link[rel]").forEach((link) => {
588
+ if (!(link instanceof window.HTMLLinkElement)) {
589
+ return;
590
+ }
591
+ const rel = link.getAttribute("rel") ?? "";
592
+ if (shouldInterceptLinkRel(rel)) {
593
+ const href = link.getAttribute("href") ?? link.href;
594
+ if (href) {
595
+ record(href, "resource", link);
596
+ }
597
+ }
598
+ if (rel.toLowerCase().includes("preload")) {
599
+ const imagesrcset = link.getAttribute("imagesrcset");
600
+ if (imagesrcset) {
601
+ for (const url of parseSrcsetUrls(imagesrcset)) {
602
+ record(url, "resource", link);
603
+ }
604
+ }
605
+ }
606
+ });
607
+ }
608
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/dom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { createJSDOMWithInterceptor } from "./dom.js";
2
+ export type { InterceptorOptions } from "./dom.js";
3
+ export { Lighterceptor } from "./lighterceptor.js";
4
+ export type { LighterceptorOptions, NetworkRecord, RequestRecord, ResponseRecord } from "./lighterceptor.js";
5
+ export type { FetchOptions, RequestInterceptor, RequestSource } from "./types.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createJSDOMWithInterceptor } from "./dom.js";
2
+ export { Lighterceptor } from "./lighterceptor.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}