@nuxt/scripts 1.0.0-beta.26 → 1.0.0-beta.28

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 (52) hide show
  1. package/dist/client/200.html +1 -1
  2. package/dist/client/404.html +1 -1
  3. package/dist/client/_nuxt/{C-7nRtzO.js → AwAKM0sG.js} +1 -1
  4. package/dist/client/_nuxt/{DjhmCJlE.js → Bl23o3st.js} +18 -18
  5. package/dist/client/_nuxt/{TJ5JFHov.js → CYlYSSNW.js} +1 -1
  6. package/dist/client/_nuxt/{D5k4eN9O.js → D5FIkDae.js} +1 -1
  7. package/dist/client/_nuxt/builds/latest.json +1 -1
  8. package/dist/client/_nuxt/builds/meta/3ca2fe82-918c-4528-826c-0bf9ff54a5fa.json +1 -0
  9. package/dist/client/_nuxt/error-404.1K8v8Su2.css +1 -0
  10. package/dist/client/_nuxt/error-500.B9qvKpQm.css +1 -0
  11. package/dist/client/index.html +1 -1
  12. package/dist/module.d.mts +1 -1
  13. package/dist/module.d.ts +1 -1
  14. package/dist/module.json +1 -1
  15. package/dist/module.mjs +50 -9
  16. package/dist/registry.mjs +6 -3
  17. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +13 -3
  18. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +12 -7
  19. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +13 -3
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +4 -34
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +41 -38
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +4 -34
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +5 -9
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +35 -0
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +68 -0
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +35 -0
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +4 -4
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +2 -6
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +4 -4
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +6 -4
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +18 -10
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +6 -4
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +40 -0
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +168 -0
  35. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +40 -0
  36. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +4 -9
  37. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +4 -9
  38. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +5 -9
  39. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  40. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  41. package/dist/runtime/registry/gravatar.d.ts +1 -0
  42. package/dist/runtime/registry/gravatar.js +1 -0
  43. package/dist/runtime/server/gravatar-proxy.d.ts +1 -1
  44. package/dist/runtime/server/gravatar-proxy.js +0 -1
  45. package/dist/stats.d.mts +82 -11
  46. package/dist/stats.d.ts +82 -11
  47. package/dist/stats.mjs +763 -351
  48. package/dist/types-source.mjs +1247 -67
  49. package/package.json +6 -4
  50. package/dist/client/_nuxt/builds/meta/33e1ac0e-aba1-4856-8beb-775c426be236.json +0 -1
  51. package/dist/client/_nuxt/error-404.C_3_IG5y.css +0 -1
  52. package/dist/client/_nuxt/error-500.DSv6YikH.css +0 -1
package/dist/stats.mjs CHANGED
@@ -11,9 +11,9 @@ const scriptMeta = {
11
11
  trackedData: ["page-views"]
12
12
  },
13
13
  posthog: {
14
- urls: [],
15
- // NPM-only, no CDN script
16
- trackedData: ["page-views", "events", "conversions", "user-identity", "session-replay", "heatmaps", "ab-testing"]
14
+ urls: ["https://us-assets.i.posthog.com/static/array.js"],
15
+ trackedData: ["page-views", "events", "conversions", "user-identity", "session-replay", "heatmaps", "ab-testing"],
16
+ testId: "phc_test"
17
17
  },
18
18
  fathomAnalytics: {
19
19
  urls: ["https://cdn.usefathom.com/script.js"],
@@ -175,7 +175,7 @@ const scriptMeta = {
175
175
  },
176
176
  // Identity
177
177
  gravatar: {
178
- urls: [],
178
+ urls: ["https://secure.gravatar.com/js/gprofiles.js"],
179
179
  trackedData: []
180
180
  }
181
181
  };
@@ -183,7 +183,7 @@ const scriptMeta = {
183
183
  const plausibleAnalytics = {
184
184
  totalTransferKb: 1.9,
185
185
  totalDecodedKb: 2.9,
186
- loadTimeMs: 79,
186
+ loadTimeMs: 71,
187
187
  collectsWebVitals: false,
188
188
  apis: {
189
189
  cookies: false,
@@ -235,9 +235,9 @@ const plausibleAnalytics = {
235
235
  ]
236
236
  },
237
237
  performance: {
238
- taskDurationMs: 25,
239
- scriptDurationMs: 3,
240
- heapDeltaKb: 735
238
+ taskDurationMs: 7,
239
+ scriptDurationMs: 1,
240
+ heapDeltaKb: 759
241
241
  },
242
242
  scripts: [
243
243
  {
@@ -245,16 +245,16 @@ const plausibleAnalytics = {
245
245
  transferKb: 1.9,
246
246
  decodedKb: 2.9,
247
247
  encoding: "zstd",
248
- durationMs: 79,
248
+ durationMs: 71,
249
249
  initiatorType: "script",
250
250
  protocol: "unknown"
251
251
  }
252
252
  ]
253
253
  };
254
254
  const cloudflareWebAnalytics = {
255
- totalTransferKb: 10.7,
255
+ totalTransferKb: 10.8,
256
256
  totalDecodedKb: 30.4,
257
- loadTimeMs: 83,
257
+ loadTimeMs: 93,
258
258
  collectsWebVitals: true,
259
259
  apis: {
260
260
  cookies: false,
@@ -301,53 +301,53 @@ const cloudflareWebAnalytics = {
301
301
  "static.cloudflareinsights.com"
302
302
  ],
303
303
  outboundBytes: 0,
304
- inboundBytes: 10993,
304
+ inboundBytes: 11075,
305
305
  injectedElements: [
306
306
  ]
307
307
  },
308
308
  performance: {
309
- taskDurationMs: 7,
309
+ taskDurationMs: 6,
310
310
  scriptDurationMs: 1,
311
- heapDeltaKb: 773
311
+ heapDeltaKb: 784
312
312
  },
313
313
  scripts: [
314
314
  {
315
315
  url: "https://static.cloudflareinsights.com/beacon.min.js",
316
- transferKb: 10.7,
316
+ transferKb: 10.8,
317
317
  decodedKb: 30.4,
318
318
  encoding: "gzip",
319
- durationMs: 83,
319
+ durationMs: 93,
320
320
  initiatorType: "script",
321
321
  protocol: "unknown"
322
322
  }
323
323
  ]
324
324
  };
325
325
  const posthog = {
326
- totalTransferKb: 0,
327
- totalDecodedKb: 0,
328
- loadTimeMs: 0,
329
- collectsWebVitals: false,
326
+ totalTransferKb: 132.5,
327
+ totalDecodedKb: 358,
328
+ loadTimeMs: 1514,
329
+ collectsWebVitals: true,
330
330
  apis: {
331
- cookies: false,
332
- localStorage: false,
333
- sessionStorage: false,
331
+ cookies: true,
332
+ localStorage: true,
333
+ sessionStorage: true,
334
334
  indexedDB: false,
335
335
  canvas: false,
336
336
  webgl: false,
337
337
  audioContext: false,
338
- userAgent: false,
338
+ userAgent: true,
339
339
  doNotTrack: false,
340
340
  hardwareConcurrency: false,
341
341
  deviceMemory: false,
342
342
  plugins: false,
343
- languages: false,
344
- screen: false,
345
- timezone: false,
343
+ languages: true,
344
+ screen: true,
345
+ timezone: true,
346
346
  platform: false,
347
- vendor: false,
347
+ vendor: true,
348
348
  connection: false,
349
349
  maxTouchPoints: false,
350
- devicePixelRatio: false,
350
+ devicePixelRatio: true,
351
351
  mediaDevices: false,
352
352
  getBattery: false,
353
353
  referrer: false,
@@ -356,9 +356,9 @@ const posthog = {
356
356
  geolocation: false,
357
357
  serviceWorker: false,
358
358
  cacheApi: false,
359
- sendBeacon: false,
360
- fetch: false,
361
- xhr: false,
359
+ sendBeacon: true,
360
+ fetch: true,
361
+ xhr: true,
362
362
  websocket: false,
363
363
  mutationObserver: false,
364
364
  performanceObserver: false,
@@ -367,26 +367,72 @@ const posthog = {
367
367
  cookies: [
368
368
  ],
369
369
  network: {
370
- requestCount: 0,
370
+ requestCount: 5,
371
371
  domains: [
372
+ "us-assets.i.posthog.com",
373
+ "us.i.posthog.com"
372
374
  ],
373
- outboundBytes: 0,
374
- inboundBytes: 0,
375
+ outboundBytes: 269,
376
+ inboundBytes: 135643,
375
377
  injectedElements: [
378
+ {
379
+ tag: "script",
380
+ src: "https://us-assets.i.posthog.com/array/phc_test/config.js"
381
+ },
382
+ {
383
+ tag: "script",
384
+ src: "https://us.i.posthog.com/static/array.js"
385
+ }
376
386
  ]
377
387
  },
378
388
  performance: {
379
- taskDurationMs: 0,
380
- scriptDurationMs: 0,
381
- heapDeltaKb: 0
389
+ taskDurationMs: 36,
390
+ scriptDurationMs: 21,
391
+ heapDeltaKb: 1886
382
392
  },
383
393
  scripts: [
394
+ {
395
+ url: "https://us-assets.i.posthog.com/static/array.js",
396
+ transferKb: 65.9,
397
+ decodedKb: 178.9,
398
+ encoding: "gzip",
399
+ durationMs: 98,
400
+ initiatorType: "script",
401
+ protocol: "unknown"
402
+ },
403
+ {
404
+ url: "https://us.i.posthog.com/static/array.js",
405
+ transferKb: 66,
406
+ decodedKb: 178.9,
407
+ encoding: "gzip",
408
+ durationMs: 1514,
409
+ initiatorType: "script",
410
+ protocol: "unknown"
411
+ },
412
+ {
413
+ url: "https://us-assets.i.posthog.com/array/phc_test/config?ip=0&_=1773925874485&ver=1.361.1",
414
+ transferKb: 0.2,
415
+ decodedKb: 0.1,
416
+ encoding: "gzip",
417
+ durationMs: 261,
418
+ initiatorType: "fetch",
419
+ protocol: "unknown"
420
+ },
421
+ {
422
+ url: "https://us.i.posthog.com/flags/?v=2&ip=0&_=1773925874758&ver=1.361.1&compression=base64",
423
+ transferKb: 0.4,
424
+ decodedKb: 0.1,
425
+ encoding: "gzip",
426
+ durationMs: 908,
427
+ initiatorType: "fetch",
428
+ protocol: "unknown"
429
+ }
384
430
  ]
385
431
  };
386
432
  const fathomAnalytics = {
387
433
  totalTransferKb: 3,
388
434
  totalDecodedKb: 6.7,
389
- loadTimeMs: 303,
435
+ loadTimeMs: 316,
390
436
  collectsWebVitals: false,
391
437
  apis: {
392
438
  cookies: false,
@@ -433,14 +479,14 @@ const fathomAnalytics = {
433
479
  "cdn.usefathom.com"
434
480
  ],
435
481
  outboundBytes: 0,
436
- inboundBytes: 3078,
482
+ inboundBytes: 3077,
437
483
  injectedElements: [
438
484
  ]
439
485
  },
440
486
  performance: {
441
- taskDurationMs: 16,
442
- scriptDurationMs: 2,
443
- heapDeltaKb: 758
487
+ taskDurationMs: 11,
488
+ scriptDurationMs: 1,
489
+ heapDeltaKb: 760
444
490
  },
445
491
  scripts: [
446
492
  {
@@ -448,16 +494,16 @@ const fathomAnalytics = {
448
494
  transferKb: 2.7,
449
495
  decodedKb: 6.7,
450
496
  encoding: "zstd",
451
- durationMs: 74,
497
+ durationMs: 73,
452
498
  initiatorType: "script",
453
499
  protocol: "unknown"
454
500
  },
455
501
  {
456
- url: "https://cdn.usefathom.com/?h=http%3A%2F%2F127.0.0.1&p=%2FfathomAnalytics&r=&sid=null&qs=%7B%7D&cid=75417793",
502
+ url: "https://cdn.usefathom.com/?h=http%3A%2F%2F127.0.0.1&p=%2FfathomAnalytics&r=&sid=null&qs=%7B%7D&cid=95566347",
457
503
  transferKb: 0.3,
458
504
  decodedKb: 0,
459
505
  encoding: "none",
460
- durationMs: 303,
506
+ durationMs: 316,
461
507
  initiatorType: "img",
462
508
  protocol: "unknown"
463
509
  }
@@ -466,7 +512,7 @@ const fathomAnalytics = {
466
512
  const matomoAnalytics = {
467
513
  totalTransferKb: 60.4,
468
514
  totalDecodedKb: 218.6,
469
- loadTimeMs: 1681,
515
+ loadTimeMs: 96,
470
516
  collectsWebVitals: false,
471
517
  apis: {
472
518
  cookies: true,
@@ -477,7 +523,7 @@ const matomoAnalytics = {
477
523
  webgl: false,
478
524
  audioContext: false,
479
525
  userAgent: true,
480
- doNotTrack: true,
526
+ doNotTrack: false,
481
527
  hardwareConcurrency: false,
482
528
  deviceMemory: false,
483
529
  plugins: false,
@@ -495,7 +541,7 @@ const matomoAnalytics = {
495
541
  windowName: true,
496
542
  rtcPeerConnection: false,
497
543
  geolocation: false,
498
- serviceWorker: true,
544
+ serviceWorker: false,
499
545
  cacheApi: false,
500
546
  sendBeacon: true,
501
547
  fetch: true,
@@ -513,14 +559,14 @@ const matomoAnalytics = {
513
559
  "cdn.matomo.cloud"
514
560
  ],
515
561
  outboundBytes: 0,
516
- inboundBytes: 61860,
562
+ inboundBytes: 61877,
517
563
  injectedElements: [
518
564
  ]
519
565
  },
520
566
  performance: {
521
- taskDurationMs: 24,
522
- scriptDurationMs: 9,
523
- heapDeltaKb: 1388
567
+ taskDurationMs: 18,
568
+ scriptDurationMs: 5,
569
+ heapDeltaKb: 1393
524
570
  },
525
571
  scripts: [
526
572
  {
@@ -528,7 +574,7 @@ const matomoAnalytics = {
528
574
  transferKb: 60.4,
529
575
  decodedKb: 218.6,
530
576
  encoding: "br",
531
- durationMs: 1681,
577
+ durationMs: 96,
532
578
  initiatorType: "script",
533
579
  protocol: "unknown"
534
580
  }
@@ -537,7 +583,7 @@ const matomoAnalytics = {
537
583
  const rybbitAnalytics = {
538
584
  totalTransferKb: 9,
539
585
  totalDecodedKb: 25.4,
540
- loadTimeMs: 1119,
586
+ loadTimeMs: 1154,
541
587
  collectsWebVitals: true,
542
588
  apis: {
543
589
  cookies: false,
@@ -589,9 +635,9 @@ const rybbitAnalytics = {
589
635
  ]
590
636
  },
591
637
  performance: {
592
- taskDurationMs: 8,
638
+ taskDurationMs: 7,
593
639
  scriptDurationMs: 1,
594
- heapDeltaKb: 744
640
+ heapDeltaKb: 755
595
641
  },
596
642
  scripts: [
597
643
  {
@@ -599,7 +645,7 @@ const rybbitAnalytics = {
599
645
  transferKb: 9,
600
646
  decodedKb: 25.4,
601
647
  encoding: "zstd",
602
- durationMs: 1119,
648
+ durationMs: 1154,
603
649
  initiatorType: "script",
604
650
  protocol: "unknown"
605
651
  }
@@ -608,7 +654,7 @@ const rybbitAnalytics = {
608
654
  const databuddyAnalytics = {
609
655
  totalTransferKb: 10.6,
610
656
  totalDecodedKb: 29.2,
611
- loadTimeMs: 82,
657
+ loadTimeMs: 76,
612
658
  collectsWebVitals: true,
613
659
  apis: {
614
660
  cookies: false,
@@ -625,7 +671,7 @@ const databuddyAnalytics = {
625
671
  plugins: false,
626
672
  languages: true,
627
673
  screen: false,
628
- timezone: true,
674
+ timezone: false,
629
675
  platform: false,
630
676
  vendor: false,
631
677
  connection: false,
@@ -660,9 +706,9 @@ const databuddyAnalytics = {
660
706
  ]
661
707
  },
662
708
  performance: {
663
- taskDurationMs: 12,
664
- scriptDurationMs: 5,
665
- heapDeltaKb: 792
709
+ taskDurationMs: 6,
710
+ scriptDurationMs: 1,
711
+ heapDeltaKb: 803
666
712
  },
667
713
  scripts: [
668
714
  {
@@ -670,7 +716,7 @@ const databuddyAnalytics = {
670
716
  transferKb: 10.6,
671
717
  decodedKb: 29.2,
672
718
  encoding: "zstd",
673
- durationMs: 82,
719
+ durationMs: 76,
674
720
  initiatorType: "script",
675
721
  protocol: "unknown"
676
722
  }
@@ -679,7 +725,7 @@ const databuddyAnalytics = {
679
725
  const mixpanelAnalytics = {
680
726
  totalTransferKb: 31,
681
727
  totalDecodedKb: 93.9,
682
- loadTimeMs: 96,
728
+ loadTimeMs: 66,
683
729
  collectsWebVitals: false,
684
730
  apis: {
685
731
  cookies: true,
@@ -726,14 +772,14 @@ const mixpanelAnalytics = {
726
772
  "cdn.mxpnl.com"
727
773
  ],
728
774
  outboundBytes: 0,
729
- inboundBytes: 31794,
775
+ inboundBytes: 31793,
730
776
  injectedElements: [
731
777
  ]
732
778
  },
733
779
  performance: {
734
- taskDurationMs: 19,
735
- scriptDurationMs: 11,
736
- heapDeltaKb: 1156
780
+ taskDurationMs: 12,
781
+ scriptDurationMs: 6,
782
+ heapDeltaKb: 1167
737
783
  },
738
784
  scripts: [
739
785
  {
@@ -741,7 +787,7 @@ const mixpanelAnalytics = {
741
787
  transferKb: 31,
742
788
  decodedKb: 93.9,
743
789
  encoding: "gzip",
744
- durationMs: 96,
790
+ durationMs: 66,
745
791
  initiatorType: "script",
746
792
  protocol: "unknown"
747
793
  }
@@ -750,7 +796,7 @@ const mixpanelAnalytics = {
750
796
  const segment = {
751
797
  totalTransferKb: 29.6,
752
798
  totalDecodedKb: 107,
753
- loadTimeMs: 983,
799
+ loadTimeMs: 772,
754
800
  collectsWebVitals: false,
755
801
  apis: {
756
802
  cookies: true,
@@ -798,14 +844,14 @@ const segment = {
798
844
  "cdn.segment.com"
799
845
  ],
800
846
  outboundBytes: 1006,
801
- inboundBytes: 30260,
847
+ inboundBytes: 30283,
802
848
  injectedElements: [
803
849
  ]
804
850
  },
805
851
  performance: {
806
- taskDurationMs: 28,
807
- scriptDurationMs: 8,
808
- heapDeltaKb: 1317
852
+ taskDurationMs: 19,
853
+ scriptDurationMs: 4,
854
+ heapDeltaKb: 1328
809
855
  },
810
856
  scripts: [
811
857
  {
@@ -813,7 +859,7 @@ const segment = {
813
859
  transferKb: 28.2,
814
860
  decodedKb: 106.4,
815
861
  encoding: "br",
816
- durationMs: 983,
862
+ durationMs: 551,
817
863
  initiatorType: "script",
818
864
  protocol: "unknown"
819
865
  },
@@ -822,7 +868,7 @@ const segment = {
822
868
  transferKb: 1.2,
823
869
  decodedKb: 0.6,
824
870
  encoding: "none",
825
- durationMs: 51,
871
+ durationMs: 58,
826
872
  initiatorType: "fetch",
827
873
  protocol: "unknown"
828
874
  },
@@ -831,7 +877,7 @@ const segment = {
831
877
  transferKb: 0.2,
832
878
  decodedKb: 0,
833
879
  encoding: "none",
834
- durationMs: 768,
880
+ durationMs: 772,
835
881
  initiatorType: "fetch",
836
882
  protocol: "unknown"
837
883
  }
@@ -840,7 +886,7 @@ const segment = {
840
886
  const googleAnalytics = {
841
887
  totalTransferKb: 154.2,
842
888
  totalDecodedKb: 454.1,
843
- loadTimeMs: 514,
889
+ loadTimeMs: 516,
844
890
  collectsWebVitals: false,
845
891
  apis: {
846
892
  cookies: true,
@@ -869,7 +915,7 @@ const googleAnalytics = {
869
915
  windowName: true,
870
916
  rtcPeerConnection: false,
871
917
  geolocation: false,
872
- serviceWorker: true,
918
+ serviceWorker: false,
873
919
  cacheApi: false,
874
920
  sendBeacon: true,
875
921
  fetch: true,
@@ -887,14 +933,14 @@ const googleAnalytics = {
887
933
  "www.googletagmanager.com"
888
934
  ],
889
935
  outboundBytes: 0,
890
- inboundBytes: 157885,
936
+ inboundBytes: 157890,
891
937
  injectedElements: [
892
938
  ]
893
939
  },
894
940
  performance: {
895
- taskDurationMs: 34,
896
- scriptDurationMs: 22,
897
- heapDeltaKb: 2592
941
+ taskDurationMs: 26,
942
+ scriptDurationMs: 15,
943
+ heapDeltaKb: 2593
898
944
  },
899
945
  scripts: [
900
946
  {
@@ -902,7 +948,7 @@ const googleAnalytics = {
902
948
  transferKb: 154.2,
903
949
  decodedKb: 454.1,
904
950
  encoding: "zstd",
905
- durationMs: 514,
951
+ durationMs: 516,
906
952
  initiatorType: "script",
907
953
  protocol: "unknown"
908
954
  }
@@ -911,7 +957,7 @@ const googleAnalytics = {
911
957
  const umamiAnalytics = {
912
958
  totalTransferKb: 2.4,
913
959
  totalDecodedKb: 2.6,
914
- loadTimeMs: 96,
960
+ loadTimeMs: 81,
915
961
  collectsWebVitals: false,
916
962
  apis: {
917
963
  cookies: false,
@@ -958,14 +1004,14 @@ const umamiAnalytics = {
958
1004
  "cloud.umami.is"
959
1005
  ],
960
1006
  outboundBytes: 0,
961
- inboundBytes: 2467,
1007
+ inboundBytes: 2468,
962
1008
  injectedElements: [
963
1009
  ]
964
1010
  },
965
1011
  performance: {
966
1012
  taskDurationMs: 5,
967
1013
  scriptDurationMs: 0,
968
- heapDeltaKb: 714
1014
+ heapDeltaKb: 725
969
1015
  },
970
1016
  scripts: [
971
1017
  {
@@ -973,7 +1019,7 @@ const umamiAnalytics = {
973
1019
  transferKb: 2.4,
974
1020
  decodedKb: 2.6,
975
1021
  encoding: "br",
976
- durationMs: 96,
1022
+ durationMs: 81,
977
1023
  initiatorType: "script",
978
1024
  protocol: "unknown"
979
1025
  }
@@ -982,7 +1028,7 @@ const umamiAnalytics = {
982
1028
  const vercelAnalytics = {
983
1029
  totalTransferKb: 1.6,
984
1030
  totalDecodedKb: 2.4,
985
- loadTimeMs: 72,
1031
+ loadTimeMs: 81,
986
1032
  collectsWebVitals: false,
987
1033
  apis: {
988
1034
  cookies: false,
@@ -1029,14 +1075,14 @@ const vercelAnalytics = {
1029
1075
  "va.vercel-scripts.com"
1030
1076
  ],
1031
1077
  outboundBytes: 0,
1032
- inboundBytes: 1608,
1078
+ inboundBytes: 1606,
1033
1079
  injectedElements: [
1034
1080
  ]
1035
1081
  },
1036
1082
  performance: {
1037
1083
  taskDurationMs: 6,
1038
1084
  scriptDurationMs: 0,
1039
- heapDeltaKb: 705
1085
+ heapDeltaKb: 716
1040
1086
  },
1041
1087
  scripts: [
1042
1088
  {
@@ -1044,7 +1090,7 @@ const vercelAnalytics = {
1044
1090
  transferKb: 1.6,
1045
1091
  decodedKb: 2.4,
1046
1092
  encoding: "br",
1047
- durationMs: 72,
1093
+ durationMs: 81,
1048
1094
  initiatorType: "script",
1049
1095
  protocol: "unknown"
1050
1096
  }
@@ -1053,7 +1099,7 @@ const vercelAnalytics = {
1053
1099
  const bingUet = {
1054
1100
  totalTransferKb: 16.2,
1055
1101
  totalDecodedKb: 54,
1056
- loadTimeMs: 219,
1102
+ loadTimeMs: 207,
1057
1103
  collectsWebVitals: false,
1058
1104
  apis: {
1059
1105
  cookies: true,
@@ -1063,14 +1109,14 @@ const bingUet = {
1063
1109
  canvas: false,
1064
1110
  webgl: false,
1065
1111
  audioContext: false,
1066
- userAgent: true,
1112
+ userAgent: false,
1067
1113
  doNotTrack: false,
1068
1114
  hardwareConcurrency: false,
1069
1115
  deviceMemory: false,
1070
1116
  plugins: true,
1071
1117
  languages: true,
1072
1118
  screen: true,
1073
- timezone: true,
1119
+ timezone: false,
1074
1120
  platform: false,
1075
1121
  vendor: false,
1076
1122
  connection: false,
@@ -1122,7 +1168,7 @@ const bingUet = {
1122
1168
  "bat.bing.com"
1123
1169
  ],
1124
1170
  outboundBytes: 0,
1125
- inboundBytes: 16549,
1171
+ inboundBytes: 16545,
1126
1172
  injectedElements: [
1127
1173
  {
1128
1174
  tag: "script",
@@ -1130,14 +1176,14 @@ const bingUet = {
1130
1176
  },
1131
1177
  {
1132
1178
  tag: "img",
1133
- src: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=e096214e-367e-4815-8b73-5a51fdde33fd&bo=1&sid=cb88fce0234c11f1afa32398b1ed69e7&vid=cb891a90234c11f1a773dd7e75ca9603&vids=1&msclkid=N&pi=0&lg=en-GB&sw=1280&sh=720&sc=24&nwd=1&p=http%3A%2F%2F127.0.0.1%3A34081%2FbingUet&r=&lt=225&evt=pageLoad&sv=2&cdb=AQAQ&rn=579954"
1179
+ src: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=7a9bdab7-4d77-4f32-b498-848d8200a897&bo=1&sid=3a3e3280239511f1bc041d004afba8b8&vid=3a3e5040239511f1a83b357b18badf3c&vids=1&msclkid=N&pi=0&lg=en-GB&sw=1280&sh=720&sc=24&nwd=1&p=http%3A%2F%2F127.0.0.1%3A34289%2FbingUet&r=&lt=213&evt=pageLoad&sv=2&cdb=AQAQ&rn=134697"
1134
1180
  }
1135
1181
  ]
1136
1182
  },
1137
1183
  performance: {
1138
- taskDurationMs: 24,
1139
- scriptDurationMs: 17,
1140
- heapDeltaKb: 918
1184
+ taskDurationMs: 11,
1185
+ scriptDurationMs: 4,
1186
+ heapDeltaKb: 919
1141
1187
  },
1142
1188
  scripts: [
1143
1189
  {
@@ -1145,7 +1191,7 @@ const bingUet = {
1145
1191
  transferKb: 15.4,
1146
1192
  decodedKb: 53.6,
1147
1193
  encoding: "gzip",
1148
- durationMs: 219,
1194
+ durationMs: 207,
1149
1195
  initiatorType: "script",
1150
1196
  protocol: "unknown"
1151
1197
  },
@@ -1154,16 +1200,16 @@ const bingUet = {
1154
1200
  transferKb: 0.4,
1155
1201
  decodedKb: 0.4,
1156
1202
  encoding: "br",
1157
- durationMs: 157,
1203
+ durationMs: 148,
1158
1204
  initiatorType: "script",
1159
1205
  protocol: "unknown"
1160
1206
  },
1161
1207
  {
1162
- url: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=e096214e-367e-4815-8b73-5a51fdde33fd&bo=1&sid=cb88fce0234c11f1afa32398b1ed69e7&vid=cb891a90234c11f1a773dd7e75ca9603&vids=1&msclkid=N&pi=0&lg=en-GB&sw=1280&sh=720&sc=24&nwd=1&p=http%3A%2F%2F127.0.0.1%3A34081%2FbingUet&r=&lt=225&evt=pageLoad&sv=2&cdb=AQAQ&rn=579954",
1208
+ url: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=7a9bdab7-4d77-4f32-b498-848d8200a897&bo=1&sid=3a3e3280239511f1bc041d004afba8b8&vid=3a3e5040239511f1a83b357b18badf3c&vids=1&msclkid=N&pi=0&lg=en-GB&sw=1280&sh=720&sc=24&nwd=1&p=http%3A%2F%2F127.0.0.1%3A34289%2FbingUet&r=&lt=213&evt=pageLoad&sv=2&cdb=AQAQ&rn=134697",
1163
1209
  transferKb: 0.4,
1164
1210
  decodedKb: 0,
1165
1211
  encoding: "none",
1166
- durationMs: 157,
1212
+ durationMs: 150,
1167
1213
  initiatorType: "img",
1168
1214
  protocol: "unknown"
1169
1215
  }
@@ -1172,10 +1218,10 @@ const bingUet = {
1172
1218
  const metaPixel = {
1173
1219
  totalTransferKb: 97.1,
1174
1220
  totalDecodedKb: 364.7,
1175
- loadTimeMs: 231,
1221
+ loadTimeMs: 232,
1176
1222
  collectsWebVitals: false,
1177
1223
  apis: {
1178
- cookies: true,
1224
+ cookies: false,
1179
1225
  localStorage: true,
1180
1226
  sessionStorage: true,
1181
1227
  indexedDB: false,
@@ -1220,18 +1266,22 @@ const metaPixel = {
1220
1266
  "www.facebook.com"
1221
1267
  ],
1222
1268
  outboundBytes: 0,
1223
- inboundBytes: 102426,
1269
+ inboundBytes: 102421,
1224
1270
  injectedElements: [
1225
1271
  {
1226
1272
  tag: "script",
1227
1273
  src: "https://connect.facebook.net/signals/config/3925006?v=2.9.280&r=stable&domain=127.0.0.1&hme=b758cff5989f970d61536a685dcccfaabd7a9508da12548b3811a55c83b2e4ae&ex_m=101%2C194%2C143%2C22%2C69%2C70%2C136%2C65%2C64%2C11%2C151%2C87%2C16%2C130%2C123%2C72%2C75%2C129%2C148%2C153%2C8%2C4%2C5%2C7%2C6%2C3%2C88%2C98%2C154%2C159%2C208%2C59%2C175%2C176%2C52%2C264%2C30%2C71%2C220%2C219%2C218%2C23%2C32%2C100%2C58%2C10%2C60%2C94%2C95%2C96%2C102%2C126%2C31%2C29%2C128%2C125%2C124%2C144%2C73%2C147%2C145%2C146%2C47%2C57%2C119%2C15%2C150%2C42%2C251%2C252%2C250%2C26%2C27%2C28%2C45%2C137%2C74%2C109%2C18%2C20%2C41%2C37%2C39%2C38%2C80%2C89%2C93%2C107%2C135%2C138%2C43%2C108%2C24%2C21%2C115%2C66%2C35%2C140%2C139%2C141%2C132%2C131%2C25%2C34%2C56%2C106%2C149%2C67%2C17%2C142%2C111%2C78%2C63%2C19%2C82%2C83%2C112%2C81%2C33%2C280%2C201%2C190%2C191%2C189%2C283%2C275%2C49%2C202%2C104%2C127%2C77%2C117%2C51%2C44%2C46%2C110%2C116%2C122%2C55%2C61%2C50%2C53%2C97%2C152%2C1%2C120%2C14%2C118%2C12%2C2%2C54%2C90%2C62%2C114%2C86%2C85%2C155%2C156%2C91%2C92%2C9%2C121%2C99%2C48%2C133%2C84%2C76%2C68%2C113%2C103%2C40%2C134%2C0%2C79%2C36%2C105%2C13%2C157"
1274
+ },
1275
+ {
1276
+ tag: "img",
1277
+ src: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A34289%2FmetaPixel&rl=&if=false&ts=1773925931003&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773925930767&coo=false&expv2[0]=pl1&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=im1&expv2[6]=hf1&rqm=GET"
1228
1278
  }
1229
1279
  ]
1230
1280
  },
1231
1281
  performance: {
1232
- taskDurationMs: 36,
1233
- scriptDurationMs: 23,
1234
- heapDeltaKb: 1956
1282
+ taskDurationMs: 31,
1283
+ scriptDurationMs: 20,
1284
+ heapDeltaKb: 1949
1235
1285
  },
1236
1286
  scripts: [
1237
1287
  {
@@ -1239,7 +1289,7 @@ const metaPixel = {
1239
1289
  transferKb: 94.7,
1240
1290
  decodedKb: 356.5,
1241
1291
  encoding: "gzip",
1242
- durationMs: 114,
1292
+ durationMs: 122,
1243
1293
  initiatorType: "script",
1244
1294
  protocol: "h2"
1245
1295
  },
@@ -1248,16 +1298,16 @@ const metaPixel = {
1248
1298
  transferKb: 2.1,
1249
1299
  decodedKb: 8.2,
1250
1300
  encoding: "gzip",
1251
- durationMs: 231,
1301
+ durationMs: 232,
1252
1302
  initiatorType: "script",
1253
1303
  protocol: "h2"
1254
1304
  },
1255
1305
  {
1256
- url: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A34081%2FmetaPixel&rl=&if=false&ts=1773894818200&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773894817965&coo=false&expv2[0]=pl0&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=im0&expv2[6]=hf0&rqm=GET",
1306
+ url: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A34289%2FmetaPixel&rl=&if=false&ts=1773925931003&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773925930767&coo=false&expv2[0]=pl1&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=im1&expv2[6]=hf1&rqm=GET",
1257
1307
  transferKb: 0.3,
1258
1308
  decodedKb: 0,
1259
1309
  encoding: "none",
1260
- durationMs: 77,
1310
+ durationMs: 66,
1261
1311
  initiatorType: "img",
1262
1312
  protocol: "unknown"
1263
1313
  }
@@ -1266,7 +1316,7 @@ const metaPixel = {
1266
1316
  const xPixel = {
1267
1317
  totalTransferKb: 15.1,
1268
1318
  totalDecodedKb: 47.1,
1269
- loadTimeMs: 247,
1319
+ loadTimeMs: 244,
1270
1320
  collectsWebVitals: false,
1271
1321
  apis: {
1272
1322
  cookies: true,
@@ -1370,22 +1420,22 @@ const xPixel = {
1370
1420
  "t.co"
1371
1421
  ],
1372
1422
  outboundBytes: 0,
1373
- inboundBytes: 15458,
1423
+ inboundBytes: 15448,
1374
1424
  injectedElements: [
1375
1425
  {
1376
1426
  tag: "img",
1377
- src: "https://t.co/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=962d1f00-6ba8-417c-a0f5-4c153dacac89&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=c9421eba-6065-470c-930a-30afd3165f1c&tw_document_href=http%3A%2F%2F127.0.0.1%3A34081%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773894819586.917996565140010674&txn_id=ol7lz&type=javascript&version=2.3.50"
1427
+ src: "https://t.co/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50"
1378
1428
  },
1379
1429
  {
1380
1430
  tag: "img",
1381
- src: "https://analytics.twitter.com/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=962d1f00-6ba8-417c-a0f5-4c153dacac89&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=c9421eba-6065-470c-930a-30afd3165f1c&tw_document_href=http%3A%2F%2F127.0.0.1%3A34081%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773894819586.917996565140010674&txn_id=ol7lz&type=javascript&version=2.3.50"
1431
+ src: "https://analytics.twitter.com/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50"
1382
1432
  }
1383
1433
  ]
1384
1434
  },
1385
1435
  performance: {
1386
- taskDurationMs: 23,
1387
- scriptDurationMs: 5,
1388
- heapDeltaKb: 1030
1436
+ taskDurationMs: 15,
1437
+ scriptDurationMs: 2,
1438
+ heapDeltaKb: 1035
1389
1439
  },
1390
1440
  scripts: [
1391
1441
  {
@@ -1393,38 +1443,38 @@ const xPixel = {
1393
1443
  transferKb: 13.5,
1394
1444
  decodedKb: 47.1,
1395
1445
  encoding: "gzip",
1396
- durationMs: 72,
1446
+ durationMs: 70,
1397
1447
  initiatorType: "script",
1398
1448
  protocol: "unknown"
1399
1449
  },
1400
1450
  {
1401
- url: "https://t.co/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=962d1f00-6ba8-417c-a0f5-4c153dacac89&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=c9421eba-6065-470c-930a-30afd3165f1c&tw_document_href=http%3A%2F%2F127.0.0.1%3A34081%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773894819586.917996565140010674&txn_id=ol7lz&type=javascript&version=2.3.50",
1402
- transferKb: 0.6,
1451
+ url: "https://analytics.twitter.com/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50",
1452
+ transferKb: 1,
1403
1453
  decodedKb: 0,
1404
1454
  encoding: "none",
1405
- durationMs: 247,
1455
+ durationMs: 230,
1406
1456
  initiatorType: "img",
1407
1457
  protocol: "unknown"
1408
1458
  },
1409
1459
  {
1410
- url: "https://analytics.twitter.com/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=962d1f00-6ba8-417c-a0f5-4c153dacac89&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=c9421eba-6065-470c-930a-30afd3165f1c&tw_document_href=http%3A%2F%2F127.0.0.1%3A34081%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773894819586.917996565140010674&txn_id=ol7lz&type=javascript&version=2.3.50",
1411
- transferKb: 1,
1460
+ url: "https://t.co/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50",
1461
+ transferKb: 0.6,
1412
1462
  decodedKb: 0,
1413
1463
  encoding: "none",
1414
- durationMs: 232,
1464
+ durationMs: 244,
1415
1465
  initiatorType: "img",
1416
1466
  protocol: "unknown"
1417
1467
  }
1418
1468
  ]
1419
1469
  };
1420
1470
  const tiktokPixel = {
1421
- totalTransferKb: 148,
1422
- totalDecodedKb: 623,
1423
- loadTimeMs: 271,
1471
+ totalTransferKb: 1889.6,
1472
+ totalDecodedKb: 2365,
1473
+ loadTimeMs: 270,
1424
1474
  collectsWebVitals: true,
1425
1475
  apis: {
1426
1476
  cookies: true,
1427
- localStorage: false,
1477
+ localStorage: true,
1428
1478
  sessionStorage: true,
1429
1479
  indexedDB: false,
1430
1480
  canvas: false,
@@ -1436,9 +1486,9 @@ const tiktokPixel = {
1436
1486
  deviceMemory: false,
1437
1487
  plugins: false,
1438
1488
  languages: false,
1439
- screen: false,
1440
- timezone: false,
1441
- platform: false,
1489
+ screen: true,
1490
+ timezone: true,
1491
+ platform: true,
1442
1492
  vendor: false,
1443
1493
  connection: true,
1444
1494
  maxTouchPoints: false,
@@ -1452,12 +1502,12 @@ const tiktokPixel = {
1452
1502
  serviceWorker: false,
1453
1503
  cacheApi: false,
1454
1504
  sendBeacon: true,
1455
- fetch: false,
1456
- xhr: false,
1505
+ fetch: true,
1506
+ xhr: true,
1457
1507
  websocket: false,
1458
1508
  mutationObserver: true,
1459
1509
  performanceObserver: true,
1460
- intersectionObserver: false
1510
+ intersectionObserver: true
1461
1511
  },
1462
1512
  cookies: [
1463
1513
  {
@@ -1478,7 +1528,7 @@ const tiktokPixel = {
1478
1528
  "analytics.tiktok.com"
1479
1529
  ],
1480
1530
  outboundBytes: 0,
1481
- inboundBytes: 151545,
1531
+ inboundBytes: 151441,
1482
1532
  injectedElements: [
1483
1533
  {
1484
1534
  tag: "script",
@@ -1491,9 +1541,9 @@ const tiktokPixel = {
1491
1541
  ]
1492
1542
  },
1493
1543
  performance: {
1494
- taskDurationMs: 58,
1495
- scriptDurationMs: 31,
1496
- heapDeltaKb: 2284
1544
+ taskDurationMs: 50,
1545
+ scriptDurationMs: 25,
1546
+ heapDeltaKb: 2297
1497
1547
  },
1498
1548
  scripts: [
1499
1549
  {
@@ -1501,7 +1551,7 @@ const tiktokPixel = {
1501
1551
  transferKb: 2.6,
1502
1552
  decodedKb: 7.6,
1503
1553
  encoding: "gzip",
1504
- durationMs: 271,
1554
+ durationMs: 270,
1505
1555
  initiatorType: "script",
1506
1556
  protocol: "unknown"
1507
1557
  },
@@ -1510,25 +1560,43 @@ const tiktokPixel = {
1510
1560
  transferKb: 105.8,
1511
1561
  decodedKb: 463.4,
1512
1562
  encoding: "gzip",
1513
- durationMs: 49,
1563
+ durationMs: 50,
1514
1564
  initiatorType: "script",
1515
1565
  protocol: "unknown"
1516
1566
  },
1517
1567
  {
1518
1568
  url: "https://analytics.tiktok.com/i18n/pixel/static/identify_31760074.js",
1519
- transferKb: 39.6,
1569
+ transferKb: 39.5,
1520
1570
  decodedKb: 152,
1521
1571
  encoding: "gzip",
1522
- durationMs: 18,
1572
+ durationMs: 20,
1523
1573
  initiatorType: "script",
1524
1574
  protocol: "unknown"
1575
+ },
1576
+ {
1577
+ url: "https://analytics.tiktok.com/i18n/pixel/config.js",
1578
+ transferKb: 0.3,
1579
+ decodedKb: 0.6,
1580
+ encoding: "gzip",
1581
+ durationMs: 0,
1582
+ initiatorType: "secondary",
1583
+ protocol: "unknown"
1584
+ },
1585
+ {
1586
+ url: "https://analytics.tiktok.com/i18n/pixel/eb.js",
1587
+ transferKb: 1741.4,
1588
+ decodedKb: 1741.4,
1589
+ encoding: "gzip",
1590
+ durationMs: 0,
1591
+ initiatorType: "secondary",
1592
+ protocol: "unknown"
1525
1593
  }
1526
1594
  ]
1527
1595
  };
1528
1596
  const snapchatPixel = {
1529
1597
  totalTransferKb: 1.3,
1530
1598
  totalDecodedKb: 58.2,
1531
- loadTimeMs: 586,
1599
+ loadTimeMs: 579,
1532
1600
  collectsWebVitals: false,
1533
1601
  apis: {
1534
1602
  cookies: true,
@@ -1554,7 +1622,7 @@ const snapchatPixel = {
1554
1622
  mediaDevices: false,
1555
1623
  getBattery: false,
1556
1624
  referrer: true,
1557
- windowName: false,
1625
+ windowName: true,
1558
1626
  rtcPeerConnection: false,
1559
1627
  geolocation: false,
1560
1628
  serviceWorker: false,
@@ -1580,18 +1648,18 @@ const snapchatPixel = {
1580
1648
  firstParty: false
1581
1649
  },
1582
1650
  {
1583
- name: "TapAd_TS",
1584
- domain: ".tapad.com",
1651
+ name: "sc_at",
1652
+ domain: ".snapchat.com",
1585
1653
  path: "/",
1586
1654
  httpOnly: false,
1587
1655
  secure: true,
1588
1656
  sameSite: "None",
1589
1657
  session: false,
1590
- lifetimeDays: 60,
1658
+ lifetimeDays: 390,
1591
1659
  firstParty: false
1592
1660
  },
1593
1661
  {
1594
- name: "TapAd_DID",
1662
+ name: "TapAd_TS",
1595
1663
  domain: ".tapad.com",
1596
1664
  path: "/",
1597
1665
  httpOnly: false,
@@ -1602,7 +1670,7 @@ const snapchatPixel = {
1602
1670
  firstParty: false
1603
1671
  },
1604
1672
  {
1605
- name: "TapAd_3WAY_SYNCS",
1673
+ name: "TapAd_DID",
1606
1674
  domain: ".tapad.com",
1607
1675
  path: "/",
1608
1676
  httpOnly: false,
@@ -1613,33 +1681,33 @@ const snapchatPixel = {
1613
1681
  firstParty: false
1614
1682
  },
1615
1683
  {
1616
- name: "sc_at",
1617
- domain: ".snapchat.com",
1684
+ name: "TapAd_3WAY_SYNCS",
1685
+ domain: ".tapad.com",
1618
1686
  path: "/",
1619
1687
  httpOnly: false,
1620
1688
  secure: true,
1621
1689
  sameSite: "None",
1622
1690
  session: false,
1623
- lifetimeDays: 390,
1691
+ lifetimeDays: 60,
1624
1692
  firstParty: false
1625
1693
  }
1626
1694
  ],
1627
1695
  network: {
1628
- requestCount: 9,
1696
+ requestCount: 10,
1629
1697
  domains: [
1630
1698
  "pixel.tapad.com",
1631
1699
  "sc-static.net",
1632
1700
  "tr.snapchat.com"
1633
1701
  ],
1634
- outboundBytes: 1708,
1635
- inboundBytes: 26697,
1702
+ outboundBytes: 3041,
1703
+ inboundBytes: 26692,
1636
1704
  injectedElements: [
1637
1705
  ]
1638
1706
  },
1639
1707
  performance: {
1640
- taskDurationMs: 44,
1641
- scriptDurationMs: 22,
1642
- heapDeltaKb: 2350
1708
+ taskDurationMs: 40,
1709
+ scriptDurationMs: 25,
1710
+ heapDeltaKb: 2476
1643
1711
  },
1644
1712
  scripts: [
1645
1713
  {
@@ -1647,7 +1715,7 @@ const snapchatPixel = {
1647
1715
  transferKb: 0,
1648
1716
  decodedKb: 57.4,
1649
1717
  encoding: "gzip",
1650
- durationMs: 586,
1718
+ durationMs: 579,
1651
1719
  initiatorType: "script",
1652
1720
  protocol: "unknown"
1653
1721
  },
@@ -1656,16 +1724,16 @@ const snapchatPixel = {
1656
1724
  transferKb: 0.3,
1657
1725
  decodedKb: 0.1,
1658
1726
  encoding: "none",
1659
- durationMs: 397,
1727
+ durationMs: 396,
1660
1728
  initiatorType: "fetch",
1661
1729
  protocol: "unknown"
1662
1730
  },
1663
1731
  {
1664
- url: "https://tr.snapchat.com/cm/i?pid=2295cbcc-cb3f-4727-8c09-1133b742722c&u_scsid=e9658c18-2f77-4367-a29d-d7e8eea1cd39&u_sclid=9331619e-e4a6-4487-8893-cc362679f438",
1732
+ url: "https://tr.snapchat.com/cm/i?pid=2295cbcc-cb3f-4727-8c09-1133b742722c&u_scsid=8f048205-5fb8-4c6c-98ea-2992ed17b098&u_sclid=26c261d8-bcad-4186-a3be-fcbce2f60474",
1665
1733
  transferKb: 1,
1666
1734
  decodedKb: 0.7,
1667
1735
  encoding: "none",
1668
- durationMs: 190,
1736
+ durationMs: 183,
1669
1737
  initiatorType: "iframe",
1670
1738
  protocol: "unknown"
1671
1739
  },
@@ -1674,7 +1742,7 @@ const snapchatPixel = {
1674
1742
  transferKb: 0,
1675
1743
  decodedKb: 0,
1676
1744
  encoding: "none",
1677
- durationMs: 120,
1745
+ durationMs: 116,
1678
1746
  initiatorType: "beacon",
1679
1747
  protocol: "unknown"
1680
1748
  }
@@ -1683,7 +1751,7 @@ const snapchatPixel = {
1683
1751
  const redditPixel = {
1684
1752
  totalTransferKb: 19.5,
1685
1753
  totalDecodedKb: 65.3,
1686
- loadTimeMs: 326,
1754
+ loadTimeMs: 319,
1687
1755
  collectsWebVitals: false,
1688
1756
  apis: {
1689
1757
  cookies: true,
@@ -1732,14 +1800,18 @@ const redditPixel = {
1732
1800
  "www.redditstatic.com"
1733
1801
  ],
1734
1802
  outboundBytes: 0,
1735
- inboundBytes: 20080,
1803
+ inboundBytes: 20077,
1736
1804
  injectedElements: [
1805
+ {
1806
+ tag: "img",
1807
+ src: "https://alb.reddit.com/rp.gif?ts=1773925952972&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=feae778e-0f4b-41f7-a5fa-840388c4cbc4&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc="
1808
+ }
1737
1809
  ]
1738
1810
  },
1739
1811
  performance: {
1740
- taskDurationMs: 13,
1741
- scriptDurationMs: 6,
1742
- heapDeltaKb: 978
1812
+ taskDurationMs: 16,
1813
+ scriptDurationMs: 8,
1814
+ heapDeltaKb: 965
1743
1815
  },
1744
1816
  scripts: [
1745
1817
  {
@@ -1747,7 +1819,7 @@ const redditPixel = {
1747
1819
  transferKb: 18.8,
1748
1820
  decodedKb: 65.3,
1749
1821
  encoding: "gzip",
1750
- durationMs: 111,
1822
+ durationMs: 105,
1751
1823
  initiatorType: "script",
1752
1824
  protocol: "unknown"
1753
1825
  },
@@ -1756,25 +1828,25 @@ const redditPixel = {
1756
1828
  transferKb: 0.1,
1757
1829
  decodedKb: 0,
1758
1830
  encoding: "gzip",
1759
- durationMs: 114,
1831
+ durationMs: 106,
1760
1832
  initiatorType: "xmlhttprequest",
1761
1833
  protocol: "unknown"
1762
1834
  },
1763
1835
  {
1764
- url: "https://alb.reddit.com/rp.gif?ts=1773894825136&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=820c55c9-c762-482d-b326-dbfaa3a9d62f&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc=",
1836
+ url: "https://alb.reddit.com/rp.gif?ts=1773925952972&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=feae778e-0f4b-41f7-a5fa-840388c4cbc4&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc=",
1765
1837
  transferKb: 0.6,
1766
1838
  decodedKb: 0,
1767
1839
  encoding: "none",
1768
- durationMs: 326,
1840
+ durationMs: 319,
1769
1841
  initiatorType: "img",
1770
1842
  protocol: "unknown"
1771
1843
  }
1772
1844
  ]
1773
1845
  };
1774
1846
  const googleAdsense = {
1775
- totalTransferKb: 63,
1776
- totalDecodedKb: 191.1,
1777
- loadTimeMs: 296,
1847
+ totalTransferKb: 69.8,
1848
+ totalDecodedKb: 198.2,
1849
+ loadTimeMs: 300,
1778
1850
  collectsWebVitals: true,
1779
1851
  apis: {
1780
1852
  cookies: true,
@@ -1821,31 +1893,40 @@ const googleAdsense = {
1821
1893
  "pagead2.googlesyndication.com"
1822
1894
  ],
1823
1895
  outboundBytes: 0,
1824
- inboundBytes: 64705,
1896
+ inboundBytes: 64713,
1825
1897
  injectedElements: [
1826
1898
  ]
1827
1899
  },
1828
1900
  performance: {
1829
1901
  taskDurationMs: 15,
1830
1902
  scriptDurationMs: 7,
1831
- heapDeltaKb: 1805
1903
+ heapDeltaKb: 1835
1832
1904
  },
1833
1905
  scripts: [
1834
1906
  {
1835
1907
  url: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",
1836
1908
  transferKb: 63,
1837
- decodedKb: 191.1,
1909
+ decodedKb: 191.4,
1838
1910
  encoding: "br",
1839
- durationMs: 296,
1911
+ durationMs: 300,
1840
1912
  initiatorType: "script",
1841
1913
  protocol: "h2"
1914
+ },
1915
+ {
1916
+ url: "https://pagead2.googlesyndication.com/pagead/js/err_rep.js",
1917
+ transferKb: 6.8,
1918
+ decodedKb: 6.8,
1919
+ encoding: "none",
1920
+ durationMs: 0,
1921
+ initiatorType: "secondary",
1922
+ protocol: "unknown"
1842
1923
  }
1843
1924
  ]
1844
1925
  };
1845
1926
  const carbonAds = {
1846
1927
  totalTransferKb: 10.4,
1847
1928
  totalDecodedKb: 34.5,
1848
- loadTimeMs: 74,
1929
+ loadTimeMs: 82,
1849
1930
  collectsWebVitals: false,
1850
1931
  apis: {
1851
1932
  cookies: true,
@@ -1892,14 +1973,14 @@ const carbonAds = {
1892
1973
  "cdn.carbonads.com"
1893
1974
  ],
1894
1975
  outboundBytes: 0,
1895
- inboundBytes: 10652,
1976
+ inboundBytes: 10653,
1896
1977
  injectedElements: [
1897
1978
  ]
1898
1979
  },
1899
1980
  performance: {
1900
1981
  taskDurationMs: 7,
1901
1982
  scriptDurationMs: 1,
1902
- heapDeltaKb: 718
1983
+ heapDeltaKb: 730
1903
1984
  },
1904
1985
  scripts: [
1905
1986
  {
@@ -1907,16 +1988,16 @@ const carbonAds = {
1907
1988
  transferKb: 10.4,
1908
1989
  decodedKb: 34.5,
1909
1990
  encoding: "gzip",
1910
- durationMs: 74,
1991
+ durationMs: 82,
1911
1992
  initiatorType: "script",
1912
1993
  protocol: "unknown"
1913
1994
  }
1914
1995
  ]
1915
1996
  };
1916
1997
  const hotjar = {
1917
- totalTransferKb: 6.2,
1918
- totalDecodedKb: 15,
1919
- loadTimeMs: 339,
1998
+ totalTransferKb: 62.2,
1999
+ totalDecodedKb: 242.5,
2000
+ loadTimeMs: 338,
1920
2001
  collectsWebVitals: false,
1921
2002
  apis: {
1922
2003
  cookies: true,
@@ -1963,14 +2044,14 @@ const hotjar = {
1963
2044
  "static.hotjar.com"
1964
2045
  ],
1965
2046
  outboundBytes: 0,
1966
- inboundBytes: 6330,
2047
+ inboundBytes: 6335,
1967
2048
  injectedElements: [
1968
2049
  ]
1969
2050
  },
1970
2051
  performance: {
1971
2052
  taskDurationMs: 8,
1972
2053
  scriptDurationMs: 1,
1973
- heapDeltaKb: 742
2054
+ heapDeltaKb: 757
1974
2055
  },
1975
2056
  scripts: [
1976
2057
  {
@@ -1978,16 +2059,25 @@ const hotjar = {
1978
2059
  transferKb: 6.2,
1979
2060
  decodedKb: 15,
1980
2061
  encoding: "br",
1981
- durationMs: 339,
2062
+ durationMs: 338,
1982
2063
  initiatorType: "script",
1983
2064
  protocol: "unknown"
2065
+ },
2066
+ {
2067
+ url: "https://script.hotjar.com/modules.a7ec23974042e4df49ed.js",
2068
+ transferKb: 56,
2069
+ decodedKb: 227.5,
2070
+ encoding: "br",
2071
+ durationMs: 0,
2072
+ initiatorType: "secondary",
2073
+ protocol: "unknown"
1984
2074
  }
1985
2075
  ]
1986
2076
  };
1987
2077
  const clarity = {
1988
- totalTransferKb: 27.3,
2078
+ totalTransferKb: 27.2,
1989
2079
  totalDecodedKb: 80.2,
1990
- loadTimeMs: 628,
2080
+ loadTimeMs: 648,
1991
2081
  collectsWebVitals: true,
1992
2082
  apis: {
1993
2083
  cookies: true,
@@ -2035,8 +2125,8 @@ const clarity = {
2035
2125
  "scripts.clarity.ms",
2036
2126
  "www.clarity.ms"
2037
2127
  ],
2038
- outboundBytes: 764,
2039
- inboundBytes: 27893,
2128
+ outboundBytes: 756,
2129
+ inboundBytes: 27824,
2040
2130
  injectedElements: [
2041
2131
  {
2042
2132
  tag: "script",
@@ -2045,17 +2135,17 @@ const clarity = {
2045
2135
  ]
2046
2136
  },
2047
2137
  performance: {
2048
- taskDurationMs: 27,
2049
- scriptDurationMs: 16,
2050
- heapDeltaKb: 1188
2138
+ taskDurationMs: 20,
2139
+ scriptDurationMs: 9,
2140
+ heapDeltaKb: 1199
2051
2141
  },
2052
2142
  scripts: [
2053
2143
  {
2054
2144
  url: "https://www.clarity.ms/tag/mqk2m9dr2v",
2055
- transferKb: 0.9,
2145
+ transferKb: 0.8,
2056
2146
  decodedKb: 0.6,
2057
2147
  encoding: "none",
2058
- durationMs: 364,
2148
+ durationMs: 354,
2059
2149
  initiatorType: "script",
2060
2150
  protocol: "unknown"
2061
2151
  },
@@ -2064,7 +2154,7 @@ const clarity = {
2064
2154
  transferKb: 26.1,
2065
2155
  decodedKb: 79.6,
2066
2156
  encoding: "br",
2067
- durationMs: 129,
2157
+ durationMs: 178,
2068
2158
  initiatorType: "script",
2069
2159
  protocol: "unknown"
2070
2160
  },
@@ -2073,7 +2163,7 @@ const clarity = {
2073
2163
  transferKb: 0.3,
2074
2164
  decodedKb: 0,
2075
2165
  encoding: "none",
2076
- durationMs: 628,
2166
+ durationMs: 648,
2077
2167
  initiatorType: "xmlhttprequest",
2078
2168
  protocol: "unknown"
2079
2169
  }
@@ -2082,7 +2172,7 @@ const clarity = {
2082
2172
  const googleTagManager = {
2083
2173
  totalTransferKb: 108.6,
2084
2174
  totalDecodedKb: 302.5,
2085
- loadTimeMs: 477,
2175
+ loadTimeMs: 460,
2086
2176
  collectsWebVitals: false,
2087
2177
  apis: {
2088
2178
  cookies: true,
@@ -2111,7 +2201,7 @@ const googleTagManager = {
2111
2201
  windowName: true,
2112
2202
  rtcPeerConnection: false,
2113
2203
  geolocation: false,
2114
- serviceWorker: true,
2204
+ serviceWorker: false,
2115
2205
  cacheApi: false,
2116
2206
  sendBeacon: true,
2117
2207
  fetch: true,
@@ -2129,14 +2219,14 @@ const googleTagManager = {
2129
2219
  "www.googletagmanager.com"
2130
2220
  ],
2131
2221
  outboundBytes: 0,
2132
- inboundBytes: 111257,
2222
+ inboundBytes: 111254,
2133
2223
  injectedElements: [
2134
2224
  ]
2135
2225
  },
2136
2226
  performance: {
2137
- taskDurationMs: 16,
2227
+ taskDurationMs: 15,
2138
2228
  scriptDurationMs: 6,
2139
- heapDeltaKb: 1801
2229
+ heapDeltaKb: 1810
2140
2230
  },
2141
2231
  scripts: [
2142
2232
  {
@@ -2144,16 +2234,16 @@ const googleTagManager = {
2144
2234
  transferKb: 108.6,
2145
2235
  decodedKb: 302.5,
2146
2236
  encoding: "zstd",
2147
- durationMs: 477,
2237
+ durationMs: 460,
2148
2238
  initiatorType: "script",
2149
2239
  protocol: "unknown"
2150
2240
  }
2151
2241
  ]
2152
2242
  };
2153
2243
  const intercom = {
2154
- totalTransferKb: 3.6,
2155
- totalDecodedKb: 7.4,
2156
- loadTimeMs: 703,
2244
+ totalTransferKb: 9669.5,
2245
+ totalDecodedKb: 10437.8,
2246
+ loadTimeMs: 724,
2157
2247
  collectsWebVitals: false,
2158
2248
  apis: {
2159
2249
  cookies: true,
@@ -2164,12 +2254,12 @@ const intercom = {
2164
2254
  webgl: false,
2165
2255
  audioContext: false,
2166
2256
  userAgent: true,
2167
- doNotTrack: false,
2257
+ doNotTrack: true,
2168
2258
  hardwareConcurrency: false,
2169
2259
  deviceMemory: false,
2170
2260
  plugins: false,
2171
2261
  languages: false,
2172
- screen: false,
2262
+ screen: true,
2173
2263
  timezone: true,
2174
2264
  platform: true,
2175
2265
  vendor: true,
@@ -2184,10 +2274,10 @@ const intercom = {
2184
2274
  geolocation: false,
2185
2275
  serviceWorker: false,
2186
2276
  cacheApi: false,
2187
- sendBeacon: false,
2277
+ sendBeacon: true,
2188
2278
  fetch: true,
2189
2279
  xhr: true,
2190
- websocket: false,
2280
+ websocket: true,
2191
2281
  mutationObserver: true,
2192
2282
  performanceObserver: false,
2193
2283
  intersectionObserver: false
@@ -2200,14 +2290,14 @@ const intercom = {
2200
2290
  "widget.intercom.io"
2201
2291
  ],
2202
2292
  outboundBytes: 0,
2203
- inboundBytes: 3701,
2293
+ inboundBytes: 3706,
2204
2294
  injectedElements: [
2205
2295
  ]
2206
2296
  },
2207
2297
  performance: {
2208
2298
  taskDurationMs: 6,
2209
2299
  scriptDurationMs: 0,
2210
- heapDeltaKb: 712
2300
+ heapDeltaKb: 726
2211
2301
  },
2212
2302
  scripts: [
2213
2303
  {
@@ -2215,16 +2305,52 @@ const intercom = {
2215
2305
  transferKb: 3.6,
2216
2306
  decodedKb: 7.4,
2217
2307
  encoding: "gzip",
2218
- durationMs: 703,
2308
+ durationMs: 724,
2219
2309
  initiatorType: "script",
2220
2310
  protocol: "unknown"
2311
+ },
2312
+ {
2313
+ url: "https://js.intercomcdn.com/intersection/assets/app.js",
2314
+ transferKb: 7165.2,
2315
+ decodedKb: 7165.2,
2316
+ encoding: "br",
2317
+ durationMs: 0,
2318
+ initiatorType: "secondary",
2319
+ protocol: "unknown"
2320
+ },
2321
+ {
2322
+ url: "https://js.intercomcdn.com/intersection/assets/styles.js",
2323
+ transferKb: 2167.9,
2324
+ decodedKb: 2167.9,
2325
+ encoding: "br",
2326
+ durationMs: 0,
2327
+ initiatorType: "secondary",
2328
+ protocol: "unknown"
2329
+ },
2330
+ {
2331
+ url: "https://js.intercomcdn.com/vendor-modern.1d25c940.js",
2332
+ transferKb: 142.8,
2333
+ decodedKb: 467,
2334
+ encoding: "gzip",
2335
+ durationMs: 0,
2336
+ initiatorType: "secondary",
2337
+ protocol: "unknown"
2338
+ },
2339
+ {
2340
+ url: "https://js.intercomcdn.com/frame-modern.458ee37e.js",
2341
+ transferKb: 190,
2342
+ decodedKb: 630.3,
2343
+ encoding: "gzip",
2344
+ durationMs: 0,
2345
+ initiatorType: "secondary",
2346
+ protocol: "unknown"
2221
2347
  }
2222
2348
  ]
2223
2349
  };
2224
2350
  const crisp = {
2225
- totalTransferKb: 3.3,
2226
- totalDecodedKb: 7.5,
2227
- loadTimeMs: 156,
2351
+ totalTransferKb: 324.9,
2352
+ totalDecodedKb: 329.1,
2353
+ loadTimeMs: 98,
2228
2354
  collectsWebVitals: false,
2229
2355
  apis: {
2230
2356
  cookies: true,
@@ -2252,7 +2378,7 @@ const crisp = {
2252
2378
  referrer: true,
2253
2379
  windowName: false,
2254
2380
  rtcPeerConnection: true,
2255
- geolocation: true,
2381
+ geolocation: false,
2256
2382
  serviceWorker: false,
2257
2383
  cacheApi: false,
2258
2384
  sendBeacon: false,
@@ -2271,14 +2397,14 @@ const crisp = {
2271
2397
  "client.crisp.chat"
2272
2398
  ],
2273
2399
  outboundBytes: 0,
2274
- inboundBytes: 3376,
2400
+ inboundBytes: 3374,
2275
2401
  injectedElements: [
2276
2402
  ]
2277
2403
  },
2278
2404
  performance: {
2279
- taskDurationMs: 7,
2280
- scriptDurationMs: 1,
2281
- heapDeltaKb: 726
2405
+ taskDurationMs: 6,
2406
+ scriptDurationMs: 0,
2407
+ heapDeltaKb: 741
2282
2408
  },
2283
2409
  scripts: [
2284
2410
  {
@@ -2286,16 +2412,25 @@ const crisp = {
2286
2412
  transferKb: 3.3,
2287
2413
  decodedKb: 7.5,
2288
2414
  encoding: "br",
2289
- durationMs: 156,
2415
+ durationMs: 98,
2290
2416
  initiatorType: "script",
2291
2417
  protocol: "unknown"
2418
+ },
2419
+ {
2420
+ url: "https://client.crisp.chat/static/javascripts/client_default_db1a904.js",
2421
+ transferKb: 321.6,
2422
+ decodedKb: 321.6,
2423
+ encoding: "br",
2424
+ durationMs: 0,
2425
+ initiatorType: "secondary",
2426
+ protocol: "unknown"
2292
2427
  }
2293
2428
  ]
2294
2429
  };
2295
2430
  const stripe = {
2296
- totalTransferKb: 214,
2297
- totalDecodedKb: 926.3,
2298
- loadTimeMs: 181,
2431
+ totalTransferKb: 214.4,
2432
+ totalDecodedKb: 926.5,
2433
+ loadTimeMs: 171,
2299
2434
  collectsWebVitals: false,
2300
2435
  apis: {
2301
2436
  cookies: true,
@@ -2335,21 +2470,36 @@ const stripe = {
2335
2470
  intersectionObserver: true
2336
2471
  },
2337
2472
  cookies: [
2473
+ {
2474
+ name: "m",
2475
+ domain: "m.stripe.com",
2476
+ path: "/",
2477
+ httpOnly: true,
2478
+ secure: true,
2479
+ sameSite: "None",
2480
+ session: false,
2481
+ lifetimeDays: 400,
2482
+ firstParty: false
2483
+ }
2338
2484
  ],
2339
2485
  network: {
2340
- requestCount: 1,
2486
+ requestCount: 2,
2341
2487
  domains: [
2342
2488
  "js.stripe.com"
2343
2489
  ],
2344
2490
  outboundBytes: 0,
2345
- inboundBytes: 219406,
2491
+ inboundBytes: 219407,
2346
2492
  injectedElements: [
2493
+ {
2494
+ tag: "iframe",
2495
+ src: "https://js.stripe.com/v3/m-outer-3437aaddcdf6922d623e172c2d6f9278.html#url=http%3A%2F%2F127.0.0.1%3A34289%2Fstripe&title=&referrer=&muid=NA&sid=NA&version=6&preview=false&__shared_params__[version]=v3"
2496
+ }
2347
2497
  ]
2348
2498
  },
2349
2499
  performance: {
2350
- taskDurationMs: 56,
2351
- scriptDurationMs: 24,
2352
- heapDeltaKb: 2336
2500
+ taskDurationMs: 90,
2501
+ scriptDurationMs: 13,
2502
+ heapDeltaKb: 4113
2353
2503
  },
2354
2504
  scripts: [
2355
2505
  {
@@ -2357,16 +2507,25 @@ const stripe = {
2357
2507
  transferKb: 214,
2358
2508
  decodedKb: 926.3,
2359
2509
  encoding: "br",
2360
- durationMs: 181,
2510
+ durationMs: 171,
2361
2511
  initiatorType: "script",
2362
2512
  protocol: "h2"
2513
+ },
2514
+ {
2515
+ url: "https://js.stripe.com/v3/m-outer-3437aaddcdf6922d623e172c2d6f9278.html#url=http%3A%2F%2F127.0.0.1%3A34289%2Fstripe&title=&referrer=&muid=NA&sid=NA&version=6&preview=false&__shared_params__[version]=v3",
2516
+ transferKb: 0.4,
2517
+ decodedKb: 0.2,
2518
+ encoding: "none",
2519
+ durationMs: 29,
2520
+ initiatorType: "iframe",
2521
+ protocol: "h2"
2363
2522
  }
2364
2523
  ]
2365
2524
  };
2366
2525
  const lemonSqueezy = {
2367
2526
  totalTransferKb: 1.8,
2368
2527
  totalDecodedKb: 3.8,
2369
- loadTimeMs: 115,
2528
+ loadTimeMs: 104,
2370
2529
  collectsWebVitals: false,
2371
2530
  apis: {
2372
2531
  cookies: true,
@@ -2413,14 +2572,14 @@ const lemonSqueezy = {
2413
2572
  "assets.lemonsqueezy.com"
2414
2573
  ],
2415
2574
  outboundBytes: 0,
2416
- inboundBytes: 1832,
2575
+ inboundBytes: 1839,
2417
2576
  injectedElements: [
2418
2577
  ]
2419
2578
  },
2420
2579
  performance: {
2421
- taskDurationMs: 7,
2580
+ taskDurationMs: 5,
2422
2581
  scriptDurationMs: 0,
2423
- heapDeltaKb: 709
2582
+ heapDeltaKb: 720
2424
2583
  },
2425
2584
  scripts: [
2426
2585
  {
@@ -2428,49 +2587,49 @@ const lemonSqueezy = {
2428
2587
  transferKb: 1.8,
2429
2588
  decodedKb: 3.8,
2430
2589
  encoding: "br",
2431
- durationMs: 115,
2590
+ durationMs: 104,
2432
2591
  initiatorType: "script",
2433
2592
  protocol: "unknown"
2434
2593
  }
2435
2594
  ]
2436
2595
  };
2437
2596
  const paypal = {
2438
- totalTransferKb: 48.8,
2439
- totalDecodedKb: 148,
2440
- loadTimeMs: 152,
2597
+ totalTransferKb: 95.5,
2598
+ totalDecodedKb: 288.8,
2599
+ loadTimeMs: 159,
2441
2600
  collectsWebVitals: false,
2442
2601
  apis: {
2443
- cookies: false,
2444
- localStorage: false,
2602
+ cookies: true,
2603
+ localStorage: true,
2445
2604
  sessionStorage: false,
2446
- indexedDB: false,
2447
- canvas: false,
2448
- webgl: false,
2605
+ indexedDB: true,
2606
+ canvas: true,
2607
+ webgl: true,
2449
2608
  audioContext: false,
2450
2609
  userAgent: true,
2451
2610
  doNotTrack: false,
2452
- hardwareConcurrency: false,
2453
- deviceMemory: false,
2454
- plugins: false,
2611
+ hardwareConcurrency: true,
2612
+ deviceMemory: true,
2613
+ plugins: true,
2455
2614
  languages: true,
2456
2615
  screen: false,
2457
- timezone: false,
2616
+ timezone: true,
2458
2617
  platform: false,
2459
- vendor: false,
2618
+ vendor: true,
2460
2619
  connection: true,
2461
- maxTouchPoints: false,
2462
- devicePixelRatio: false,
2463
- mediaDevices: false,
2620
+ maxTouchPoints: true,
2621
+ devicePixelRatio: true,
2622
+ mediaDevices: true,
2464
2623
  getBattery: false,
2465
- referrer: false,
2624
+ referrer: true,
2466
2625
  windowName: false,
2467
- rtcPeerConnection: false,
2468
- geolocation: false,
2469
- serviceWorker: false,
2626
+ rtcPeerConnection: true,
2627
+ geolocation: true,
2628
+ serviceWorker: true,
2470
2629
  cacheApi: false,
2471
2630
  sendBeacon: true,
2472
2631
  fetch: true,
2473
- xhr: false,
2632
+ xhr: true,
2474
2633
  websocket: false,
2475
2634
  mutationObserver: false,
2476
2635
  performanceObserver: false,
@@ -2489,9 +2648,9 @@ const paypal = {
2489
2648
  ]
2490
2649
  },
2491
2650
  performance: {
2492
- taskDurationMs: 26,
2493
- scriptDurationMs: 15,
2494
- heapDeltaKb: 1670
2651
+ taskDurationMs: 21,
2652
+ scriptDurationMs: 11,
2653
+ heapDeltaKb: 1682
2495
2654
  },
2496
2655
  scripts: [
2497
2656
  {
@@ -2499,16 +2658,34 @@ const paypal = {
2499
2658
  transferKb: 48.8,
2500
2659
  decodedKb: 148,
2501
2660
  encoding: "gzip",
2502
- durationMs: 152,
2661
+ durationMs: 159,
2503
2662
  initiatorType: "script",
2504
2663
  protocol: "unknown"
2664
+ },
2665
+ {
2666
+ url: "https://c.paypal.com/da/r/fb.js?${d}`:",
2667
+ transferKb: 23.3,
2668
+ decodedKb: 70.4,
2669
+ encoding: "gzip",
2670
+ durationMs: 0,
2671
+ initiatorType: "secondary",
2672
+ protocol: "unknown"
2673
+ },
2674
+ {
2675
+ url: "https://c.paypal.com/da/r/fb.js",
2676
+ transferKb: 23.4,
2677
+ decodedKb: 70.4,
2678
+ encoding: "gzip",
2679
+ durationMs: 0,
2680
+ initiatorType: "secondary",
2681
+ protocol: "unknown"
2505
2682
  }
2506
2683
  ]
2507
2684
  };
2508
2685
  const vimeoPlayer = {
2509
2686
  totalTransferKb: 8.9,
2510
2687
  totalDecodedKb: 23.8,
2511
- loadTimeMs: 91,
2688
+ loadTimeMs: 96,
2512
2689
  collectsWebVitals: false,
2513
2690
  apis: {
2514
2691
  cookies: false,
@@ -2542,7 +2719,7 @@ const vimeoPlayer = {
2542
2719
  sendBeacon: false,
2543
2720
  fetch: false,
2544
2721
  xhr: true,
2545
- websocket: true,
2722
+ websocket: false,
2546
2723
  mutationObserver: false,
2547
2724
  performanceObserver: false,
2548
2725
  intersectionObserver: false
@@ -2584,7 +2761,7 @@ const vimeoPlayer = {
2584
2761
  performance: {
2585
2762
  taskDurationMs: 7,
2586
2763
  scriptDurationMs: 0,
2587
- heapDeltaKb: 730
2764
+ heapDeltaKb: 742
2588
2765
  },
2589
2766
  scripts: [
2590
2767
  {
@@ -2592,7 +2769,7 @@ const vimeoPlayer = {
2592
2769
  transferKb: 8.9,
2593
2770
  decodedKb: 23.8,
2594
2771
  encoding: "gzip",
2595
- durationMs: 91,
2772
+ durationMs: 96,
2596
2773
  initiatorType: "script",
2597
2774
  protocol: "unknown"
2598
2775
  }
@@ -2601,7 +2778,7 @@ const vimeoPlayer = {
2601
2778
  const youtubePlayer = {
2602
2779
  totalTransferKb: 14,
2603
2780
  totalDecodedKb: 32.4,
2604
- loadTimeMs: 341,
2781
+ loadTimeMs: 289,
2605
2782
  collectsWebVitals: false,
2606
2783
  apis: {
2607
2784
  cookies: false,
@@ -2611,7 +2788,7 @@ const youtubePlayer = {
2611
2788
  canvas: false,
2612
2789
  webgl: false,
2613
2790
  audioContext: false,
2614
- userAgent: true,
2791
+ userAgent: false,
2615
2792
  doNotTrack: false,
2616
2793
  hardwareConcurrency: false,
2617
2794
  deviceMemory: false,
@@ -2703,7 +2880,7 @@ const youtubePlayer = {
2703
2880
  "www.youtube.com"
2704
2881
  ],
2705
2882
  outboundBytes: 0,
2706
- inboundBytes: 14262,
2883
+ inboundBytes: 14267,
2707
2884
  injectedElements: [
2708
2885
  {
2709
2886
  tag: "script",
@@ -2712,9 +2889,9 @@ const youtubePlayer = {
2712
2889
  ]
2713
2890
  },
2714
2891
  performance: {
2715
- taskDurationMs: 8,
2892
+ taskDurationMs: 7,
2716
2893
  scriptDurationMs: 1,
2717
- heapDeltaKb: 800
2894
+ heapDeltaKb: 811
2718
2895
  },
2719
2896
  scripts: [
2720
2897
  {
@@ -2722,7 +2899,7 @@ const youtubePlayer = {
2722
2899
  transferKb: 3.4,
2723
2900
  decodedKb: 1,
2724
2901
  encoding: "br",
2725
- durationMs: 341,
2902
+ durationMs: 289,
2726
2903
  initiatorType: "script",
2727
2904
  protocol: "unknown"
2728
2905
  },
@@ -2731,7 +2908,7 @@ const youtubePlayer = {
2731
2908
  transferKb: 10.6,
2732
2909
  decodedKb: 31.4,
2733
2910
  encoding: "br",
2734
- durationMs: 21,
2911
+ durationMs: 20,
2735
2912
  initiatorType: "script",
2736
2913
  protocol: "unknown"
2737
2914
  }
@@ -2862,11 +3039,11 @@ const npm = {
2862
3039
  const googleRecaptcha = {
2863
3040
  totalTransferKb: 363.9,
2864
3041
  totalDecodedKb: 852,
2865
- loadTimeMs: 244,
3042
+ loadTimeMs: 250,
2866
3043
  collectsWebVitals: false,
2867
3044
  apis: {
2868
- cookies: true,
2869
- localStorage: true,
3045
+ cookies: false,
3046
+ localStorage: false,
2870
3047
  sessionStorage: true,
2871
3048
  indexedDB: false,
2872
3049
  canvas: false,
@@ -2919,9 +3096,9 @@ const googleRecaptcha = {
2919
3096
  ]
2920
3097
  },
2921
3098
  performance: {
2922
- taskDurationMs: 74,
2923
- scriptDurationMs: 41,
2924
- heapDeltaKb: 2997
3099
+ taskDurationMs: 68,
3100
+ scriptDurationMs: 38,
3101
+ heapDeltaKb: 3011
2925
3102
  },
2926
3103
  scripts: [
2927
3104
  {
@@ -2929,7 +3106,7 @@ const googleRecaptcha = {
2929
3106
  transferKb: 1.5,
2930
3107
  decodedKb: 1.5,
2931
3108
  encoding: "gzip",
2932
- durationMs: 244,
3109
+ durationMs: 250,
2933
3110
  initiatorType: "script",
2934
3111
  protocol: "unknown"
2935
3112
  },
@@ -2938,7 +3115,7 @@ const googleRecaptcha = {
2938
3115
  transferKb: 362.4,
2939
3116
  decodedKb: 850.5,
2940
3117
  encoding: "gzip",
2941
- durationMs: 226,
3118
+ durationMs: 235,
2942
3119
  initiatorType: "script",
2943
3120
  protocol: "h2"
2944
3121
  }
@@ -2947,10 +3124,10 @@ const googleRecaptcha = {
2947
3124
  const googleSignIn = {
2948
3125
  totalTransferKb: 92.1,
2949
3126
  totalDecodedKb: 247.6,
2950
- loadTimeMs: 572,
3127
+ loadTimeMs: 563,
2951
3128
  collectsWebVitals: false,
2952
3129
  apis: {
2953
- cookies: true,
3130
+ cookies: false,
2954
3131
  localStorage: false,
2955
3132
  sessionStorage: true,
2956
3133
  indexedDB: false,
@@ -2994,14 +3171,14 @@ const googleSignIn = {
2994
3171
  "accounts.google.com"
2995
3172
  ],
2996
3173
  outboundBytes: 0,
2997
- inboundBytes: 94340,
3174
+ inboundBytes: 94339,
2998
3175
  injectedElements: [
2999
3176
  ]
3000
3177
  },
3001
3178
  performance: {
3002
- taskDurationMs: 15,
3003
- scriptDurationMs: 5,
3004
- heapDeltaKb: 1198
3179
+ taskDurationMs: 11,
3180
+ scriptDurationMs: 2,
3181
+ heapDeltaKb: 1210
3005
3182
  },
3006
3183
  scripts: [
3007
3184
  {
@@ -3009,7 +3186,7 @@ const googleSignIn = {
3009
3186
  transferKb: 92.1,
3010
3187
  decodedKb: 247.6,
3011
3188
  encoding: "gzip",
3012
- durationMs: 572,
3189
+ durationMs: 563,
3013
3190
  initiatorType: "script",
3014
3191
  protocol: "unknown"
3015
3192
  }
@@ -3079,7 +3256,7 @@ const blueskyEmbed = {
3079
3256
  const instagramEmbed = {
3080
3257
  totalTransferKb: 33.9,
3081
3258
  totalDecodedKb: 102.2,
3082
- loadTimeMs: 327,
3259
+ loadTimeMs: 338,
3083
3260
  collectsWebVitals: false,
3084
3261
  apis: {
3085
3262
  cookies: false,
@@ -3126,14 +3303,14 @@ const instagramEmbed = {
3126
3303
  "www.instagram.com"
3127
3304
  ],
3128
3305
  outboundBytes: 0,
3129
- inboundBytes: 36790,
3306
+ inboundBytes: 36788,
3130
3307
  injectedElements: [
3131
3308
  ]
3132
3309
  },
3133
3310
  performance: {
3134
- taskDurationMs: 16,
3135
- scriptDurationMs: 9,
3136
- heapDeltaKb: 875
3311
+ taskDurationMs: 11,
3312
+ scriptDurationMs: 5,
3313
+ heapDeltaKb: 886
3137
3314
  },
3138
3315
  scripts: [
3139
3316
  {
@@ -3141,7 +3318,7 @@ const instagramEmbed = {
3141
3318
  transferKb: 33.9,
3142
3319
  decodedKb: 102.2,
3143
3320
  encoding: "zstd",
3144
- durationMs: 327,
3321
+ durationMs: 338,
3145
3322
  initiatorType: "script",
3146
3323
  protocol: "h2"
3147
3324
  }
@@ -3154,7 +3331,7 @@ const xEmbed = {
3154
3331
  collectsWebVitals: false,
3155
3332
  apis: {
3156
3333
  cookies: false,
3157
- localStorage: true,
3334
+ localStorage: false,
3158
3335
  sessionStorage: false,
3159
3336
  indexedDB: false,
3160
3337
  canvas: false,
@@ -3183,7 +3360,7 @@ const xEmbed = {
3183
3360
  cacheApi: false,
3184
3361
  sendBeacon: false,
3185
3362
  fetch: false,
3186
- xhr: true,
3363
+ xhr: false,
3187
3364
  websocket: false,
3188
3365
  mutationObserver: true,
3189
3366
  performanceObserver: false,
@@ -3202,14 +3379,14 @@ const xEmbed = {
3202
3379
  injectedElements: [
3203
3380
  {
3204
3381
  tag: "iframe",
3205
- src: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A34081"
3382
+ src: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A34289"
3206
3383
  }
3207
3384
  ]
3208
3385
  },
3209
3386
  performance: {
3210
- taskDurationMs: 49,
3211
- scriptDurationMs: 14,
3212
- heapDeltaKb: 2457
3387
+ taskDurationMs: 40,
3388
+ scriptDurationMs: 13,
3389
+ heapDeltaKb: 2476
3213
3390
  },
3214
3391
  scripts: [
3215
3392
  {
@@ -3222,20 +3399,20 @@ const xEmbed = {
3222
3399
  protocol: "unknown"
3223
3400
  },
3224
3401
  {
3225
- url: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A34081",
3402
+ url: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A34289",
3226
3403
  transferKb: 103.2,
3227
3404
  decodedKb: 319.5,
3228
3405
  encoding: "gzip",
3229
- durationMs: 52,
3406
+ durationMs: 50,
3230
3407
  initiatorType: "iframe",
3231
3408
  protocol: "unknown"
3232
3409
  }
3233
3410
  ]
3234
3411
  };
3235
3412
  const gravatar = {
3236
- totalTransferKb: 0,
3237
- totalDecodedKb: 0,
3238
- loadTimeMs: 0,
3413
+ totalTransferKb: 7.1,
3414
+ totalDecodedKb: 21.3,
3415
+ loadTimeMs: 65,
3239
3416
  collectsWebVitals: false,
3240
3417
  apis: {
3241
3418
  cookies: false,
@@ -3267,7 +3444,7 @@ const gravatar = {
3267
3444
  serviceWorker: false,
3268
3445
  cacheApi: false,
3269
3446
  sendBeacon: false,
3270
- fetch: false,
3447
+ fetch: true,
3271
3448
  xhr: false,
3272
3449
  websocket: false,
3273
3450
  mutationObserver: false,
@@ -3277,20 +3454,30 @@ const gravatar = {
3277
3454
  cookies: [
3278
3455
  ],
3279
3456
  network: {
3280
- requestCount: 0,
3457
+ requestCount: 1,
3281
3458
  domains: [
3459
+ "secure.gravatar.com"
3282
3460
  ],
3283
3461
  outboundBytes: 0,
3284
- inboundBytes: 0,
3462
+ inboundBytes: 7295,
3285
3463
  injectedElements: [
3286
3464
  ]
3287
3465
  },
3288
3466
  performance: {
3289
- taskDurationMs: 0,
3467
+ taskDurationMs: 6,
3290
3468
  scriptDurationMs: 0,
3291
- heapDeltaKb: 0
3469
+ heapDeltaKb: 717
3292
3470
  },
3293
3471
  scripts: [
3472
+ {
3473
+ url: "https://secure.gravatar.com/js/gprofiles.js",
3474
+ transferKb: 7.1,
3475
+ decodedKb: 21.3,
3476
+ encoding: "br",
3477
+ durationMs: 65,
3478
+ initiatorType: "script",
3479
+ protocol: "unknown"
3480
+ }
3294
3481
  ]
3295
3482
  };
3296
3483
  const scriptSizes = {
@@ -3334,28 +3521,178 @@ const scriptSizes = {
3334
3521
  gravatar: gravatar
3335
3522
  };
3336
3523
 
3337
- const PERSISTENCE_APIS = ["cookies", "localStorage", "sessionStorage", "indexedDB"];
3338
- const FINGERPRINTING_APIS = ["canvas", "webgl", "audioContext", "deviceMemory", "hardwareConcurrency", "plugins", "screen", "userAgent", "languages", "timezone", "platform", "vendor", "connection", "maxTouchPoints", "devicePixelRatio", "mediaDevices", "getBattery"];
3339
- const TRACKING_APIS = ["referrer", "windowName", "rtcPeerConnection", "geolocation", "serviceWorker", "cacheApi"];
3340
- const MONITORING_APIS = ["mutationObserver", "intersectionObserver"];
3341
- const PERSISTENCE_WEIGHT = 10;
3342
- const TRACKING_WEIGHT = 8;
3343
- const FINGERPRINTING_WEIGHT = 6;
3344
- const MONITORING_WEIGHT = 4;
3345
- const MAX_SCORE = PERSISTENCE_APIS.length * PERSISTENCE_WEIGHT + TRACKING_APIS.length * TRACKING_WEIGHT + FINGERPRINTING_APIS.length * FINGERPRINTING_WEIGHT + MONITORING_APIS.length * MONITORING_WEIGHT;
3346
- function computeApiPrivacyScore(apis) {
3347
- const count = (keys) => keys.filter((k) => apis[k]).length;
3348
- const persistence = count(PERSISTENCE_APIS);
3349
- const fingerprinting = count(FINGERPRINTING_APIS);
3350
- const tracking = count(TRACKING_APIS);
3351
- const monitoring = count(MONITORING_APIS);
3352
- const raw = persistence * PERSISTENCE_WEIGHT + tracking * TRACKING_WEIGHT + fingerprinting * FINGERPRINTING_WEIGHT + monitoring * MONITORING_WEIGHT;
3524
+ const FINGERPRINT_ENTROPY = {
3525
+ canvas: 6,
3526
+ // ~17 bits renders unique per GPU/driver/font stack
3527
+ webgl: 6,
3528
+ // ~15 bits — GPU renderer string uniquely identifies hardware
3529
+ audioContext: 5,
3530
+ // ~12 bits — audio processing stack fingerprint
3531
+ rtcPeerConnection: 4,
3532
+ // leaks real IP behind VPN, enables WebRTC fingerprinting
3533
+ mediaDevices: 3,
3534
+ // enumerates cameras/mics hardware inventory
3535
+ plugins: 3,
3536
+ // historically ~15 bits, declining in modern browsers
3537
+ screen: 3,
3538
+ // ~8 bits — resolution + colorDepth
3539
+ geolocation: 3,
3540
+ // precise location (requires permission but very invasive)
3541
+ timezone: 2,
3542
+ // ~5 bits
3543
+ languages: 2,
3544
+ // ~5 bits
3545
+ hardwareConcurrency: 2,
3546
+ // ~3.5 bits — CPU core count
3547
+ deviceMemory: 2,
3548
+ // ~2.5 bits — RAM bucket
3549
+ userAgent: 1,
3550
+ // being frozen by UA-CH, declining utility
3551
+ platform: 1,
3552
+ // ~3 bits but highly correlated with userAgent
3553
+ vendor: 1,
3554
+ // low entropy, mostly "Google Inc."
3555
+ maxTouchPoints: 1,
3556
+ // ~2 bits
3557
+ devicePixelRatio: 1,
3558
+ // ~3 bits but correlated with screen
3559
+ connection: 1,
3560
+ // network type — low entropy
3561
+ getBattery: 1
3562
+ // low entropy but privacy concern (removed from most browsers)
3563
+ };
3564
+ const MAX_FINGERPRINT = Object.values(FINGERPRINT_ENTROPY).reduce((a, b) => a + b, 0);
3565
+ const STORAGE_API_WEIGHT = {
3566
+ cookies: 4,
3567
+ // cross-domain capable, most abused
3568
+ localStorage: 3,
3569
+ // persistent, survives tab close
3570
+ indexedDB: 3,
3571
+ // large persistent storage
3572
+ sessionStorage: 1
3573
+ // session-scoped, less invasive
3574
+ };
3575
+ const MAX_STORAGE_API = Object.values(STORAGE_API_WEIGHT).reduce((a, b) => a + b, 0);
3576
+ const MONITOR_WEIGHT = {
3577
+ mutationObserver: 5,
3578
+ // sees all DOM changes — behavioral tracking
3579
+ intersectionObserver: 3,
3580
+ // viewport/scroll tracking
3581
+ windowName: 2
3582
+ // cross-origin data channel
3583
+ };
3584
+ const MAX_MONITOR = Object.values(MONITOR_WEIGHT).reduce((a, b) => a + b, 0);
3585
+ const DATA_SCOPE_WEIGHT = {
3586
+ "session-replay": 5,
3587
+ // records entire user session
3588
+ "heatmaps": 4,
3589
+ // tracks mouse movement / attention
3590
+ "user-identity": 4,
3591
+ // PII-adjacent
3592
+ "retargeting": 3,
3593
+ // cross-site ad following
3594
+ "audiences": 3,
3595
+ // user profiling
3596
+ "ab-testing": 2,
3597
+ // behavioral segmentation
3598
+ "form-submissions": 2,
3599
+ // captures input data
3600
+ "clicks": 1,
3601
+ "scrolls": 1,
3602
+ "conversions": 1,
3603
+ "events": 0,
3604
+ // basic analytics, expected
3605
+ "page-views": 0,
3606
+ // basic analytics, expected
3607
+ "transactions": 1,
3608
+ "errors": 0,
3609
+ // functional
3610
+ "video-engagement": 0,
3611
+ "tag-injection": 5
3612
+ // loads unknown third-party code — wildcard privacy risk
3613
+ };
3614
+ const KNOWN_UNDETECTED_APIS = {
3615
+ // reCAPTCHA: bot detection fingerprints via canvas, webgl, audio — heavily obfuscated
3616
+ googleRecaptcha: ["canvas", "webgl", "audioContext"]
3617
+ };
3618
+ const HEAVY_FP_APIS = ["canvas", "webgl", "audioContext", "rtcPeerConnection"];
3619
+ const KNOWN_FUNCTIONAL_APIS = {
3620
+ // Crisp: voice/video chat requires audio, WebRTC, and camera/mic enumeration
3621
+ crisp: ["audioContext", "rtcPeerConnection", "mediaDevices"],
3622
+ // Intercom: canvas used for UI rendering, not fingerprinting
3623
+ intercom: ["canvas"]
3624
+ };
3625
+ function computePrivacyRating(apis, cookies, network, trackedData, functionalApis) {
3626
+ const fingerprintApis = [];
3627
+ let fingerprintRaw = 0;
3628
+ for (const [api, weight] of Object.entries(FINGERPRINT_ENTROPY)) {
3629
+ if (apis[api]) {
3630
+ fingerprintRaw += weight;
3631
+ fingerprintApis.push(api);
3632
+ }
3633
+ }
3634
+ const fingerprintScore = Math.round(fingerprintRaw / MAX_FINGERPRINT * 30);
3635
+ const storageApis = [];
3636
+ let storageRaw = 0;
3637
+ for (const [api, weight] of Object.entries(STORAGE_API_WEIGHT)) {
3638
+ if (apis[api]) {
3639
+ storageRaw += weight;
3640
+ storageApis.push(api);
3641
+ }
3642
+ }
3643
+ const storageScore = Math.round(storageRaw / MAX_STORAGE_API * 10);
3644
+ const thirdPartyCookies = cookies.filter((c) => !c.firstParty).length;
3645
+ const longLivedCookies = cookies.filter((c) => c.lifetimeDays > 30).length;
3646
+ const cookieScore = Math.min(9, thirdPartyCookies * 3) + Math.min(6, longLivedCookies * 2);
3647
+ const persistenceScore = Math.min(25, storageScore + cookieScore);
3648
+ const domainCount = network.domains.length;
3649
+ const domainScore = Math.min(12, Math.max(0, domainCount - 1) * 4);
3650
+ const pixelQueryBytes = network.injectedElements.filter((e) => e.tag === "img" && e.src.includes("?")).reduce((sum, e) => sum + new URL(e.src).search.length, 0);
3651
+ const totalOutbound = network.outboundBytes + pixelQueryBytes;
3652
+ const outboundScore = totalOutbound === 0 ? 0 : Math.min(8, Math.ceil(totalOutbound / 250));
3653
+ const trackingPixels = network.injectedElements.filter((e) => e.tag === "img").length;
3654
+ const injectedIframes = network.injectedElements.filter((e) => e.tag === "iframe").length;
3655
+ const injectionScore = Math.min(5, trackingPixels * 3 + injectedIframes * 2);
3656
+ const networkScore = Math.min(25, domainScore + outboundScore + injectionScore);
3657
+ const monitorApis = [];
3658
+ let monitorRaw = 0;
3659
+ for (const [api, weight] of Object.entries(MONITOR_WEIGHT)) {
3660
+ if (apis[api]) {
3661
+ monitorRaw += weight;
3662
+ monitorApis.push(api);
3663
+ }
3664
+ }
3665
+ const monitorScore = Math.round(monitorRaw / MAX_MONITOR * 10);
3666
+ const scopeTypes = trackedData.filter((t) => (DATA_SCOPE_WEIGHT[t] ?? 0) > 0);
3667
+ const scopeRaw = trackedData.reduce((sum, t) => sum + (DATA_SCOPE_WEIGHT[t] ?? 0), 0);
3668
+ const scopeScore = Math.min(10, scopeRaw);
3669
+ const heavyFpApis = HEAVY_FP_APIS.filter((api) => apis[api] && !functionalApis?.has(api));
3670
+ const hasExfiltration = totalOutbound > 0 || domainCount > 1 || trackingPixels > 0 || apis.sendBeacon;
3671
+ const fpExfilScore = heavyFpApis.length > 0 && hasExfiltration ? Math.min(25, heavyFpApis.length * 9) : 0;
3672
+ const score = fingerprintScore + persistenceScore + networkScore + monitorScore + scopeScore + fpExfilScore;
3673
+ let grade;
3674
+ if (score <= 5)
3675
+ grade = "A+";
3676
+ else if (score <= 15)
3677
+ grade = "A";
3678
+ else if (score <= 30)
3679
+ grade = "B";
3680
+ else if (score <= 50)
3681
+ grade = "C";
3682
+ else if (score <= 70)
3683
+ grade = "D";
3684
+ else grade = "F";
3353
3685
  return {
3354
- score: Math.round(raw / MAX_SCORE * 100),
3355
- persistence,
3356
- fingerprinting,
3357
- tracking,
3358
- monitoring
3686
+ grade,
3687
+ score,
3688
+ breakdown: {
3689
+ fingerprinting: { score: fingerprintScore, apis: fingerprintApis },
3690
+ persistence: { score: persistenceScore, thirdPartyCookies, longLivedCookies, storageApis },
3691
+ network: { score: networkScore, domains: domainCount, outboundBytes: totalOutbound, trackingPixels },
3692
+ monitoring: { score: monitorScore, apis: monitorApis },
3693
+ dataScope: { score: scopeScore, types: scopeTypes },
3694
+ fpExfiltration: { score: fpExfilScore, heavyApis: heavyFpApis }
3695
+ }
3359
3696
  };
3360
3697
  }
3361
3698
  const CLS_RISK_TAGS = /* @__PURE__ */ new Set(["iframe", "img", "div", "video"]);
@@ -3368,6 +3705,68 @@ function computeCwvEstimate(perf, network, apis) {
3368
3705
  const inpRiskLevel = heavyScript && domObserver ? "high" : heavyScript || domObserver ? "medium" : "low";
3369
3706
  return { lcpImpactMs, clsRisk, clsElements, inpRiskLevel };
3370
3707
  }
3708
+ function scoreSteps(value, steps) {
3709
+ let score = 0;
3710
+ for (const [threshold, points] of steps) {
3711
+ if (value >= threshold)
3712
+ score = points;
3713
+ }
3714
+ return score;
3715
+ }
3716
+ function computePerformanceRating(perf, transferKb, network, cwv) {
3717
+ const networkScore = scoreSteps(transferKb, [
3718
+ [5, 5],
3719
+ [15, 10],
3720
+ [30, 15],
3721
+ [60, 20],
3722
+ [120, 25],
3723
+ [250, 30]
3724
+ ]);
3725
+ const mainThreadScore = scoreSteps(perf.taskDurationMs, [
3726
+ [10, 5],
3727
+ [20, 10],
3728
+ [30, 18],
3729
+ [50, 25],
3730
+ [75, 30]
3731
+ ]);
3732
+ const memoryScore = scoreSteps(perf.heapDeltaKb, [
3733
+ [750, 5],
3734
+ [1e3, 10],
3735
+ [1500, 15],
3736
+ [2e3, 20]
3737
+ ]);
3738
+ const connectionScore = scoreSteps(network.requestCount, [
3739
+ [2, 3],
3740
+ [3, 5],
3741
+ [4, 7],
3742
+ [6, 10]
3743
+ ]);
3744
+ const cwvScore = (cwv.lcpImpactMs > 15 ? 3 : 0) + (cwv.clsRisk ? Math.min(4, cwv.clsElements * 2) : 0) + (cwv.inpRiskLevel === "high" ? 3 : cwv.inpRiskLevel === "medium" ? 1 : 0);
3745
+ const score = networkScore + mainThreadScore + memoryScore + connectionScore + cwvScore;
3746
+ let grade;
3747
+ if (score <= 5)
3748
+ grade = "A+";
3749
+ else if (score <= 15)
3750
+ grade = "A";
3751
+ else if (score <= 30)
3752
+ grade = "B";
3753
+ else if (score <= 50)
3754
+ grade = "C";
3755
+ else if (score <= 70)
3756
+ grade = "D";
3757
+ else grade = "F";
3758
+ return {
3759
+ grade,
3760
+ score,
3761
+ breakdown: {
3762
+ networkCost: { score: networkScore, transferKb },
3763
+ mainThread: { score: mainThreadScore, taskDurationMs: perf.taskDurationMs, scriptDurationMs: perf.scriptDurationMs },
3764
+ memory: { score: memoryScore, heapDeltaKb: perf.heapDeltaKb },
3765
+ connections: { score: connectionScore, requestCount: network.requestCount },
3766
+ cwvRisk: { score: cwvScore, lcpImpactMs: cwv.lcpImpactMs, clsRisk: cwv.clsRisk, inpRiskLevel: cwv.inpRiskLevel }
3767
+ }
3768
+ };
3769
+ }
3371
3770
  const DOMAIN_RE = /^https?:\/\/([^/]+)/;
3372
3771
  const USE_SCRIPT_RE = /^useScript/;
3373
3772
  const WORD_SPLIT_RE = /[\s-]+/;
@@ -3423,25 +3822,38 @@ async function getScriptStats() {
3423
3822
  const routes = proxyConfig?.routes ?? {};
3424
3823
  const domains = extractDomains(routes);
3425
3824
  const endpoints = Object.keys(routes).length;
3825
+ const emptyApis = {};
3826
+ const emptyNetwork = { requestCount: 0, domains: [], outboundBytes: 0, inboundBytes: 0, injectedElements: [] };
3827
+ const emptyPerf = { taskDurationMs: 0, scriptDurationMs: 0, heapDeltaKb: 0 };
3828
+ const apis = { ...size?.apis ?? emptyApis };
3829
+ const knownApis = KNOWN_UNDETECTED_APIS[id];
3830
+ if (knownApis) {
3831
+ for (const api of knownApis) apis[api] = true;
3832
+ }
3833
+ const cookies = size?.cookies ?? [];
3834
+ const network = size?.network ?? emptyNetwork;
3835
+ const perf = size?.performance ?? emptyPerf;
3836
+ const trackedData = meta?.trackedData ?? [];
3837
+ const scripts = size?.scripts ?? [];
3838
+ const transferKb = size?.totalTransferKb ?? 0;
3839
+ const primaryTransferKb = scripts.length > 0 ? Number.parseFloat(scripts.filter((s) => s.initiatorType !== "secondary").reduce((sum, s) => sum + s.transferKb, 0).toFixed(1)) : transferKb;
3840
+ const cwvEstimate = computeCwvEstimate(perf, network, apis);
3426
3841
  return {
3427
3842
  id,
3428
3843
  label: entry.label || id || "",
3429
3844
  category: entry.category || "unknown",
3430
- scripts: size?.scripts ?? [],
3431
- totalTransferKb: size?.totalTransferKb ?? 0,
3845
+ scripts,
3846
+ totalTransferKb: transferKb,
3432
3847
  totalDecodedKb: size?.totalDecodedKb ?? 0,
3433
- trackedData: meta?.trackedData ?? [],
3848
+ trackedData,
3434
3849
  collectsWebVitals: size?.collectsWebVitals ?? false,
3435
- apis: size?.apis ?? {},
3436
- apiPrivacyScore: computeApiPrivacyScore(size?.apis ?? {}),
3437
- cookies: size?.cookies ?? [],
3438
- network: size?.network ?? { requestCount: 0, domains: [], outboundBytes: 0, inboundBytes: 0, injectedElements: [] },
3439
- performance: size?.performance ?? { taskDurationMs: 0, scriptDurationMs: 0, heapDeltaKb: 0 },
3440
- cwvEstimate: computeCwvEstimate(
3441
- size?.performance ?? { scriptDurationMs: 0},
3442
- size?.network ?? { injectedElements: [] },
3443
- size?.apis ?? {}
3444
- ),
3850
+ apis,
3851
+ privacyRating: computePrivacyRating(apis, cookies, network, trackedData, KNOWN_FUNCTIONAL_APIS[id] ? new Set(KNOWN_FUNCTIONAL_APIS[id]) : void 0),
3852
+ cookies,
3853
+ network,
3854
+ performance: perf,
3855
+ performanceRating: computePerformanceRating(perf, primaryTransferKb, network, cwvEstimate),
3856
+ cwvEstimate,
3445
3857
  hasBundling: entry.scriptBundling !== false && entry.scriptBundling !== void 0,
3446
3858
  hasProxy: !!proxyConfig,
3447
3859
  proxyDomains: domains,