@nuxt/scripts 1.0.0-beta.25 → 1.0.0-beta.27

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/dist/client/200.html +1 -1
  2. package/dist/client/404.html +1 -1
  3. package/dist/client/_nuxt/{DjhmCJlE.js → CwXQ1Eqw.js} +3 -3
  4. package/dist/client/_nuxt/{TJ5JFHov.js → JXDRhrZp.js} +1 -1
  5. package/dist/client/_nuxt/{C-7nRtzO.js → KCxg59bo.js} +1 -1
  6. package/dist/client/_nuxt/builds/latest.json +1 -1
  7. package/dist/client/_nuxt/builds/meta/d0d06e27-af53-4f1a-b7ae-18727423b3ed.json +1 -0
  8. package/dist/client/_nuxt/{D5k4eN9O.js → viP3Pc9X.js} +1 -1
  9. package/dist/client/index.html +1 -1
  10. package/dist/module.d.mts +1 -1
  11. package/dist/module.d.ts +1 -1
  12. package/dist/module.json +1 -1
  13. package/dist/module.mjs +38 -8
  14. package/dist/registry.mjs +2 -2
  15. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +2 -5
  16. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +14 -15
  17. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +2 -5
  18. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +1 -4
  19. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +32 -41
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +1 -4
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +19 -28
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +18 -22
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +30 -37
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +1 -4
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +31 -36
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +1 -4
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +17 -22
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +19 -28
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +19 -28
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +19 -28
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +19 -28
  32. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +11 -0
  33. package/dist/runtime/components/GoogleMaps/injectionKeys.js +3 -0
  34. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +26 -0
  35. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +37 -0
  36. package/dist/runtime/server/gravatar-proxy.d.ts +1 -1
  37. package/dist/runtime/server/gravatar-proxy.js +0 -1
  38. package/dist/stats.d.mts +97 -9
  39. package/dist/stats.d.ts +97 -9
  40. package/dist/stats.mjs +1233 -292
  41. package/package.json +8 -6
  42. package/dist/client/_nuxt/builds/meta/2ec0342e-5e00-4781-82aa-c3c0f9154516.json +0 -1
package/dist/stats.mjs CHANGED
@@ -183,7 +183,7 @@ const scriptMeta = {
183
183
  const plausibleAnalytics = {
184
184
  totalTransferKb: 1.9,
185
185
  totalDecodedKb: 2.9,
186
- loadTimeMs: 70,
186
+ loadTimeMs: 222,
187
187
  collectsWebVitals: false,
188
188
  apis: {
189
189
  cookies: false,
@@ -194,11 +194,26 @@ const plausibleAnalytics = {
194
194
  webgl: false,
195
195
  audioContext: false,
196
196
  userAgent: false,
197
+ doNotTrack: false,
197
198
  hardwareConcurrency: false,
198
199
  deviceMemory: false,
199
200
  plugins: false,
200
201
  languages: false,
201
202
  screen: false,
203
+ timezone: false,
204
+ platform: false,
205
+ vendor: false,
206
+ connection: false,
207
+ maxTouchPoints: false,
208
+ devicePixelRatio: false,
209
+ mediaDevices: false,
210
+ getBattery: false,
211
+ referrer: true,
212
+ windowName: false,
213
+ rtcPeerConnection: false,
214
+ geolocation: false,
215
+ serviceWorker: false,
216
+ cacheApi: false,
202
217
  sendBeacon: false,
203
218
  fetch: true,
204
219
  xhr: false,
@@ -220,9 +235,9 @@ const plausibleAnalytics = {
220
235
  ]
221
236
  },
222
237
  performance: {
223
- taskDurationMs: 6,
238
+ taskDurationMs: 7,
224
239
  scriptDurationMs: 1,
225
- heapDeltaKb: 698
240
+ heapDeltaKb: 759
226
241
  },
227
242
  scripts: [
228
243
  {
@@ -230,7 +245,7 @@ const plausibleAnalytics = {
230
245
  transferKb: 1.9,
231
246
  decodedKb: 2.9,
232
247
  encoding: "zstd",
233
- durationMs: 70,
248
+ durationMs: 222,
234
249
  initiatorType: "script",
235
250
  protocol: "unknown"
236
251
  }
@@ -239,7 +254,7 @@ const plausibleAnalytics = {
239
254
  const cloudflareWebAnalytics = {
240
255
  totalTransferKb: 10.8,
241
256
  totalDecodedKb: 30.4,
242
- loadTimeMs: 82,
257
+ loadTimeMs: 202,
243
258
  collectsWebVitals: true,
244
259
  apis: {
245
260
  cookies: false,
@@ -250,11 +265,26 @@ const cloudflareWebAnalytics = {
250
265
  webgl: false,
251
266
  audioContext: false,
252
267
  userAgent: true,
268
+ doNotTrack: false,
253
269
  hardwareConcurrency: false,
254
270
  deviceMemory: false,
255
271
  plugins: false,
256
272
  languages: false,
257
273
  screen: false,
274
+ timezone: false,
275
+ platform: false,
276
+ vendor: false,
277
+ connection: false,
278
+ maxTouchPoints: false,
279
+ devicePixelRatio: false,
280
+ mediaDevices: false,
281
+ getBattery: false,
282
+ referrer: true,
283
+ windowName: false,
284
+ rtcPeerConnection: false,
285
+ geolocation: false,
286
+ serviceWorker: false,
287
+ cacheApi: false,
258
288
  sendBeacon: true,
259
289
  fetch: false,
260
290
  xhr: true,
@@ -276,9 +306,9 @@ const cloudflareWebAnalytics = {
276
306
  ]
277
307
  },
278
308
  performance: {
279
- taskDurationMs: 7,
309
+ taskDurationMs: 6,
280
310
  scriptDurationMs: 1,
281
- heapDeltaKb: 736
311
+ heapDeltaKb: 784
282
312
  },
283
313
  scripts: [
284
314
  {
@@ -286,7 +316,7 @@ const cloudflareWebAnalytics = {
286
316
  transferKb: 10.8,
287
317
  decodedKb: 30.4,
288
318
  encoding: "gzip",
289
- durationMs: 82,
319
+ durationMs: 202,
290
320
  initiatorType: "script",
291
321
  protocol: "unknown"
292
322
  }
@@ -306,11 +336,26 @@ const posthog = {
306
336
  webgl: false,
307
337
  audioContext: false,
308
338
  userAgent: false,
339
+ doNotTrack: false,
309
340
  hardwareConcurrency: false,
310
341
  deviceMemory: false,
311
342
  plugins: false,
312
343
  languages: false,
313
344
  screen: false,
345
+ timezone: false,
346
+ platform: false,
347
+ vendor: false,
348
+ connection: false,
349
+ maxTouchPoints: false,
350
+ devicePixelRatio: false,
351
+ mediaDevices: false,
352
+ getBattery: false,
353
+ referrer: false,
354
+ windowName: false,
355
+ rtcPeerConnection: false,
356
+ geolocation: false,
357
+ serviceWorker: false,
358
+ cacheApi: false,
314
359
  sendBeacon: false,
315
360
  fetch: false,
316
361
  xhr: false,
@@ -341,7 +386,7 @@ const posthog = {
341
386
  const fathomAnalytics = {
342
387
  totalTransferKb: 3,
343
388
  totalDecodedKb: 6.7,
344
- loadTimeMs: 301,
389
+ loadTimeMs: 307,
345
390
  collectsWebVitals: false,
346
391
  apis: {
347
392
  cookies: false,
@@ -352,11 +397,26 @@ const fathomAnalytics = {
352
397
  webgl: false,
353
398
  audioContext: false,
354
399
  userAgent: false,
400
+ doNotTrack: true,
355
401
  hardwareConcurrency: false,
356
402
  deviceMemory: false,
357
403
  plugins: false,
358
404
  languages: false,
359
405
  screen: false,
406
+ timezone: false,
407
+ platform: false,
408
+ vendor: false,
409
+ connection: false,
410
+ maxTouchPoints: false,
411
+ devicePixelRatio: false,
412
+ mediaDevices: false,
413
+ getBattery: false,
414
+ referrer: true,
415
+ windowName: false,
416
+ rtcPeerConnection: false,
417
+ geolocation: false,
418
+ serviceWorker: false,
419
+ cacheApi: false,
360
420
  sendBeacon: true,
361
421
  fetch: false,
362
422
  xhr: false,
@@ -378,9 +438,9 @@ const fathomAnalytics = {
378
438
  ]
379
439
  },
380
440
  performance: {
381
- taskDurationMs: 9,
441
+ taskDurationMs: 11,
382
442
  scriptDurationMs: 1,
383
- heapDeltaKb: 721
443
+ heapDeltaKb: 760
384
444
  },
385
445
  scripts: [
386
446
  {
@@ -388,16 +448,16 @@ const fathomAnalytics = {
388
448
  transferKb: 2.7,
389
449
  decodedKb: 6.7,
390
450
  encoding: "zstd",
391
- durationMs: 68,
451
+ durationMs: 177,
392
452
  initiatorType: "script",
393
453
  protocol: "unknown"
394
454
  },
395
455
  {
396
- url: "https://cdn.usefathom.com/?h=http%3A%2F%2F127.0.0.1&p=%2FfathomAnalytics&r=&sid=null&qs=%7B%7D&cid=92023130",
456
+ url: "https://cdn.usefathom.com/?h=http%3A%2F%2F127.0.0.1&p=%2FfathomAnalytics&r=&sid=null&qs=%7B%7D&cid=71215632",
397
457
  transferKb: 0.3,
398
458
  decodedKb: 0,
399
459
  encoding: "none",
400
- durationMs: 301,
460
+ durationMs: 307,
401
461
  initiatorType: "img",
402
462
  protocol: "unknown"
403
463
  }
@@ -406,7 +466,7 @@ const fathomAnalytics = {
406
466
  const matomoAnalytics = {
407
467
  totalTransferKb: 60.4,
408
468
  totalDecodedKb: 218.6,
409
- loadTimeMs: 94,
469
+ loadTimeMs: 1850,
410
470
  collectsWebVitals: false,
411
471
  apis: {
412
472
  cookies: true,
@@ -417,11 +477,26 @@ const matomoAnalytics = {
417
477
  webgl: false,
418
478
  audioContext: false,
419
479
  userAgent: true,
480
+ doNotTrack: false,
420
481
  hardwareConcurrency: false,
421
482
  deviceMemory: false,
422
483
  plugins: false,
423
484
  languages: false,
424
485
  screen: true,
486
+ timezone: true,
487
+ platform: true,
488
+ vendor: true,
489
+ connection: false,
490
+ maxTouchPoints: false,
491
+ devicePixelRatio: false,
492
+ mediaDevices: false,
493
+ getBattery: false,
494
+ referrer: true,
495
+ windowName: true,
496
+ rtcPeerConnection: false,
497
+ geolocation: false,
498
+ serviceWorker: false,
499
+ cacheApi: false,
425
500
  sendBeacon: true,
426
501
  fetch: true,
427
502
  xhr: true,
@@ -438,14 +513,14 @@ const matomoAnalytics = {
438
513
  "cdn.matomo.cloud"
439
514
  ],
440
515
  outboundBytes: 0,
441
- inboundBytes: 61866,
516
+ inboundBytes: 61878,
442
517
  injectedElements: [
443
518
  ]
444
519
  },
445
520
  performance: {
446
- taskDurationMs: 16,
521
+ taskDurationMs: 20,
447
522
  scriptDurationMs: 5,
448
- heapDeltaKb: 1343
523
+ heapDeltaKb: 1394
449
524
  },
450
525
  scripts: [
451
526
  {
@@ -453,7 +528,7 @@ const matomoAnalytics = {
453
528
  transferKb: 60.4,
454
529
  decodedKb: 218.6,
455
530
  encoding: "br",
456
- durationMs: 94,
531
+ durationMs: 1850,
457
532
  initiatorType: "script",
458
533
  protocol: "unknown"
459
534
  }
@@ -461,8 +536,8 @@ const matomoAnalytics = {
461
536
  };
462
537
  const rybbitAnalytics = {
463
538
  totalTransferKb: 9,
464
- totalDecodedKb: 25.3,
465
- loadTimeMs: 1159,
539
+ totalDecodedKb: 25.4,
540
+ loadTimeMs: 1165,
466
541
  collectsWebVitals: true,
467
542
  apis: {
468
543
  cookies: false,
@@ -473,11 +548,26 @@ const rybbitAnalytics = {
473
548
  webgl: false,
474
549
  audioContext: false,
475
550
  userAgent: false,
551
+ doNotTrack: false,
476
552
  hardwareConcurrency: false,
477
553
  deviceMemory: false,
478
554
  plugins: false,
479
555
  languages: true,
480
556
  screen: true,
557
+ timezone: false,
558
+ platform: false,
559
+ vendor: false,
560
+ connection: false,
561
+ maxTouchPoints: false,
562
+ devicePixelRatio: false,
563
+ mediaDevices: false,
564
+ getBattery: false,
565
+ referrer: true,
566
+ windowName: false,
567
+ rtcPeerConnection: false,
568
+ geolocation: false,
569
+ serviceWorker: false,
570
+ cacheApi: false,
481
571
  sendBeacon: false,
482
572
  fetch: true,
483
573
  xhr: false,
@@ -494,22 +584,22 @@ const rybbitAnalytics = {
494
584
  "app.rybbit.io"
495
585
  ],
496
586
  outboundBytes: 0,
497
- inboundBytes: 9174,
587
+ inboundBytes: 9198,
498
588
  injectedElements: [
499
589
  ]
500
590
  },
501
591
  performance: {
502
- taskDurationMs: 7,
592
+ taskDurationMs: 8,
503
593
  scriptDurationMs: 2,
504
- heapDeltaKb: 706
594
+ heapDeltaKb: 755
505
595
  },
506
596
  scripts: [
507
597
  {
508
598
  url: "https://app.rybbit.io/api/script.js",
509
599
  transferKb: 9,
510
- decodedKb: 25.3,
600
+ decodedKb: 25.4,
511
601
  encoding: "zstd",
512
- durationMs: 1159,
602
+ durationMs: 1165,
513
603
  initiatorType: "script",
514
604
  protocol: "unknown"
515
605
  }
@@ -518,7 +608,7 @@ const rybbitAnalytics = {
518
608
  const databuddyAnalytics = {
519
609
  totalTransferKb: 10.6,
520
610
  totalDecodedKb: 29.2,
521
- loadTimeMs: 89,
611
+ loadTimeMs: 355,
522
612
  collectsWebVitals: true,
523
613
  apis: {
524
614
  cookies: false,
@@ -529,11 +619,26 @@ const databuddyAnalytics = {
529
619
  webgl: false,
530
620
  audioContext: false,
531
621
  userAgent: true,
622
+ doNotTrack: false,
532
623
  hardwareConcurrency: false,
533
624
  deviceMemory: false,
534
625
  plugins: false,
535
626
  languages: true,
536
627
  screen: false,
628
+ timezone: false,
629
+ platform: false,
630
+ vendor: false,
631
+ connection: false,
632
+ maxTouchPoints: false,
633
+ devicePixelRatio: false,
634
+ mediaDevices: false,
635
+ getBattery: false,
636
+ referrer: true,
637
+ windowName: false,
638
+ rtcPeerConnection: false,
639
+ geolocation: false,
640
+ serviceWorker: false,
641
+ cacheApi: false,
537
642
  sendBeacon: true,
538
643
  fetch: true,
539
644
  xhr: false,
@@ -557,7 +662,7 @@ const databuddyAnalytics = {
557
662
  performance: {
558
663
  taskDurationMs: 7,
559
664
  scriptDurationMs: 1,
560
- heapDeltaKb: 754
665
+ heapDeltaKb: 803
561
666
  },
562
667
  scripts: [
563
668
  {
@@ -565,7 +670,7 @@ const databuddyAnalytics = {
565
670
  transferKb: 10.6,
566
671
  decodedKb: 29.2,
567
672
  encoding: "zstd",
568
- durationMs: 89,
673
+ durationMs: 355,
569
674
  initiatorType: "script",
570
675
  protocol: "unknown"
571
676
  }
@@ -574,7 +679,7 @@ const databuddyAnalytics = {
574
679
  const mixpanelAnalytics = {
575
680
  totalTransferKb: 31,
576
681
  totalDecodedKb: 93.9,
577
- loadTimeMs: 78,
682
+ loadTimeMs: 85,
578
683
  collectsWebVitals: false,
579
684
  apis: {
580
685
  cookies: true,
@@ -585,11 +690,26 @@ const mixpanelAnalytics = {
585
690
  webgl: false,
586
691
  audioContext: false,
587
692
  userAgent: true,
693
+ doNotTrack: true,
588
694
  hardwareConcurrency: false,
589
695
  deviceMemory: false,
590
696
  plugins: false,
591
697
  languages: false,
592
698
  screen: false,
699
+ timezone: false,
700
+ platform: false,
701
+ vendor: false,
702
+ connection: false,
703
+ maxTouchPoints: false,
704
+ devicePixelRatio: false,
705
+ mediaDevices: false,
706
+ getBattery: false,
707
+ referrer: true,
708
+ windowName: false,
709
+ rtcPeerConnection: false,
710
+ geolocation: false,
711
+ serviceWorker: false,
712
+ cacheApi: false,
593
713
  sendBeacon: true,
594
714
  fetch: true,
595
715
  xhr: true,
@@ -606,14 +726,14 @@ const mixpanelAnalytics = {
606
726
  "cdn.mxpnl.com"
607
727
  ],
608
728
  outboundBytes: 0,
609
- inboundBytes: 31789,
729
+ inboundBytes: 31795,
610
730
  injectedElements: [
611
731
  ]
612
732
  },
613
733
  performance: {
614
- taskDurationMs: 15,
734
+ taskDurationMs: 16,
615
735
  scriptDurationMs: 8,
616
- heapDeltaKb: 1118
736
+ heapDeltaKb: 1167
617
737
  },
618
738
  scripts: [
619
739
  {
@@ -621,7 +741,7 @@ const mixpanelAnalytics = {
621
741
  transferKb: 31,
622
742
  decodedKb: 93.9,
623
743
  encoding: "gzip",
624
- durationMs: 78,
744
+ durationMs: 85,
625
745
  initiatorType: "script",
626
746
  protocol: "unknown"
627
747
  }
@@ -630,7 +750,7 @@ const mixpanelAnalytics = {
630
750
  const segment = {
631
751
  totalTransferKb: 29.6,
632
752
  totalDecodedKb: 107,
633
- loadTimeMs: 823,
753
+ loadTimeMs: 1125,
634
754
  collectsWebVitals: false,
635
755
  apis: {
636
756
  cookies: true,
@@ -641,11 +761,26 @@ const segment = {
641
761
  webgl: false,
642
762
  audioContext: false,
643
763
  userAgent: true,
764
+ doNotTrack: false,
644
765
  hardwareConcurrency: false,
645
766
  deviceMemory: false,
646
767
  plugins: false,
647
768
  languages: true,
648
769
  screen: false,
770
+ timezone: true,
771
+ platform: false,
772
+ vendor: false,
773
+ connection: false,
774
+ maxTouchPoints: false,
775
+ devicePixelRatio: false,
776
+ mediaDevices: false,
777
+ getBattery: false,
778
+ referrer: true,
779
+ windowName: false,
780
+ rtcPeerConnection: false,
781
+ geolocation: false,
782
+ serviceWorker: false,
783
+ cacheApi: false,
649
784
  sendBeacon: false,
650
785
  fetch: true,
651
786
  xhr: true,
@@ -663,14 +798,14 @@ const segment = {
663
798
  "cdn.segment.com"
664
799
  ],
665
800
  outboundBytes: 1006,
666
- inboundBytes: 30281,
801
+ inboundBytes: 30291,
667
802
  injectedElements: [
668
803
  ]
669
804
  },
670
805
  performance: {
671
- taskDurationMs: 18,
672
- scriptDurationMs: 4,
673
- heapDeltaKb: 1278
806
+ taskDurationMs: 23,
807
+ scriptDurationMs: 5,
808
+ heapDeltaKb: 1328
674
809
  },
675
810
  scripts: [
676
811
  {
@@ -678,7 +813,7 @@ const segment = {
678
813
  transferKb: 28.2,
679
814
  decodedKb: 106.4,
680
815
  encoding: "br",
681
- durationMs: 545,
816
+ durationMs: 1125,
682
817
  initiatorType: "script",
683
818
  protocol: "unknown"
684
819
  },
@@ -687,7 +822,7 @@ const segment = {
687
822
  transferKb: 1.2,
688
823
  decodedKb: 0.6,
689
824
  encoding: "none",
690
- durationMs: 46,
825
+ durationMs: 175,
691
826
  initiatorType: "fetch",
692
827
  protocol: "unknown"
693
828
  },
@@ -696,16 +831,16 @@ const segment = {
696
831
  transferKb: 0.2,
697
832
  decodedKb: 0,
698
833
  encoding: "none",
699
- durationMs: 823,
834
+ durationMs: 723,
700
835
  initiatorType: "fetch",
701
836
  protocol: "unknown"
702
837
  }
703
838
  ]
704
839
  };
705
840
  const googleAnalytics = {
706
- totalTransferKb: 153.9,
707
- totalDecodedKb: 452.9,
708
- loadTimeMs: 477,
841
+ totalTransferKb: 154.2,
842
+ totalDecodedKb: 454.1,
843
+ loadTimeMs: 507,
709
844
  collectsWebVitals: false,
710
845
  apis: {
711
846
  cookies: true,
@@ -716,11 +851,26 @@ const googleAnalytics = {
716
851
  webgl: false,
717
852
  audioContext: false,
718
853
  userAgent: true,
854
+ doNotTrack: false,
719
855
  hardwareConcurrency: false,
720
856
  deviceMemory: false,
721
857
  plugins: false,
722
858
  languages: false,
723
859
  screen: false,
860
+ timezone: true,
861
+ platform: false,
862
+ vendor: false,
863
+ connection: false,
864
+ maxTouchPoints: false,
865
+ devicePixelRatio: false,
866
+ mediaDevices: false,
867
+ getBattery: false,
868
+ referrer: true,
869
+ windowName: true,
870
+ rtcPeerConnection: false,
871
+ geolocation: false,
872
+ serviceWorker: false,
873
+ cacheApi: false,
724
874
  sendBeacon: true,
725
875
  fetch: true,
726
876
  xhr: true,
@@ -737,22 +887,22 @@ const googleAnalytics = {
737
887
  "www.googletagmanager.com"
738
888
  ],
739
889
  outboundBytes: 0,
740
- inboundBytes: 157566,
890
+ inboundBytes: 157890,
741
891
  injectedElements: [
742
892
  ]
743
893
  },
744
894
  performance: {
745
895
  taskDurationMs: 26,
746
- scriptDurationMs: 13,
747
- heapDeltaKb: 2533
896
+ scriptDurationMs: 14,
897
+ heapDeltaKb: 2641
748
898
  },
749
899
  scripts: [
750
900
  {
751
901
  url: "https://www.googletagmanager.com/gtag/js?id=G-TR58L0EF8P",
752
- transferKb: 153.9,
753
- decodedKb: 452.9,
902
+ transferKb: 154.2,
903
+ decodedKb: 454.1,
754
904
  encoding: "zstd",
755
- durationMs: 477,
905
+ durationMs: 507,
756
906
  initiatorType: "script",
757
907
  protocol: "unknown"
758
908
  }
@@ -761,7 +911,7 @@ const googleAnalytics = {
761
911
  const umamiAnalytics = {
762
912
  totalTransferKb: 2.4,
763
913
  totalDecodedKb: 2.6,
764
- loadTimeMs: 99,
914
+ loadTimeMs: 105,
765
915
  collectsWebVitals: false,
766
916
  apis: {
767
917
  cookies: false,
@@ -772,11 +922,26 @@ const umamiAnalytics = {
772
922
  webgl: false,
773
923
  audioContext: false,
774
924
  userAgent: false,
925
+ doNotTrack: true,
775
926
  hardwareConcurrency: false,
776
927
  deviceMemory: false,
777
928
  plugins: false,
778
929
  languages: false,
779
930
  screen: true,
931
+ timezone: false,
932
+ platform: false,
933
+ vendor: false,
934
+ connection: false,
935
+ maxTouchPoints: false,
936
+ devicePixelRatio: false,
937
+ mediaDevices: false,
938
+ getBattery: false,
939
+ referrer: true,
940
+ windowName: false,
941
+ rtcPeerConnection: false,
942
+ geolocation: false,
943
+ serviceWorker: false,
944
+ cacheApi: false,
780
945
  sendBeacon: false,
781
946
  fetch: true,
782
947
  xhr: false,
@@ -798,9 +963,9 @@ const umamiAnalytics = {
798
963
  ]
799
964
  },
800
965
  performance: {
801
- taskDurationMs: 5,
966
+ taskDurationMs: 6,
802
967
  scriptDurationMs: 0,
803
- heapDeltaKb: 676
968
+ heapDeltaKb: 726
804
969
  },
805
970
  scripts: [
806
971
  {
@@ -808,7 +973,7 @@ const umamiAnalytics = {
808
973
  transferKb: 2.4,
809
974
  decodedKb: 2.6,
810
975
  encoding: "br",
811
- durationMs: 99,
976
+ durationMs: 105,
812
977
  initiatorType: "script",
813
978
  protocol: "unknown"
814
979
  }
@@ -817,7 +982,7 @@ const umamiAnalytics = {
817
982
  const vercelAnalytics = {
818
983
  totalTransferKb: 1.6,
819
984
  totalDecodedKb: 2.4,
820
- loadTimeMs: 86,
985
+ loadTimeMs: 95,
821
986
  collectsWebVitals: false,
822
987
  apis: {
823
988
  cookies: false,
@@ -828,11 +993,26 @@ const vercelAnalytics = {
828
993
  webgl: false,
829
994
  audioContext: false,
830
995
  userAgent: true,
996
+ doNotTrack: false,
831
997
  hardwareConcurrency: false,
832
998
  deviceMemory: false,
833
999
  plugins: false,
834
1000
  languages: false,
835
1001
  screen: false,
1002
+ timezone: false,
1003
+ platform: false,
1004
+ vendor: false,
1005
+ connection: false,
1006
+ maxTouchPoints: false,
1007
+ devicePixelRatio: false,
1008
+ mediaDevices: false,
1009
+ getBattery: false,
1010
+ referrer: false,
1011
+ windowName: false,
1012
+ rtcPeerConnection: false,
1013
+ geolocation: false,
1014
+ serviceWorker: false,
1015
+ cacheApi: false,
836
1016
  sendBeacon: false,
837
1017
  fetch: true,
838
1018
  xhr: false,
@@ -849,14 +1029,14 @@ const vercelAnalytics = {
849
1029
  "va.vercel-scripts.com"
850
1030
  ],
851
1031
  outboundBytes: 0,
852
- inboundBytes: 1607,
1032
+ inboundBytes: 1606,
853
1033
  injectedElements: [
854
1034
  ]
855
1035
  },
856
1036
  performance: {
857
- taskDurationMs: 5,
1037
+ taskDurationMs: 6,
858
1038
  scriptDurationMs: 0,
859
- heapDeltaKb: 667
1039
+ heapDeltaKb: 716
860
1040
  },
861
1041
  scripts: [
862
1042
  {
@@ -864,7 +1044,7 @@ const vercelAnalytics = {
864
1044
  transferKb: 1.6,
865
1045
  decodedKb: 2.4,
866
1046
  encoding: "br",
867
- durationMs: 86,
1047
+ durationMs: 95,
868
1048
  initiatorType: "script",
869
1049
  protocol: "unknown"
870
1050
  }
@@ -873,7 +1053,7 @@ const vercelAnalytics = {
873
1053
  const bingUet = {
874
1054
  totalTransferKb: 16.2,
875
1055
  totalDecodedKb: 54,
876
- loadTimeMs: 194,
1056
+ loadTimeMs: 377,
877
1057
  collectsWebVitals: false,
878
1058
  apis: {
879
1059
  cookies: true,
@@ -883,12 +1063,27 @@ const bingUet = {
883
1063
  canvas: false,
884
1064
  webgl: false,
885
1065
  audioContext: false,
886
- userAgent: true,
1066
+ userAgent: false,
1067
+ doNotTrack: false,
887
1068
  hardwareConcurrency: false,
888
1069
  deviceMemory: false,
889
1070
  plugins: true,
890
1071
  languages: true,
891
1072
  screen: true,
1073
+ timezone: false,
1074
+ platform: false,
1075
+ vendor: false,
1076
+ connection: false,
1077
+ maxTouchPoints: true,
1078
+ devicePixelRatio: false,
1079
+ mediaDevices: false,
1080
+ getBattery: false,
1081
+ referrer: true,
1082
+ windowName: false,
1083
+ rtcPeerConnection: false,
1084
+ geolocation: false,
1085
+ serviceWorker: false,
1086
+ cacheApi: false,
892
1087
  sendBeacon: true,
893
1088
  fetch: false,
894
1089
  xhr: true,
@@ -935,14 +1130,14 @@ const bingUet = {
935
1130
  },
936
1131
  {
937
1132
  tag: "img",
938
- src: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=0f57c308-34a2-4bd1-b934-9da234f00f53&bo=1&sid=d813900022e011f1a3faf95d832c811b&vid=d813bdd022e011f1a4808d65ea4df5a2&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%3A43655%2FbingUet&r=&lt=201&evt=pageLoad&sv=2&cdb=AQAQ&rn=745630"
1133
+ src: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=b287c383-aa8f-41a5-8926-21b246541c8f&bo=1&sid=33e4c280238c11f1a860d93cdbc6baff&vid=33e4cda0238c11f1b98f019cad57be55&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%3A40469%2FbingUet&r=&lt=389&evt=pageLoad&sv=2&cdb=AQAQ&rn=246784"
939
1134
  }
940
1135
  ]
941
1136
  },
942
1137
  performance: {
943
- taskDurationMs: 11,
1138
+ taskDurationMs: 17,
944
1139
  scriptDurationMs: 4,
945
- heapDeltaKb: 880
1140
+ heapDeltaKb: 983
946
1141
  },
947
1142
  scripts: [
948
1143
  {
@@ -950,7 +1145,7 @@ const bingUet = {
950
1145
  transferKb: 15.4,
951
1146
  decodedKb: 53.6,
952
1147
  encoding: "gzip",
953
- durationMs: 194,
1148
+ durationMs: 377,
954
1149
  initiatorType: "script",
955
1150
  protocol: "unknown"
956
1151
  },
@@ -959,16 +1154,16 @@ const bingUet = {
959
1154
  transferKb: 0.4,
960
1155
  decodedKb: 0.4,
961
1156
  encoding: "br",
962
- durationMs: 141,
1157
+ durationMs: 182,
963
1158
  initiatorType: "script",
964
1159
  protocol: "unknown"
965
1160
  },
966
1161
  {
967
- url: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=0f57c308-34a2-4bd1-b934-9da234f00f53&bo=1&sid=d813900022e011f1a3faf95d832c811b&vid=d813bdd022e011f1a4808d65ea4df5a2&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%3A43655%2FbingUet&r=&lt=201&evt=pageLoad&sv=2&cdb=AQAQ&rn=745630",
1162
+ url: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=b287c383-aa8f-41a5-8926-21b246541c8f&bo=1&sid=33e4c280238c11f1a860d93cdbc6baff&vid=33e4cda0238c11f1b98f019cad57be55&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%3A40469%2FbingUet&r=&lt=389&evt=pageLoad&sv=2&cdb=AQAQ&rn=246784",
968
1163
  transferKb: 0.4,
969
1164
  decodedKb: 0,
970
1165
  encoding: "none",
971
- durationMs: 148,
1166
+ durationMs: 191,
972
1167
  initiatorType: "img",
973
1168
  protocol: "unknown"
974
1169
  }
@@ -977,10 +1172,10 @@ const bingUet = {
977
1172
  const metaPixel = {
978
1173
  totalTransferKb: 97.1,
979
1174
  totalDecodedKb: 364.7,
980
- loadTimeMs: 249,
1175
+ loadTimeMs: 204,
981
1176
  collectsWebVitals: false,
982
1177
  apis: {
983
- cookies: true,
1178
+ cookies: false,
984
1179
  localStorage: true,
985
1180
  sessionStorage: true,
986
1181
  indexedDB: false,
@@ -988,11 +1183,26 @@ const metaPixel = {
988
1183
  webgl: false,
989
1184
  audioContext: false,
990
1185
  userAgent: true,
1186
+ doNotTrack: false,
991
1187
  hardwareConcurrency: false,
992
1188
  deviceMemory: false,
993
1189
  plugins: false,
994
1190
  languages: false,
995
1191
  screen: true,
1192
+ timezone: false,
1193
+ platform: false,
1194
+ vendor: true,
1195
+ connection: false,
1196
+ maxTouchPoints: false,
1197
+ devicePixelRatio: false,
1198
+ mediaDevices: false,
1199
+ getBattery: false,
1200
+ referrer: true,
1201
+ windowName: false,
1202
+ rtcPeerConnection: false,
1203
+ geolocation: false,
1204
+ serviceWorker: false,
1205
+ cacheApi: false,
996
1206
  sendBeacon: true,
997
1207
  fetch: true,
998
1208
  xhr: false,
@@ -1010,18 +1220,22 @@ const metaPixel = {
1010
1220
  "www.facebook.com"
1011
1221
  ],
1012
1222
  outboundBytes: 0,
1013
- inboundBytes: 102407,
1223
+ inboundBytes: 102393,
1014
1224
  injectedElements: [
1015
1225
  {
1016
1226
  tag: "script",
1017
1227
  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"
1228
+ },
1229
+ {
1230
+ tag: "img",
1231
+ src: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A40469%2FmetaPixel&rl=&if=false&ts=1773922054886&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773922054679&coo=false&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=ct0&expv2[6]=hf1&rqm=GET"
1018
1232
  }
1019
1233
  ]
1020
1234
  },
1021
1235
  performance: {
1022
- taskDurationMs: 33,
1023
- scriptDurationMs: 18,
1024
- heapDeltaKb: 1916
1236
+ taskDurationMs: 34,
1237
+ scriptDurationMs: 22,
1238
+ heapDeltaKb: 1959
1025
1239
  },
1026
1240
  scripts: [
1027
1241
  {
@@ -1029,7 +1243,7 @@ const metaPixel = {
1029
1243
  transferKb: 94.7,
1030
1244
  decodedKb: 356.5,
1031
1245
  encoding: "gzip",
1032
- durationMs: 106,
1246
+ durationMs: 108,
1033
1247
  initiatorType: "script",
1034
1248
  protocol: "h2"
1035
1249
  },
@@ -1038,16 +1252,16 @@ const metaPixel = {
1038
1252
  transferKb: 2.1,
1039
1253
  decodedKb: 8.2,
1040
1254
  encoding: "gzip",
1041
- durationMs: 249,
1255
+ durationMs: 204,
1042
1256
  initiatorType: "script",
1043
1257
  protocol: "h2"
1044
1258
  },
1045
1259
  {
1046
- url: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A43655%2FmetaPixel&rl=&if=false&ts=1773848453588&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773848453336&coo=false&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=ct0&expv2[6]=hf1&rqm=GET",
1260
+ url: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A40469%2FmetaPixel&rl=&if=false&ts=1773922054886&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773922054679&coo=false&expv2[0]=pl0&expv2[1]=el3&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=ct0&expv2[6]=hf1&rqm=GET",
1047
1261
  transferKb: 0.3,
1048
1262
  decodedKb: 0,
1049
1263
  encoding: "none",
1050
- durationMs: 75,
1264
+ durationMs: 203,
1051
1265
  initiatorType: "img",
1052
1266
  protocol: "unknown"
1053
1267
  }
@@ -1056,7 +1270,7 @@ const metaPixel = {
1056
1270
  const xPixel = {
1057
1271
  totalTransferKb: 15.1,
1058
1272
  totalDecodedKb: 47.1,
1059
- loadTimeMs: 234,
1273
+ loadTimeMs: 404,
1060
1274
  collectsWebVitals: false,
1061
1275
  apis: {
1062
1276
  cookies: true,
@@ -1067,11 +1281,26 @@ const xPixel = {
1067
1281
  webgl: false,
1068
1282
  audioContext: false,
1069
1283
  userAgent: true,
1284
+ doNotTrack: true,
1070
1285
  hardwareConcurrency: true,
1071
1286
  deviceMemory: false,
1072
1287
  plugins: false,
1073
1288
  languages: true,
1074
1289
  screen: true,
1290
+ timezone: true,
1291
+ platform: true,
1292
+ vendor: true,
1293
+ connection: false,
1294
+ maxTouchPoints: true,
1295
+ devicePixelRatio: false,
1296
+ mediaDevices: false,
1297
+ getBattery: true,
1298
+ referrer: true,
1299
+ windowName: false,
1300
+ rtcPeerConnection: false,
1301
+ geolocation: false,
1302
+ serviceWorker: false,
1303
+ cacheApi: false,
1075
1304
  sendBeacon: true,
1076
1305
  fetch: false,
1077
1306
  xhr: true,
@@ -1145,22 +1374,22 @@ const xPixel = {
1145
1374
  "t.co"
1146
1375
  ],
1147
1376
  outboundBytes: 0,
1148
- inboundBytes: 15452,
1377
+ inboundBytes: 15445,
1149
1378
  injectedElements: [
1150
1379
  {
1151
1380
  tag: "img",
1152
- 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=88888f98-e73c-4cb6-bb30-2786c4be47e6&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=0dd9adec-dd52-4e54-877a-96b755ab4e53&tw_document_href=http%3A%2F%2F127.0.0.1%3A43655%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773848454967.715569947460803969&txn_id=ol7lz&type=javascript&version=2.3.50"
1381
+ 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=ac7b41e3-6dac-4c47-bf2d-ec75e58f4b92&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=9d4dda92-69fa-43c6-950b-a90d1a90705e&tw_document_href=http%3A%2F%2F127.0.0.1%3A40469%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773922059736.26211941354742921&txn_id=ol7lz&type=javascript&version=2.3.50"
1153
1382
  },
1154
1383
  {
1155
1384
  tag: "img",
1156
- 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=88888f98-e73c-4cb6-bb30-2786c4be47e6&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=0dd9adec-dd52-4e54-877a-96b755ab4e53&tw_document_href=http%3A%2F%2F127.0.0.1%3A43655%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773848454967.715569947460803969&txn_id=ol7lz&type=javascript&version=2.3.50"
1385
+ 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=ac7b41e3-6dac-4c47-bf2d-ec75e58f4b92&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=9d4dda92-69fa-43c6-950b-a90d1a90705e&tw_document_href=http%3A%2F%2F127.0.0.1%3A40469%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773922059736.26211941354742921&txn_id=ol7lz&type=javascript&version=2.3.50"
1157
1386
  }
1158
1387
  ]
1159
1388
  },
1160
1389
  performance: {
1161
- taskDurationMs: 17,
1390
+ taskDurationMs: 16,
1162
1391
  scriptDurationMs: 2,
1163
- heapDeltaKb: 1001
1392
+ heapDeltaKb: 1035
1164
1393
  },
1165
1394
  scripts: [
1166
1395
  {
@@ -1168,56 +1397,71 @@ const xPixel = {
1168
1397
  transferKb: 13.5,
1169
1398
  decodedKb: 47.1,
1170
1399
  encoding: "gzip",
1171
- durationMs: 67,
1400
+ durationMs: 71,
1172
1401
  initiatorType: "script",
1173
1402
  protocol: "unknown"
1174
1403
  },
1175
1404
  {
1176
- 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=88888f98-e73c-4cb6-bb30-2786c4be47e6&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=0dd9adec-dd52-4e54-877a-96b755ab4e53&tw_document_href=http%3A%2F%2F127.0.0.1%3A43655%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773848454967.715569947460803969&txn_id=ol7lz&type=javascript&version=2.3.50",
1177
- transferKb: 1,
1405
+ 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=ac7b41e3-6dac-4c47-bf2d-ec75e58f4b92&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=9d4dda92-69fa-43c6-950b-a90d1a90705e&tw_document_href=http%3A%2F%2F127.0.0.1%3A40469%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773922059736.26211941354742921&txn_id=ol7lz&type=javascript&version=2.3.50",
1406
+ transferKb: 0.6,
1178
1407
  decodedKb: 0,
1179
1408
  encoding: "none",
1180
- durationMs: 210,
1409
+ durationMs: 404,
1181
1410
  initiatorType: "img",
1182
1411
  protocol: "unknown"
1183
1412
  },
1184
1413
  {
1185
- 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=88888f98-e73c-4cb6-bb30-2786c4be47e6&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=0dd9adec-dd52-4e54-877a-96b755ab4e53&tw_document_href=http%3A%2F%2F127.0.0.1%3A43655%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773848454967.715569947460803969&txn_id=ol7lz&type=javascript&version=2.3.50",
1186
- transferKb: 0.6,
1414
+ 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=ac7b41e3-6dac-4c47-bf2d-ec75e58f4b92&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=9d4dda92-69fa-43c6-950b-a90d1a90705e&tw_document_href=http%3A%2F%2F127.0.0.1%3A40469%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773922059736.26211941354742921&txn_id=ol7lz&type=javascript&version=2.3.50",
1415
+ transferKb: 1,
1187
1416
  decodedKb: 0,
1188
1417
  encoding: "none",
1189
- durationMs: 234,
1418
+ durationMs: 395,
1190
1419
  initiatorType: "img",
1191
1420
  protocol: "unknown"
1192
1421
  }
1193
1422
  ]
1194
1423
  };
1195
1424
  const tiktokPixel = {
1196
- totalTransferKb: 148,
1197
- totalDecodedKb: 623,
1198
- loadTimeMs: 281,
1425
+ totalTransferKb: 1889.6,
1426
+ totalDecodedKb: 2365,
1427
+ loadTimeMs: 282,
1199
1428
  collectsWebVitals: true,
1200
1429
  apis: {
1201
1430
  cookies: true,
1202
- localStorage: false,
1431
+ localStorage: true,
1203
1432
  sessionStorage: true,
1204
1433
  indexedDB: false,
1205
1434
  canvas: false,
1206
1435
  webgl: false,
1207
1436
  audioContext: false,
1208
1437
  userAgent: true,
1438
+ doNotTrack: false,
1209
1439
  hardwareConcurrency: false,
1210
1440
  deviceMemory: false,
1211
1441
  plugins: false,
1212
1442
  languages: false,
1213
- screen: false,
1443
+ screen: true,
1444
+ timezone: true,
1445
+ platform: true,
1446
+ vendor: false,
1447
+ connection: true,
1448
+ maxTouchPoints: false,
1449
+ devicePixelRatio: false,
1450
+ mediaDevices: false,
1451
+ getBattery: false,
1452
+ referrer: true,
1453
+ windowName: true,
1454
+ rtcPeerConnection: false,
1455
+ geolocation: false,
1456
+ serviceWorker: false,
1457
+ cacheApi: false,
1214
1458
  sendBeacon: true,
1215
- fetch: false,
1216
- xhr: false,
1459
+ fetch: true,
1460
+ xhr: true,
1217
1461
  websocket: false,
1218
1462
  mutationObserver: true,
1219
1463
  performanceObserver: true,
1220
- intersectionObserver: false
1464
+ intersectionObserver: true
1221
1465
  },
1222
1466
  cookies: [
1223
1467
  {
@@ -1238,7 +1482,7 @@ const tiktokPixel = {
1238
1482
  "analytics.tiktok.com"
1239
1483
  ],
1240
1484
  outboundBytes: 0,
1241
- inboundBytes: 151595,
1485
+ inboundBytes: 151441,
1242
1486
  injectedElements: [
1243
1487
  {
1244
1488
  tag: "script",
@@ -1251,17 +1495,17 @@ const tiktokPixel = {
1251
1495
  ]
1252
1496
  },
1253
1497
  performance: {
1254
- taskDurationMs: 57,
1255
- scriptDurationMs: 29,
1256
- heapDeltaKb: 2249
1498
+ taskDurationMs: 61,
1499
+ scriptDurationMs: 25,
1500
+ heapDeltaKb: 2297
1257
1501
  },
1258
1502
  scripts: [
1259
1503
  {
1260
1504
  url: "https://analytics.tiktok.com/i18n/pixel/events.js",
1261
- transferKb: 2.7,
1505
+ transferKb: 2.6,
1262
1506
  decodedKb: 7.6,
1263
1507
  encoding: "gzip",
1264
- durationMs: 281,
1508
+ durationMs: 282,
1265
1509
  initiatorType: "script",
1266
1510
  protocol: "unknown"
1267
1511
  },
@@ -1270,7 +1514,7 @@ const tiktokPixel = {
1270
1514
  transferKb: 105.8,
1271
1515
  decodedKb: 463.4,
1272
1516
  encoding: "gzip",
1273
- durationMs: 48,
1517
+ durationMs: 63,
1274
1518
  initiatorType: "script",
1275
1519
  protocol: "unknown"
1276
1520
  },
@@ -1279,9 +1523,27 @@ const tiktokPixel = {
1279
1523
  transferKb: 39.5,
1280
1524
  decodedKb: 152,
1281
1525
  encoding: "gzip",
1282
- durationMs: 20,
1526
+ durationMs: 32,
1283
1527
  initiatorType: "script",
1284
1528
  protocol: "unknown"
1529
+ },
1530
+ {
1531
+ url: "https://analytics.tiktok.com/i18n/pixel/config.js",
1532
+ transferKb: 0.3,
1533
+ decodedKb: 0.6,
1534
+ encoding: "gzip",
1535
+ durationMs: 0,
1536
+ initiatorType: "secondary",
1537
+ protocol: "unknown"
1538
+ },
1539
+ {
1540
+ url: "https://analytics.tiktok.com/i18n/pixel/eb.js",
1541
+ transferKb: 1741.4,
1542
+ decodedKb: 1741.4,
1543
+ encoding: "gzip",
1544
+ durationMs: 0,
1545
+ initiatorType: "secondary",
1546
+ protocol: "unknown"
1285
1547
  }
1286
1548
  ]
1287
1549
  };
@@ -1299,11 +1561,26 @@ const snapchatPixel = {
1299
1561
  webgl: false,
1300
1562
  audioContext: false,
1301
1563
  userAgent: true,
1564
+ doNotTrack: false,
1302
1565
  hardwareConcurrency: false,
1303
1566
  deviceMemory: false,
1304
1567
  plugins: false,
1305
1568
  languages: false,
1306
1569
  screen: true,
1570
+ timezone: false,
1571
+ platform: false,
1572
+ vendor: false,
1573
+ connection: false,
1574
+ maxTouchPoints: true,
1575
+ devicePixelRatio: false,
1576
+ mediaDevices: false,
1577
+ getBattery: false,
1578
+ referrer: true,
1579
+ windowName: true,
1580
+ rtcPeerConnection: false,
1581
+ geolocation: false,
1582
+ serviceWorker: false,
1583
+ cacheApi: false,
1307
1584
  sendBeacon: true,
1308
1585
  fetch: true,
1309
1586
  xhr: true,
@@ -1370,21 +1647,21 @@ const snapchatPixel = {
1370
1647
  }
1371
1648
  ],
1372
1649
  network: {
1373
- requestCount: 9,
1650
+ requestCount: 10,
1374
1651
  domains: [
1375
1652
  "pixel.tapad.com",
1376
1653
  "sc-static.net",
1377
1654
  "tr.snapchat.com"
1378
1655
  ],
1379
- outboundBytes: 1712,
1380
- inboundBytes: 26698,
1656
+ outboundBytes: 3048,
1657
+ inboundBytes: 26697,
1381
1658
  injectedElements: [
1382
1659
  ]
1383
1660
  },
1384
1661
  performance: {
1385
1662
  taskDurationMs: 39,
1386
- scriptDurationMs: 24,
1387
- heapDeltaKb: 2283
1663
+ scriptDurationMs: 23,
1664
+ heapDeltaKb: 2461
1388
1665
  },
1389
1666
  scripts: [
1390
1667
  {
@@ -1401,16 +1678,16 @@ const snapchatPixel = {
1401
1678
  transferKb: 0.3,
1402
1679
  decodedKb: 0.1,
1403
1680
  encoding: "none",
1404
- durationMs: 398,
1681
+ durationMs: 434,
1405
1682
  initiatorType: "fetch",
1406
1683
  protocol: "unknown"
1407
1684
  },
1408
1685
  {
1409
- url: "https://tr.snapchat.com/cm/i?pid=2295cbcc-cb3f-4727-8c09-1133b742722c&u_scsid=3f21c2e7-929d-437f-890a-3717403e6882&u_sclid=88607956-1fce-4738-aa31-6b7b27d03b87",
1686
+ url: "https://tr.snapchat.com/cm/i?pid=2295cbcc-cb3f-4727-8c09-1133b742722c&u_scsid=c6e75aa0-705d-410b-a9ee-7dd85a3050e4&u_sclid=c6a0639d-5685-4940-81bc-e78a728b00a8",
1410
1687
  transferKb: 1,
1411
1688
  decodedKb: 0.7,
1412
1689
  encoding: "none",
1413
- durationMs: 185,
1690
+ durationMs: 203,
1414
1691
  initiatorType: "iframe",
1415
1692
  protocol: "unknown"
1416
1693
  },
@@ -1419,7 +1696,7 @@ const snapchatPixel = {
1419
1696
  transferKb: 0,
1420
1697
  decodedKb: 0,
1421
1698
  encoding: "none",
1422
- durationMs: 114,
1699
+ durationMs: 120,
1423
1700
  initiatorType: "beacon",
1424
1701
  protocol: "unknown"
1425
1702
  }
@@ -1428,7 +1705,7 @@ const snapchatPixel = {
1428
1705
  const redditPixel = {
1429
1706
  totalTransferKb: 19.5,
1430
1707
  totalDecodedKb: 65.3,
1431
- loadTimeMs: 323,
1708
+ loadTimeMs: 466,
1432
1709
  collectsWebVitals: false,
1433
1710
  apis: {
1434
1711
  cookies: true,
@@ -1439,11 +1716,26 @@ const redditPixel = {
1439
1716
  webgl: false,
1440
1717
  audioContext: false,
1441
1718
  userAgent: false,
1719
+ doNotTrack: false,
1442
1720
  hardwareConcurrency: false,
1443
1721
  deviceMemory: false,
1444
1722
  plugins: false,
1445
1723
  languages: false,
1446
1724
  screen: true,
1725
+ timezone: false,
1726
+ platform: false,
1727
+ vendor: false,
1728
+ connection: false,
1729
+ maxTouchPoints: false,
1730
+ devicePixelRatio: false,
1731
+ mediaDevices: false,
1732
+ getBattery: false,
1733
+ referrer: false,
1734
+ windowName: false,
1735
+ rtcPeerConnection: false,
1736
+ geolocation: false,
1737
+ serviceWorker: false,
1738
+ cacheApi: false,
1447
1739
  sendBeacon: false,
1448
1740
  fetch: true,
1449
1741
  xhr: true,
@@ -1464,12 +1756,16 @@ const redditPixel = {
1464
1756
  outboundBytes: 0,
1465
1757
  inboundBytes: 20077,
1466
1758
  injectedElements: [
1759
+ {
1760
+ tag: "img",
1761
+ src: "https://alb.reddit.com/rp.gif?ts=1773922077055&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=1a4652ca-022c-4403-bb81-4e38d1080f71&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc="
1762
+ }
1467
1763
  ]
1468
1764
  },
1469
1765
  performance: {
1470
1766
  taskDurationMs: 14,
1471
- scriptDurationMs: 7,
1472
- heapDeltaKb: 932
1767
+ scriptDurationMs: 6,
1768
+ heapDeltaKb: 965
1473
1769
  },
1474
1770
  scripts: [
1475
1771
  {
@@ -1477,7 +1773,7 @@ const redditPixel = {
1477
1773
  transferKb: 18.8,
1478
1774
  decodedKb: 65.3,
1479
1775
  encoding: "gzip",
1480
- durationMs: 111,
1776
+ durationMs: 279,
1481
1777
  initiatorType: "script",
1482
1778
  protocol: "unknown"
1483
1779
  },
@@ -1486,25 +1782,25 @@ const redditPixel = {
1486
1782
  transferKb: 0.1,
1487
1783
  decodedKb: 0,
1488
1784
  encoding: "gzip",
1489
- durationMs: 105,
1785
+ durationMs: 137,
1490
1786
  initiatorType: "xmlhttprequest",
1491
1787
  protocol: "unknown"
1492
1788
  },
1493
1789
  {
1494
- url: "https://alb.reddit.com/rp.gif?ts=1773848460704&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=d529e815-3bce-40fc-8157-a4464a8128b2&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc=",
1790
+ url: "https://alb.reddit.com/rp.gif?ts=1773922077055&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=1a4652ca-022c-4403-bb81-4e38d1080f71&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc=",
1495
1791
  transferKb: 0.6,
1496
1792
  decodedKb: 0,
1497
1793
  encoding: "none",
1498
- durationMs: 323,
1794
+ durationMs: 466,
1499
1795
  initiatorType: "img",
1500
1796
  protocol: "unknown"
1501
1797
  }
1502
1798
  ]
1503
1799
  };
1504
1800
  const googleAdsense = {
1505
- totalTransferKb: 63,
1506
- totalDecodedKb: 191.4,
1507
- loadTimeMs: 329,
1801
+ totalTransferKb: 69.8,
1802
+ totalDecodedKb: 198.2,
1803
+ loadTimeMs: 312,
1508
1804
  collectsWebVitals: true,
1509
1805
  apis: {
1510
1806
  cookies: true,
@@ -1515,11 +1811,26 @@ const googleAdsense = {
1515
1811
  webgl: false,
1516
1812
  audioContext: false,
1517
1813
  userAgent: true,
1814
+ doNotTrack: false,
1518
1815
  hardwareConcurrency: false,
1519
1816
  deviceMemory: false,
1520
1817
  plugins: false,
1521
1818
  languages: false,
1522
1819
  screen: false,
1820
+ timezone: false,
1821
+ platform: false,
1822
+ vendor: false,
1823
+ connection: false,
1824
+ maxTouchPoints: false,
1825
+ devicePixelRatio: false,
1826
+ mediaDevices: false,
1827
+ getBattery: false,
1828
+ referrer: true,
1829
+ windowName: false,
1830
+ rtcPeerConnection: false,
1831
+ geolocation: false,
1832
+ serviceWorker: false,
1833
+ cacheApi: false,
1523
1834
  sendBeacon: false,
1524
1835
  fetch: true,
1525
1836
  xhr: true,
@@ -1536,14 +1847,14 @@ const googleAdsense = {
1536
1847
  "pagead2.googlesyndication.com"
1537
1848
  ],
1538
1849
  outboundBytes: 0,
1539
- inboundBytes: 64758,
1850
+ inboundBytes: 64712,
1540
1851
  injectedElements: [
1541
1852
  ]
1542
1853
  },
1543
1854
  performance: {
1544
1855
  taskDurationMs: 14,
1545
1856
  scriptDurationMs: 6,
1546
- heapDeltaKb: 1777
1857
+ heapDeltaKb: 1822
1547
1858
  },
1548
1859
  scripts: [
1549
1860
  {
@@ -1551,16 +1862,25 @@ const googleAdsense = {
1551
1862
  transferKb: 63,
1552
1863
  decodedKb: 191.4,
1553
1864
  encoding: "br",
1554
- durationMs: 329,
1865
+ durationMs: 312,
1555
1866
  initiatorType: "script",
1556
1867
  protocol: "h2"
1868
+ },
1869
+ {
1870
+ url: "https://pagead2.googlesyndication.com/pagead/js/err_rep.js",
1871
+ transferKb: 6.8,
1872
+ decodedKb: 6.8,
1873
+ encoding: "none",
1874
+ durationMs: 0,
1875
+ initiatorType: "secondary",
1876
+ protocol: "unknown"
1557
1877
  }
1558
1878
  ]
1559
1879
  };
1560
1880
  const carbonAds = {
1561
1881
  totalTransferKb: 10.4,
1562
1882
  totalDecodedKb: 34.5,
1563
- loadTimeMs: 81,
1883
+ loadTimeMs: 235,
1564
1884
  collectsWebVitals: false,
1565
1885
  apis: {
1566
1886
  cookies: true,
@@ -1571,11 +1891,26 @@ const carbonAds = {
1571
1891
  webgl: false,
1572
1892
  audioContext: false,
1573
1893
  userAgent: false,
1894
+ doNotTrack: false,
1574
1895
  hardwareConcurrency: false,
1575
1896
  deviceMemory: false,
1576
1897
  plugins: false,
1577
1898
  languages: false,
1578
1899
  screen: false,
1900
+ timezone: false,
1901
+ platform: false,
1902
+ vendor: false,
1903
+ connection: false,
1904
+ maxTouchPoints: false,
1905
+ devicePixelRatio: false,
1906
+ mediaDevices: false,
1907
+ getBattery: false,
1908
+ referrer: false,
1909
+ windowName: false,
1910
+ rtcPeerConnection: false,
1911
+ geolocation: false,
1912
+ serviceWorker: false,
1913
+ cacheApi: false,
1579
1914
  sendBeacon: false,
1580
1915
  fetch: true,
1581
1916
  xhr: false,
@@ -1597,9 +1932,9 @@ const carbonAds = {
1597
1932
  ]
1598
1933
  },
1599
1934
  performance: {
1600
- taskDurationMs: 5,
1935
+ taskDurationMs: 6,
1601
1936
  scriptDurationMs: 1,
1602
- heapDeltaKb: 681
1937
+ heapDeltaKb: 730
1603
1938
  },
1604
1939
  scripts: [
1605
1940
  {
@@ -1607,16 +1942,16 @@ const carbonAds = {
1607
1942
  transferKb: 10.4,
1608
1943
  decodedKb: 34.5,
1609
1944
  encoding: "gzip",
1610
- durationMs: 81,
1945
+ durationMs: 235,
1611
1946
  initiatorType: "script",
1612
1947
  protocol: "unknown"
1613
1948
  }
1614
1949
  ]
1615
1950
  };
1616
1951
  const hotjar = {
1617
- totalTransferKb: 6.2,
1618
- totalDecodedKb: 15,
1619
- loadTimeMs: 348,
1952
+ totalTransferKb: 62.2,
1953
+ totalDecodedKb: 242.5,
1954
+ loadTimeMs: 347,
1620
1955
  collectsWebVitals: false,
1621
1956
  apis: {
1622
1957
  cookies: true,
@@ -1627,11 +1962,26 @@ const hotjar = {
1627
1962
  webgl: false,
1628
1963
  audioContext: false,
1629
1964
  userAgent: true,
1965
+ doNotTrack: true,
1630
1966
  hardwareConcurrency: false,
1631
1967
  deviceMemory: false,
1632
1968
  plugins: false,
1633
1969
  languages: true,
1634
1970
  screen: true,
1971
+ timezone: false,
1972
+ platform: false,
1973
+ vendor: false,
1974
+ connection: false,
1975
+ maxTouchPoints: false,
1976
+ devicePixelRatio: false,
1977
+ mediaDevices: false,
1978
+ getBattery: false,
1979
+ referrer: true,
1980
+ windowName: false,
1981
+ rtcPeerConnection: false,
1982
+ geolocation: false,
1983
+ serviceWorker: false,
1984
+ cacheApi: false,
1635
1985
  sendBeacon: true,
1636
1986
  fetch: false,
1637
1987
  xhr: true,
@@ -1648,14 +1998,14 @@ const hotjar = {
1648
1998
  "static.hotjar.com"
1649
1999
  ],
1650
2000
  outboundBytes: 0,
1651
- inboundBytes: 6335,
2001
+ inboundBytes: 6344,
1652
2002
  injectedElements: [
1653
2003
  ]
1654
2004
  },
1655
2005
  performance: {
1656
- taskDurationMs: 7,
2006
+ taskDurationMs: 8,
1657
2007
  scriptDurationMs: 1,
1658
- heapDeltaKb: 705
2008
+ heapDeltaKb: 757
1659
2009
  },
1660
2010
  scripts: [
1661
2011
  {
@@ -1663,16 +2013,25 @@ const hotjar = {
1663
2013
  transferKb: 6.2,
1664
2014
  decodedKb: 15,
1665
2015
  encoding: "br",
1666
- durationMs: 348,
2016
+ durationMs: 347,
1667
2017
  initiatorType: "script",
1668
2018
  protocol: "unknown"
2019
+ },
2020
+ {
2021
+ url: "https://script.hotjar.com/modules.a7ec23974042e4df49ed.js",
2022
+ transferKb: 56,
2023
+ decodedKb: 227.5,
2024
+ encoding: "br",
2025
+ durationMs: 0,
2026
+ initiatorType: "secondary",
2027
+ protocol: "unknown"
1669
2028
  }
1670
2029
  ]
1671
2030
  };
1672
2031
  const clarity = {
1673
2032
  totalTransferKb: 27.2,
1674
2033
  totalDecodedKb: 80.2,
1675
- loadTimeMs: 636,
2034
+ loadTimeMs: 653,
1676
2035
  collectsWebVitals: true,
1677
2036
  apis: {
1678
2037
  cookies: true,
@@ -1683,11 +2042,26 @@ const clarity = {
1683
2042
  webgl: false,
1684
2043
  audioContext: false,
1685
2044
  userAgent: true,
2045
+ doNotTrack: false,
1686
2046
  hardwareConcurrency: true,
1687
2047
  deviceMemory: true,
1688
2048
  plugins: false,
1689
2049
  languages: true,
1690
2050
  screen: true,
2051
+ timezone: true,
2052
+ platform: true,
2053
+ vendor: false,
2054
+ connection: true,
2055
+ maxTouchPoints: true,
2056
+ devicePixelRatio: true,
2057
+ mediaDevices: false,
2058
+ getBattery: false,
2059
+ referrer: true,
2060
+ windowName: false,
2061
+ rtcPeerConnection: false,
2062
+ geolocation: false,
2063
+ serviceWorker: false,
2064
+ cacheApi: false,
1691
2065
  sendBeacon: true,
1692
2066
  fetch: false,
1693
2067
  xhr: true,
@@ -1705,7 +2079,7 @@ const clarity = {
1705
2079
  "scripts.clarity.ms",
1706
2080
  "www.clarity.ms"
1707
2081
  ],
1708
- outboundBytes: 736,
2082
+ outboundBytes: 761,
1709
2083
  inboundBytes: 27823,
1710
2084
  injectedElements: [
1711
2085
  {
@@ -1715,9 +2089,9 @@ const clarity = {
1715
2089
  ]
1716
2090
  },
1717
2091
  performance: {
1718
- taskDurationMs: 22,
1719
- scriptDurationMs: 12,
1720
- heapDeltaKb: 1150
2092
+ taskDurationMs: 20,
2093
+ scriptDurationMs: 10,
2094
+ heapDeltaKb: 1198
1721
2095
  },
1722
2096
  scripts: [
1723
2097
  {
@@ -1725,7 +2099,7 @@ const clarity = {
1725
2099
  transferKb: 0.8,
1726
2100
  decodedKb: 0.6,
1727
2101
  encoding: "none",
1728
- durationMs: 345,
2102
+ durationMs: 517,
1729
2103
  initiatorType: "script",
1730
2104
  protocol: "unknown"
1731
2105
  },
@@ -1734,7 +2108,7 @@ const clarity = {
1734
2108
  transferKb: 26.1,
1735
2109
  decodedKb: 79.6,
1736
2110
  encoding: "br",
1737
- durationMs: 170,
2111
+ durationMs: 653,
1738
2112
  initiatorType: "script",
1739
2113
  protocol: "unknown"
1740
2114
  },
@@ -1743,16 +2117,16 @@ const clarity = {
1743
2117
  transferKb: 0.3,
1744
2118
  decodedKb: 0,
1745
2119
  encoding: "none",
1746
- durationMs: 636,
2120
+ durationMs: 630,
1747
2121
  initiatorType: "xmlhttprequest",
1748
2122
  protocol: "unknown"
1749
2123
  }
1750
2124
  ]
1751
2125
  };
1752
2126
  const googleTagManager = {
1753
- totalTransferKb: 108.4,
1754
- totalDecodedKb: 301.7,
1755
- loadTimeMs: 474,
2127
+ totalTransferKb: 108.6,
2128
+ totalDecodedKb: 302.5,
2129
+ loadTimeMs: 470,
1756
2130
  collectsWebVitals: false,
1757
2131
  apis: {
1758
2132
  cookies: true,
@@ -1763,11 +2137,26 @@ const googleTagManager = {
1763
2137
  webgl: false,
1764
2138
  audioContext: false,
1765
2139
  userAgent: true,
2140
+ doNotTrack: false,
1766
2141
  hardwareConcurrency: false,
1767
2142
  deviceMemory: false,
1768
2143
  plugins: false,
1769
2144
  languages: false,
1770
2145
  screen: false,
2146
+ timezone: true,
2147
+ platform: false,
2148
+ vendor: false,
2149
+ connection: false,
2150
+ maxTouchPoints: false,
2151
+ devicePixelRatio: false,
2152
+ mediaDevices: false,
2153
+ getBattery: false,
2154
+ referrer: true,
2155
+ windowName: true,
2156
+ rtcPeerConnection: false,
2157
+ geolocation: false,
2158
+ serviceWorker: false,
2159
+ cacheApi: false,
1771
2160
  sendBeacon: true,
1772
2161
  fetch: true,
1773
2162
  xhr: true,
@@ -1784,31 +2173,31 @@ const googleTagManager = {
1784
2173
  "www.googletagmanager.com"
1785
2174
  ],
1786
2175
  outboundBytes: 0,
1787
- inboundBytes: 110986,
2176
+ inboundBytes: 111230,
1788
2177
  injectedElements: [
1789
2178
  ]
1790
2179
  },
1791
2180
  performance: {
1792
- taskDurationMs: 17,
2181
+ taskDurationMs: 16,
1793
2182
  scriptDurationMs: 7,
1794
- heapDeltaKb: 1757
2183
+ heapDeltaKb: 1812
1795
2184
  },
1796
2185
  scripts: [
1797
2186
  {
1798
2187
  url: "https://www.googletagmanager.com/gtm.js?id=GTM-MWW974PF",
1799
- transferKb: 108.4,
1800
- decodedKb: 301.7,
2188
+ transferKb: 108.6,
2189
+ decodedKb: 302.5,
1801
2190
  encoding: "zstd",
1802
- durationMs: 474,
2191
+ durationMs: 470,
1803
2192
  initiatorType: "script",
1804
2193
  protocol: "unknown"
1805
2194
  }
1806
2195
  ]
1807
2196
  };
1808
2197
  const intercom = {
1809
- totalTransferKb: 3.6,
1810
- totalDecodedKb: 7.4,
1811
- loadTimeMs: 695,
2198
+ totalTransferKb: 9669.5,
2199
+ totalDecodedKb: 10437.8,
2200
+ loadTimeMs: 746,
1812
2201
  collectsWebVitals: false,
1813
2202
  apis: {
1814
2203
  cookies: true,
@@ -1819,15 +2208,30 @@ const intercom = {
1819
2208
  webgl: false,
1820
2209
  audioContext: false,
1821
2210
  userAgent: true,
2211
+ doNotTrack: true,
1822
2212
  hardwareConcurrency: false,
1823
2213
  deviceMemory: false,
1824
2214
  plugins: false,
1825
2215
  languages: false,
1826
- screen: false,
1827
- sendBeacon: false,
2216
+ screen: true,
2217
+ timezone: true,
2218
+ platform: true,
2219
+ vendor: true,
2220
+ connection: false,
2221
+ maxTouchPoints: true,
2222
+ devicePixelRatio: true,
2223
+ mediaDevices: false,
2224
+ getBattery: false,
2225
+ referrer: false,
2226
+ windowName: false,
2227
+ rtcPeerConnection: false,
2228
+ geolocation: false,
2229
+ serviceWorker: false,
2230
+ cacheApi: false,
2231
+ sendBeacon: true,
1828
2232
  fetch: true,
1829
2233
  xhr: true,
1830
- websocket: false,
2234
+ websocket: true,
1831
2235
  mutationObserver: true,
1832
2236
  performanceObserver: false,
1833
2237
  intersectionObserver: false
@@ -1840,14 +2244,14 @@ const intercom = {
1840
2244
  "widget.intercom.io"
1841
2245
  ],
1842
2246
  outboundBytes: 0,
1843
- inboundBytes: 3711,
2247
+ inboundBytes: 3706,
1844
2248
  injectedElements: [
1845
2249
  ]
1846
2250
  },
1847
2251
  performance: {
1848
- taskDurationMs: 6,
2252
+ taskDurationMs: 7,
1849
2253
  scriptDurationMs: 0,
1850
- heapDeltaKb: 675
2254
+ heapDeltaKb: 726
1851
2255
  },
1852
2256
  scripts: [
1853
2257
  {
@@ -1855,16 +2259,52 @@ const intercom = {
1855
2259
  transferKb: 3.6,
1856
2260
  decodedKb: 7.4,
1857
2261
  encoding: "gzip",
1858
- durationMs: 695,
2262
+ durationMs: 746,
1859
2263
  initiatorType: "script",
1860
2264
  protocol: "unknown"
2265
+ },
2266
+ {
2267
+ url: "https://js.intercomcdn.com/intersection/assets/app.js",
2268
+ transferKb: 7165.2,
2269
+ decodedKb: 7165.2,
2270
+ encoding: "br",
2271
+ durationMs: 0,
2272
+ initiatorType: "secondary",
2273
+ protocol: "unknown"
2274
+ },
2275
+ {
2276
+ url: "https://js.intercomcdn.com/intersection/assets/styles.js",
2277
+ transferKb: 2167.9,
2278
+ decodedKb: 2167.9,
2279
+ encoding: "br",
2280
+ durationMs: 0,
2281
+ initiatorType: "secondary",
2282
+ protocol: "unknown"
2283
+ },
2284
+ {
2285
+ url: "https://js.intercomcdn.com/vendor-modern.1d25c940.js",
2286
+ transferKb: 142.8,
2287
+ decodedKb: 467,
2288
+ encoding: "gzip",
2289
+ durationMs: 0,
2290
+ initiatorType: "secondary",
2291
+ protocol: "unknown"
2292
+ },
2293
+ {
2294
+ url: "https://js.intercomcdn.com/frame-modern.44cf15aa.js",
2295
+ transferKb: 190,
2296
+ decodedKb: 630.3,
2297
+ encoding: "gzip",
2298
+ durationMs: 0,
2299
+ initiatorType: "secondary",
2300
+ protocol: "unknown"
1861
2301
  }
1862
2302
  ]
1863
2303
  };
1864
2304
  const crisp = {
1865
- totalTransferKb: 3.3,
1866
- totalDecodedKb: 7.5,
1867
- loadTimeMs: 93,
2305
+ totalTransferKb: 324.9,
2306
+ totalDecodedKb: 329.1,
2307
+ loadTimeMs: 349,
1868
2308
  collectsWebVitals: false,
1869
2309
  apis: {
1870
2310
  cookies: true,
@@ -1875,11 +2315,26 @@ const crisp = {
1875
2315
  webgl: false,
1876
2316
  audioContext: true,
1877
2317
  userAgent: true,
2318
+ doNotTrack: true,
1878
2319
  hardwareConcurrency: false,
1879
2320
  deviceMemory: false,
1880
2321
  plugins: false,
1881
2322
  languages: true,
1882
2323
  screen: false,
2324
+ timezone: true,
2325
+ platform: true,
2326
+ vendor: false,
2327
+ connection: false,
2328
+ maxTouchPoints: true,
2329
+ devicePixelRatio: false,
2330
+ mediaDevices: true,
2331
+ getBattery: false,
2332
+ referrer: true,
2333
+ windowName: false,
2334
+ rtcPeerConnection: true,
2335
+ geolocation: false,
2336
+ serviceWorker: false,
2337
+ cacheApi: false,
1883
2338
  sendBeacon: false,
1884
2339
  fetch: true,
1885
2340
  xhr: true,
@@ -1896,14 +2351,14 @@ const crisp = {
1896
2351
  "client.crisp.chat"
1897
2352
  ],
1898
2353
  outboundBytes: 0,
1899
- inboundBytes: 3383,
2354
+ inboundBytes: 3374,
1900
2355
  injectedElements: [
1901
2356
  ]
1902
2357
  },
1903
2358
  performance: {
1904
- taskDurationMs: 6,
2359
+ taskDurationMs: 7,
1905
2360
  scriptDurationMs: 1,
1906
- heapDeltaKb: 705
2361
+ heapDeltaKb: 741
1907
2362
  },
1908
2363
  scripts: [
1909
2364
  {
@@ -1911,16 +2366,25 @@ const crisp = {
1911
2366
  transferKb: 3.3,
1912
2367
  decodedKb: 7.5,
1913
2368
  encoding: "br",
1914
- durationMs: 93,
2369
+ durationMs: 349,
1915
2370
  initiatorType: "script",
1916
2371
  protocol: "unknown"
2372
+ },
2373
+ {
2374
+ url: "https://client.crisp.chat/static/javascripts/client_default_db1a904.js",
2375
+ transferKb: 321.6,
2376
+ decodedKb: 321.6,
2377
+ encoding: "br",
2378
+ durationMs: 0,
2379
+ initiatorType: "secondary",
2380
+ protocol: "unknown"
1917
2381
  }
1918
2382
  ]
1919
2383
  };
1920
2384
  const stripe = {
1921
- totalTransferKb: 213.3,
1922
- totalDecodedKb: 922.7,
1923
- loadTimeMs: 190,
2385
+ totalTransferKb: 215.4,
2386
+ totalDecodedKb: 926.5,
2387
+ loadTimeMs: 160,
1924
2388
  collectsWebVitals: false,
1925
2389
  apis: {
1926
2390
  cookies: true,
@@ -1931,11 +2395,26 @@ const stripe = {
1931
2395
  webgl: false,
1932
2396
  audioContext: false,
1933
2397
  userAgent: true,
2398
+ doNotTrack: false,
1934
2399
  hardwareConcurrency: false,
1935
2400
  deviceMemory: false,
1936
2401
  plugins: false,
1937
2402
  languages: true,
1938
2403
  screen: false,
2404
+ timezone: false,
2405
+ platform: true,
2406
+ vendor: false,
2407
+ connection: false,
2408
+ maxTouchPoints: true,
2409
+ devicePixelRatio: false,
2410
+ mediaDevices: false,
2411
+ getBattery: false,
2412
+ referrer: true,
2413
+ windowName: true,
2414
+ rtcPeerConnection: false,
2415
+ geolocation: false,
2416
+ serviceWorker: false,
2417
+ cacheApi: false,
1939
2418
  sendBeacon: false,
1940
2419
  fetch: true,
1941
2420
  xhr: true,
@@ -1945,38 +2424,62 @@ const stripe = {
1945
2424
  intersectionObserver: true
1946
2425
  },
1947
2426
  cookies: [
2427
+ {
2428
+ name: "m",
2429
+ domain: "m.stripe.com",
2430
+ path: "/",
2431
+ httpOnly: true,
2432
+ secure: true,
2433
+ sameSite: "None",
2434
+ session: false,
2435
+ lifetimeDays: 400,
2436
+ firstParty: false
2437
+ }
1948
2438
  ],
1949
2439
  network: {
1950
- requestCount: 1,
2440
+ requestCount: 2,
1951
2441
  domains: [
1952
2442
  "js.stripe.com"
1953
2443
  ],
1954
2444
  outboundBytes: 0,
1955
- inboundBytes: 218669,
2445
+ inboundBytes: 220514,
1956
2446
  injectedElements: [
2447
+ {
2448
+ tag: "iframe",
2449
+ src: "https://js.stripe.com/v3/m-outer-3437aaddcdf6922d623e172c2d6f9278.html#url=http%3A%2F%2F127.0.0.1%3A40469%2Fstripe&title=&referrer=&muid=NA&sid=NA&version=6&preview=false&__shared_params__[version]=v3"
2450
+ }
1957
2451
  ]
1958
2452
  },
1959
2453
  performance: {
1960
- taskDurationMs: 43,
1961
- scriptDurationMs: 11,
1962
- heapDeltaKb: 2305
2454
+ taskDurationMs: 148,
2455
+ scriptDurationMs: 17,
2456
+ heapDeltaKb: 4353
1963
2457
  },
1964
2458
  scripts: [
1965
2459
  {
1966
2460
  url: "https://js.stripe.com/v3/",
1967
- transferKb: 213.3,
1968
- decodedKb: 922.7,
2461
+ transferKb: 214.9,
2462
+ decodedKb: 926.3,
1969
2463
  encoding: "br",
1970
- durationMs: 190,
2464
+ durationMs: 160,
1971
2465
  initiatorType: "script",
1972
2466
  protocol: "h2"
2467
+ },
2468
+ {
2469
+ url: "https://js.stripe.com/v3/m-outer-3437aaddcdf6922d623e172c2d6f9278.html#url=http%3A%2F%2F127.0.0.1%3A40469%2Fstripe&title=&referrer=&muid=NA&sid=NA&version=6&preview=false&__shared_params__[version]=v3",
2470
+ transferKb: 0.5,
2471
+ decodedKb: 0.2,
2472
+ encoding: "none",
2473
+ durationMs: 30,
2474
+ initiatorType: "iframe",
2475
+ protocol: "h2"
1973
2476
  }
1974
2477
  ]
1975
2478
  };
1976
2479
  const lemonSqueezy = {
1977
2480
  totalTransferKb: 1.8,
1978
2481
  totalDecodedKb: 3.8,
1979
- loadTimeMs: 86,
2482
+ loadTimeMs: 227,
1980
2483
  collectsWebVitals: false,
1981
2484
  apis: {
1982
2485
  cookies: true,
@@ -1987,11 +2490,26 @@ const lemonSqueezy = {
1987
2490
  webgl: false,
1988
2491
  audioContext: false,
1989
2492
  userAgent: false,
2493
+ doNotTrack: false,
1990
2494
  hardwareConcurrency: false,
1991
2495
  deviceMemory: false,
1992
2496
  plugins: false,
1993
2497
  languages: false,
1994
2498
  screen: false,
2499
+ timezone: false,
2500
+ platform: false,
2501
+ vendor: false,
2502
+ connection: false,
2503
+ maxTouchPoints: false,
2504
+ devicePixelRatio: false,
2505
+ mediaDevices: false,
2506
+ getBattery: false,
2507
+ referrer: false,
2508
+ windowName: false,
2509
+ rtcPeerConnection: false,
2510
+ geolocation: false,
2511
+ serviceWorker: false,
2512
+ cacheApi: false,
1995
2513
  sendBeacon: false,
1996
2514
  fetch: false,
1997
2515
  xhr: false,
@@ -2013,9 +2531,9 @@ const lemonSqueezy = {
2013
2531
  ]
2014
2532
  },
2015
2533
  performance: {
2016
- taskDurationMs: 5,
2534
+ taskDurationMs: 6,
2017
2535
  scriptDurationMs: 0,
2018
- heapDeltaKb: 671
2536
+ heapDeltaKb: 720
2019
2537
  },
2020
2538
  scripts: [
2021
2539
  {
@@ -2023,34 +2541,49 @@ const lemonSqueezy = {
2023
2541
  transferKb: 1.8,
2024
2542
  decodedKb: 3.8,
2025
2543
  encoding: "br",
2026
- durationMs: 86,
2544
+ durationMs: 227,
2027
2545
  initiatorType: "script",
2028
2546
  protocol: "unknown"
2029
2547
  }
2030
2548
  ]
2031
2549
  };
2032
2550
  const paypal = {
2033
- totalTransferKb: 48.8,
2034
- totalDecodedKb: 148,
2035
- loadTimeMs: 147,
2551
+ totalTransferKb: 95.2,
2552
+ totalDecodedKb: 288.8,
2553
+ loadTimeMs: 276,
2036
2554
  collectsWebVitals: false,
2037
2555
  apis: {
2038
- cookies: false,
2039
- localStorage: false,
2556
+ cookies: true,
2557
+ localStorage: true,
2040
2558
  sessionStorage: false,
2041
- indexedDB: false,
2042
- canvas: false,
2043
- webgl: false,
2559
+ indexedDB: true,
2560
+ canvas: true,
2561
+ webgl: true,
2044
2562
  audioContext: false,
2045
2563
  userAgent: true,
2046
- hardwareConcurrency: false,
2047
- deviceMemory: false,
2048
- plugins: false,
2564
+ doNotTrack: false,
2565
+ hardwareConcurrency: true,
2566
+ deviceMemory: true,
2567
+ plugins: true,
2049
2568
  languages: true,
2050
2569
  screen: false,
2570
+ timezone: true,
2571
+ platform: false,
2572
+ vendor: true,
2573
+ connection: true,
2574
+ maxTouchPoints: true,
2575
+ devicePixelRatio: true,
2576
+ mediaDevices: true,
2577
+ getBattery: false,
2578
+ referrer: true,
2579
+ windowName: false,
2580
+ rtcPeerConnection: true,
2581
+ geolocation: true,
2582
+ serviceWorker: true,
2583
+ cacheApi: false,
2051
2584
  sendBeacon: true,
2052
2585
  fetch: true,
2053
- xhr: false,
2586
+ xhr: true,
2054
2587
  websocket: false,
2055
2588
  mutationObserver: false,
2056
2589
  performanceObserver: false,
@@ -2064,31 +2597,49 @@ const paypal = {
2064
2597
  "www.paypal.com"
2065
2598
  ],
2066
2599
  outboundBytes: 0,
2067
- inboundBytes: 49996,
2600
+ inboundBytes: 49707,
2068
2601
  injectedElements: [
2069
2602
  ]
2070
2603
  },
2071
2604
  performance: {
2072
- taskDurationMs: 25,
2073
- scriptDurationMs: 14,
2074
- heapDeltaKb: 1633
2605
+ taskDurationMs: 21,
2606
+ scriptDurationMs: 12,
2607
+ heapDeltaKb: 1682
2075
2608
  },
2076
2609
  scripts: [
2077
2610
  {
2078
2611
  url: "https://www.paypal.com/web-sdk/v6/core",
2079
- transferKb: 48.8,
2612
+ transferKb: 48.5,
2080
2613
  decodedKb: 148,
2081
- encoding: "gzip",
2082
- durationMs: 147,
2614
+ encoding: "br",
2615
+ durationMs: 276,
2083
2616
  initiatorType: "script",
2084
2617
  protocol: "unknown"
2618
+ },
2619
+ {
2620
+ url: "https://c.paypal.com/da/r/fb.js?${d}`:",
2621
+ transferKb: 23.3,
2622
+ decodedKb: 70.4,
2623
+ encoding: "gzip",
2624
+ durationMs: 0,
2625
+ initiatorType: "secondary",
2626
+ protocol: "unknown"
2627
+ },
2628
+ {
2629
+ url: "https://c.paypal.com/da/r/fb.js",
2630
+ transferKb: 23.4,
2631
+ decodedKb: 70.4,
2632
+ encoding: "gzip",
2633
+ durationMs: 0,
2634
+ initiatorType: "secondary",
2635
+ protocol: "unknown"
2085
2636
  }
2086
2637
  ]
2087
2638
  };
2088
2639
  const vimeoPlayer = {
2089
2640
  totalTransferKb: 8.9,
2090
2641
  totalDecodedKb: 23.8,
2091
- loadTimeMs: 83,
2642
+ loadTimeMs: 178,
2092
2643
  collectsWebVitals: false,
2093
2644
  apis: {
2094
2645
  cookies: false,
@@ -2099,15 +2650,30 @@ const vimeoPlayer = {
2099
2650
  webgl: false,
2100
2651
  audioContext: false,
2101
2652
  userAgent: true,
2653
+ doNotTrack: false,
2102
2654
  hardwareConcurrency: false,
2103
2655
  deviceMemory: false,
2104
2656
  plugins: false,
2105
2657
  languages: false,
2106
2658
  screen: false,
2659
+ timezone: false,
2660
+ platform: false,
2661
+ vendor: false,
2662
+ connection: false,
2663
+ maxTouchPoints: false,
2664
+ devicePixelRatio: false,
2665
+ mediaDevices: false,
2666
+ getBattery: false,
2667
+ referrer: false,
2668
+ windowName: false,
2669
+ rtcPeerConnection: false,
2670
+ geolocation: false,
2671
+ serviceWorker: false,
2672
+ cacheApi: false,
2107
2673
  sendBeacon: false,
2108
2674
  fetch: false,
2109
2675
  xhr: true,
2110
- websocket: true,
2676
+ websocket: false,
2111
2677
  mutationObserver: false,
2112
2678
  performanceObserver: false,
2113
2679
  intersectionObserver: false
@@ -2149,7 +2715,7 @@ const vimeoPlayer = {
2149
2715
  performance: {
2150
2716
  taskDurationMs: 7,
2151
2717
  scriptDurationMs: 1,
2152
- heapDeltaKb: 693
2718
+ heapDeltaKb: 742
2153
2719
  },
2154
2720
  scripts: [
2155
2721
  {
@@ -2157,16 +2723,16 @@ const vimeoPlayer = {
2157
2723
  transferKb: 8.9,
2158
2724
  decodedKb: 23.8,
2159
2725
  encoding: "gzip",
2160
- durationMs: 83,
2726
+ durationMs: 178,
2161
2727
  initiatorType: "script",
2162
2728
  protocol: "unknown"
2163
2729
  }
2164
2730
  ]
2165
2731
  };
2166
2732
  const youtubePlayer = {
2167
- totalTransferKb: 13.6,
2733
+ totalTransferKb: 13.9,
2168
2734
  totalDecodedKb: 32.4,
2169
- loadTimeMs: 276,
2735
+ loadTimeMs: 309,
2170
2736
  collectsWebVitals: false,
2171
2737
  apis: {
2172
2738
  cookies: false,
@@ -2176,12 +2742,27 @@ const youtubePlayer = {
2176
2742
  canvas: false,
2177
2743
  webgl: false,
2178
2744
  audioContext: false,
2179
- userAgent: true,
2745
+ userAgent: false,
2746
+ doNotTrack: false,
2180
2747
  hardwareConcurrency: false,
2181
2748
  deviceMemory: false,
2182
2749
  plugins: false,
2183
2750
  languages: false,
2184
2751
  screen: false,
2752
+ timezone: false,
2753
+ platform: false,
2754
+ vendor: false,
2755
+ connection: false,
2756
+ maxTouchPoints: false,
2757
+ devicePixelRatio: false,
2758
+ mediaDevices: false,
2759
+ getBattery: false,
2760
+ referrer: true,
2761
+ windowName: false,
2762
+ rtcPeerConnection: false,
2763
+ geolocation: false,
2764
+ serviceWorker: false,
2765
+ cacheApi: false,
2185
2766
  sendBeacon: false,
2186
2767
  fetch: false,
2187
2768
  xhr: false,
@@ -2191,6 +2772,17 @@ const youtubePlayer = {
2191
2772
  intersectionObserver: false
2192
2773
  },
2193
2774
  cookies: [
2775
+ {
2776
+ name: "__Secure-YNID",
2777
+ domain: ".youtube.com",
2778
+ path: "/",
2779
+ httpOnly: true,
2780
+ secure: true,
2781
+ sameSite: "None",
2782
+ session: false,
2783
+ lifetimeDays: 180,
2784
+ firstParty: false
2785
+ },
2194
2786
  {
2195
2787
  name: "YSC",
2196
2788
  domain: ".youtube.com",
@@ -2203,7 +2795,7 @@ const youtubePlayer = {
2203
2795
  firstParty: false
2204
2796
  },
2205
2797
  {
2206
- name: "__Secure-ROLLOUT_TOKEN",
2798
+ name: "VISITOR_INFO1_LIVE",
2207
2799
  domain: ".youtube.com",
2208
2800
  path: "/",
2209
2801
  httpOnly: true,
@@ -2214,7 +2806,7 @@ const youtubePlayer = {
2214
2806
  firstParty: false
2215
2807
  },
2216
2808
  {
2217
- name: "VISITOR_INFO1_LIVE",
2809
+ name: "VISITOR_PRIVACY_METADATA",
2218
2810
  domain: ".youtube.com",
2219
2811
  path: "/",
2220
2812
  httpOnly: true,
@@ -2225,7 +2817,7 @@ const youtubePlayer = {
2225
2817
  firstParty: false
2226
2818
  },
2227
2819
  {
2228
- name: "VISITOR_PRIVACY_METADATA",
2820
+ name: "__Secure-ROLLOUT_TOKEN",
2229
2821
  domain: ".youtube.com",
2230
2822
  path: "/",
2231
2823
  httpOnly: true,
@@ -2242,35 +2834,35 @@ const youtubePlayer = {
2242
2834
  "www.youtube.com"
2243
2835
  ],
2244
2836
  outboundBytes: 0,
2245
- inboundBytes: 13881,
2837
+ inboundBytes: 14257,
2246
2838
  injectedElements: [
2247
2839
  {
2248
2840
  tag: "script",
2249
- src: "https://www.youtube.com/s/player/21cd2156/www-widgetapi.vflset/www-widgetapi.js"
2841
+ src: "https://www.youtube.com/s/player/f4f314f0/www-widgetapi.vflset/www-widgetapi.js"
2250
2842
  }
2251
2843
  ]
2252
2844
  },
2253
2845
  performance: {
2254
- taskDurationMs: 8,
2255
- scriptDurationMs: 2,
2256
- heapDeltaKb: 763
2846
+ taskDurationMs: 7,
2847
+ scriptDurationMs: 1,
2848
+ heapDeltaKb: 811
2257
2849
  },
2258
2850
  scripts: [
2259
2851
  {
2260
2852
  url: "https://www.youtube.com/iframe_api",
2261
- transferKb: 3,
2853
+ transferKb: 3.3,
2262
2854
  decodedKb: 1,
2263
2855
  encoding: "br",
2264
- durationMs: 276,
2856
+ durationMs: 309,
2265
2857
  initiatorType: "script",
2266
2858
  protocol: "unknown"
2267
2859
  },
2268
2860
  {
2269
- url: "https://www.youtube.com/s/player/21cd2156/www-widgetapi.vflset/www-widgetapi.js",
2861
+ url: "https://www.youtube.com/s/player/f4f314f0/www-widgetapi.vflset/www-widgetapi.js",
2270
2862
  transferKb: 10.6,
2271
2863
  decodedKb: 31.4,
2272
2864
  encoding: "br",
2273
- durationMs: 20,
2865
+ durationMs: 22,
2274
2866
  initiatorType: "script",
2275
2867
  protocol: "unknown"
2276
2868
  }
@@ -2290,11 +2882,26 @@ const googleMaps = {
2290
2882
  webgl: false,
2291
2883
  audioContext: false,
2292
2884
  userAgent: false,
2885
+ doNotTrack: false,
2293
2886
  hardwareConcurrency: false,
2294
2887
  deviceMemory: false,
2295
2888
  plugins: false,
2296
2889
  languages: false,
2297
2890
  screen: false,
2891
+ timezone: false,
2892
+ platform: false,
2893
+ vendor: false,
2894
+ connection: false,
2895
+ maxTouchPoints: false,
2896
+ devicePixelRatio: false,
2897
+ mediaDevices: false,
2898
+ getBattery: false,
2899
+ referrer: false,
2900
+ windowName: false,
2901
+ rtcPeerConnection: false,
2902
+ geolocation: false,
2903
+ serviceWorker: false,
2904
+ cacheApi: false,
2298
2905
  sendBeacon: false,
2299
2906
  fetch: false,
2300
2907
  xhr: false,
@@ -2336,11 +2943,26 @@ const npm = {
2336
2943
  webgl: false,
2337
2944
  audioContext: false,
2338
2945
  userAgent: false,
2946
+ doNotTrack: false,
2339
2947
  hardwareConcurrency: false,
2340
2948
  deviceMemory: false,
2341
2949
  plugins: false,
2342
2950
  languages: false,
2343
2951
  screen: false,
2952
+ timezone: false,
2953
+ platform: false,
2954
+ vendor: false,
2955
+ connection: false,
2956
+ maxTouchPoints: false,
2957
+ devicePixelRatio: false,
2958
+ mediaDevices: false,
2959
+ getBattery: false,
2960
+ referrer: false,
2961
+ windowName: false,
2962
+ rtcPeerConnection: false,
2963
+ geolocation: false,
2964
+ serviceWorker: false,
2965
+ cacheApi: false,
2344
2966
  sendBeacon: false,
2345
2967
  fetch: false,
2346
2968
  xhr: false,
@@ -2371,22 +2993,37 @@ const npm = {
2371
2993
  const googleRecaptcha = {
2372
2994
  totalTransferKb: 363.9,
2373
2995
  totalDecodedKb: 852,
2374
- loadTimeMs: 243,
2996
+ loadTimeMs: 245,
2375
2997
  collectsWebVitals: false,
2376
2998
  apis: {
2377
- cookies: true,
2378
- localStorage: true,
2999
+ cookies: false,
3000
+ localStorage: false,
2379
3001
  sessionStorage: true,
2380
3002
  indexedDB: false,
2381
3003
  canvas: false,
2382
3004
  webgl: false,
2383
3005
  audioContext: false,
2384
3006
  userAgent: true,
3007
+ doNotTrack: false,
2385
3008
  hardwareConcurrency: false,
2386
3009
  deviceMemory: true,
2387
3010
  plugins: false,
2388
3011
  languages: false,
2389
3012
  screen: true,
3013
+ timezone: true,
3014
+ platform: false,
3015
+ vendor: false,
3016
+ connection: false,
3017
+ maxTouchPoints: true,
3018
+ devicePixelRatio: false,
3019
+ mediaDevices: true,
3020
+ getBattery: false,
3021
+ referrer: false,
3022
+ windowName: false,
3023
+ rtcPeerConnection: false,
3024
+ geolocation: false,
3025
+ serviceWorker: false,
3026
+ cacheApi: false,
2390
3027
  sendBeacon: true,
2391
3028
  fetch: true,
2392
3029
  xhr: true,
@@ -2404,7 +3041,7 @@ const googleRecaptcha = {
2404
3041
  "www.gstatic.com"
2405
3042
  ],
2406
3043
  outboundBytes: 0,
2407
- inboundBytes: 373011,
3044
+ inboundBytes: 373010,
2408
3045
  injectedElements: [
2409
3046
  {
2410
3047
  tag: "script",
@@ -2413,9 +3050,9 @@ const googleRecaptcha = {
2413
3050
  ]
2414
3051
  },
2415
3052
  performance: {
2416
- taskDurationMs: 86,
2417
- scriptDurationMs: 49,
2418
- heapDeltaKb: 2943
3053
+ taskDurationMs: 68,
3054
+ scriptDurationMs: 38,
3055
+ heapDeltaKb: 2990
2419
3056
  },
2420
3057
  scripts: [
2421
3058
  {
@@ -2423,7 +3060,7 @@ const googleRecaptcha = {
2423
3060
  transferKb: 1.5,
2424
3061
  decodedKb: 1.5,
2425
3062
  encoding: "gzip",
2426
- durationMs: 243,
3063
+ durationMs: 245,
2427
3064
  initiatorType: "script",
2428
3065
  protocol: "unknown"
2429
3066
  },
@@ -2432,7 +3069,7 @@ const googleRecaptcha = {
2432
3069
  transferKb: 362.4,
2433
3070
  decodedKb: 850.5,
2434
3071
  encoding: "gzip",
2435
- durationMs: 227,
3072
+ durationMs: 232,
2436
3073
  initiatorType: "script",
2437
3074
  protocol: "h2"
2438
3075
  }
@@ -2440,11 +3077,11 @@ const googleRecaptcha = {
2440
3077
  };
2441
3078
  const googleSignIn = {
2442
3079
  totalTransferKb: 92.1,
2443
- totalDecodedKb: 247.5,
2444
- loadTimeMs: 577,
3080
+ totalDecodedKb: 247.6,
3081
+ loadTimeMs: 619,
2445
3082
  collectsWebVitals: false,
2446
3083
  apis: {
2447
- cookies: true,
3084
+ cookies: false,
2448
3085
  localStorage: false,
2449
3086
  sessionStorage: true,
2450
3087
  indexedDB: false,
@@ -2452,11 +3089,26 @@ const googleSignIn = {
2452
3089
  webgl: false,
2453
3090
  audioContext: false,
2454
3091
  userAgent: true,
3092
+ doNotTrack: false,
2455
3093
  hardwareConcurrency: false,
2456
3094
  deviceMemory: false,
2457
3095
  plugins: false,
2458
3096
  languages: false,
2459
3097
  screen: true,
3098
+ timezone: false,
3099
+ platform: false,
3100
+ vendor: false,
3101
+ connection: false,
3102
+ maxTouchPoints: false,
3103
+ devicePixelRatio: false,
3104
+ mediaDevices: false,
3105
+ getBattery: false,
3106
+ referrer: false,
3107
+ windowName: false,
3108
+ rtcPeerConnection: false,
3109
+ geolocation: false,
3110
+ serviceWorker: false,
3111
+ cacheApi: false,
2460
3112
  sendBeacon: false,
2461
3113
  fetch: false,
2462
3114
  xhr: true,
@@ -2473,22 +3125,22 @@ const googleSignIn = {
2473
3125
  "accounts.google.com"
2474
3126
  ],
2475
3127
  outboundBytes: 0,
2476
- inboundBytes: 94312,
3128
+ inboundBytes: 94339,
2477
3129
  injectedElements: [
2478
3130
  ]
2479
3131
  },
2480
3132
  performance: {
2481
- taskDurationMs: 13,
2482
- scriptDurationMs: 3,
2483
- heapDeltaKb: 1158
3133
+ taskDurationMs: 11,
3134
+ scriptDurationMs: 2,
3135
+ heapDeltaKb: 1210
2484
3136
  },
2485
3137
  scripts: [
2486
3138
  {
2487
3139
  url: "https://accounts.google.com/gsi/client",
2488
3140
  transferKb: 92.1,
2489
- decodedKb: 247.5,
3141
+ decodedKb: 247.6,
2490
3142
  encoding: "gzip",
2491
- durationMs: 577,
3143
+ durationMs: 619,
2492
3144
  initiatorType: "script",
2493
3145
  protocol: "unknown"
2494
3146
  }
@@ -2508,11 +3160,26 @@ const blueskyEmbed = {
2508
3160
  webgl: false,
2509
3161
  audioContext: false,
2510
3162
  userAgent: false,
3163
+ doNotTrack: false,
2511
3164
  hardwareConcurrency: false,
2512
3165
  deviceMemory: false,
2513
3166
  plugins: false,
2514
3167
  languages: false,
2515
3168
  screen: false,
3169
+ timezone: false,
3170
+ platform: false,
3171
+ vendor: false,
3172
+ connection: false,
3173
+ maxTouchPoints: false,
3174
+ devicePixelRatio: false,
3175
+ mediaDevices: false,
3176
+ getBattery: false,
3177
+ referrer: false,
3178
+ windowName: false,
3179
+ rtcPeerConnection: false,
3180
+ geolocation: false,
3181
+ serviceWorker: false,
3182
+ cacheApi: false,
2516
3183
  sendBeacon: false,
2517
3184
  fetch: false,
2518
3185
  xhr: false,
@@ -2543,7 +3210,7 @@ const blueskyEmbed = {
2543
3210
  const instagramEmbed = {
2544
3211
  totalTransferKb: 33.9,
2545
3212
  totalDecodedKb: 102.2,
2546
- loadTimeMs: 382,
3213
+ loadTimeMs: 359,
2547
3214
  collectsWebVitals: false,
2548
3215
  apis: {
2549
3216
  cookies: false,
@@ -2554,11 +3221,26 @@ const instagramEmbed = {
2554
3221
  webgl: false,
2555
3222
  audioContext: false,
2556
3223
  userAgent: true,
3224
+ doNotTrack: false,
2557
3225
  hardwareConcurrency: false,
2558
3226
  deviceMemory: false,
2559
3227
  plugins: false,
2560
3228
  languages: false,
2561
3229
  screen: false,
3230
+ timezone: false,
3231
+ platform: false,
3232
+ vendor: false,
3233
+ connection: false,
3234
+ maxTouchPoints: false,
3235
+ devicePixelRatio: true,
3236
+ mediaDevices: false,
3237
+ getBattery: false,
3238
+ referrer: false,
3239
+ windowName: false,
3240
+ rtcPeerConnection: false,
3241
+ geolocation: false,
3242
+ serviceWorker: false,
3243
+ cacheApi: false,
2562
3244
  sendBeacon: false,
2563
3245
  fetch: false,
2564
3246
  xhr: false,
@@ -2575,14 +3257,14 @@ const instagramEmbed = {
2575
3257
  "www.instagram.com"
2576
3258
  ],
2577
3259
  outboundBytes: 0,
2578
- inboundBytes: 36792,
3260
+ inboundBytes: 36789,
2579
3261
  injectedElements: [
2580
3262
  ]
2581
3263
  },
2582
3264
  performance: {
2583
- taskDurationMs: 13,
2584
- scriptDurationMs: 6,
2585
- heapDeltaKb: 838
3265
+ taskDurationMs: 12,
3266
+ scriptDurationMs: 5,
3267
+ heapDeltaKb: 886
2586
3268
  },
2587
3269
  scripts: [
2588
3270
  {
@@ -2590,7 +3272,7 @@ const instagramEmbed = {
2590
3272
  transferKb: 33.9,
2591
3273
  decodedKb: 102.2,
2592
3274
  encoding: "zstd",
2593
- durationMs: 382,
3275
+ durationMs: 359,
2594
3276
  initiatorType: "script",
2595
3277
  protocol: "h2"
2596
3278
  }
@@ -2599,25 +3281,40 @@ const instagramEmbed = {
2599
3281
  const xEmbed = {
2600
3282
  totalTransferKb: 130.5,
2601
3283
  totalDecodedKb: 410.4,
2602
- loadTimeMs: 76,
3284
+ loadTimeMs: 79,
2603
3285
  collectsWebVitals: false,
2604
3286
  apis: {
2605
3287
  cookies: false,
2606
- localStorage: true,
3288
+ localStorage: false,
2607
3289
  sessionStorage: false,
2608
3290
  indexedDB: false,
2609
3291
  canvas: false,
2610
3292
  webgl: false,
2611
3293
  audioContext: false,
2612
3294
  userAgent: true,
3295
+ doNotTrack: false,
2613
3296
  hardwareConcurrency: false,
2614
3297
  deviceMemory: false,
2615
3298
  plugins: false,
2616
3299
  languages: false,
2617
3300
  screen: false,
3301
+ timezone: false,
3302
+ platform: false,
3303
+ vendor: false,
3304
+ connection: false,
3305
+ maxTouchPoints: false,
3306
+ devicePixelRatio: true,
3307
+ mediaDevices: false,
3308
+ getBattery: false,
3309
+ referrer: true,
3310
+ windowName: false,
3311
+ rtcPeerConnection: false,
3312
+ geolocation: false,
3313
+ serviceWorker: false,
3314
+ cacheApi: false,
2618
3315
  sendBeacon: false,
2619
3316
  fetch: false,
2620
- xhr: true,
3317
+ xhr: false,
2621
3318
  websocket: false,
2622
3319
  mutationObserver: true,
2623
3320
  performanceObserver: false,
@@ -2632,18 +3329,18 @@ const xEmbed = {
2632
3329
  "syndication.twitter.com"
2633
3330
  ],
2634
3331
  outboundBytes: 0,
2635
- inboundBytes: 134601,
3332
+ inboundBytes: 134600,
2636
3333
  injectedElements: [
2637
3334
  {
2638
3335
  tag: "iframe",
2639
- src: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A43655"
3336
+ src: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A40469"
2640
3337
  }
2641
3338
  ]
2642
3339
  },
2643
3340
  performance: {
2644
- taskDurationMs: 48,
3341
+ taskDurationMs: 49,
2645
3342
  scriptDurationMs: 16,
2646
- heapDeltaKb: 2387
3343
+ heapDeltaKb: 2540
2647
3344
  },
2648
3345
  scripts: [
2649
3346
  {
@@ -2651,16 +3348,16 @@ const xEmbed = {
2651
3348
  transferKb: 27.3,
2652
3349
  decodedKb: 90.9,
2653
3350
  encoding: "gzip",
2654
- durationMs: 76,
3351
+ durationMs: 79,
2655
3352
  initiatorType: "script",
2656
3353
  protocol: "unknown"
2657
3354
  },
2658
3355
  {
2659
- url: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A43655",
3356
+ url: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A40469",
2660
3357
  transferKb: 103.2,
2661
3358
  decodedKb: 319.5,
2662
3359
  encoding: "gzip",
2663
- durationMs: 52,
3360
+ durationMs: 57,
2664
3361
  initiatorType: "iframe",
2665
3362
  protocol: "unknown"
2666
3363
  }
@@ -2680,11 +3377,26 @@ const gravatar = {
2680
3377
  webgl: false,
2681
3378
  audioContext: false,
2682
3379
  userAgent: false,
3380
+ doNotTrack: false,
2683
3381
  hardwareConcurrency: false,
2684
3382
  deviceMemory: false,
2685
3383
  plugins: false,
2686
3384
  languages: false,
2687
3385
  screen: false,
3386
+ timezone: false,
3387
+ platform: false,
3388
+ vendor: false,
3389
+ connection: false,
3390
+ maxTouchPoints: false,
3391
+ devicePixelRatio: false,
3392
+ mediaDevices: false,
3393
+ getBattery: false,
3394
+ referrer: false,
3395
+ windowName: false,
3396
+ rtcPeerConnection: false,
3397
+ geolocation: false,
3398
+ serviceWorker: false,
3399
+ cacheApi: false,
2688
3400
  sendBeacon: false,
2689
3401
  fetch: false,
2690
3402
  xhr: false,
@@ -2753,24 +3465,178 @@ const scriptSizes = {
2753
3465
  gravatar: gravatar
2754
3466
  };
2755
3467
 
2756
- const PERSISTENCE_APIS = ["cookies", "localStorage", "sessionStorage", "indexedDB"];
2757
- const FINGERPRINTING_APIS = ["canvas", "webgl", "audioContext", "deviceMemory", "hardwareConcurrency", "plugins", "screen", "userAgent", "languages"];
2758
- const MONITORING_APIS = ["mutationObserver", "intersectionObserver"];
2759
- const PERSISTENCE_WEIGHT = 10;
2760
- const FINGERPRINTING_WEIGHT = 6;
2761
- const MONITORING_WEIGHT = 4;
2762
- const MAX_SCORE = PERSISTENCE_APIS.length * PERSISTENCE_WEIGHT + FINGERPRINTING_APIS.length * FINGERPRINTING_WEIGHT + MONITORING_APIS.length * MONITORING_WEIGHT;
2763
- function computeApiPrivacyScore(apis) {
2764
- const count = (keys) => keys.filter((k) => apis[k]).length;
2765
- const persistence = count(PERSISTENCE_APIS);
2766
- const fingerprinting = count(FINGERPRINTING_APIS);
2767
- const monitoring = count(MONITORING_APIS);
2768
- const raw = persistence * PERSISTENCE_WEIGHT + fingerprinting * FINGERPRINTING_WEIGHT + monitoring * MONITORING_WEIGHT;
3468
+ const FINGERPRINT_ENTROPY = {
3469
+ canvas: 6,
3470
+ // ~17 bits renders unique per GPU/driver/font stack
3471
+ webgl: 6,
3472
+ // ~15 bits — GPU renderer string uniquely identifies hardware
3473
+ audioContext: 5,
3474
+ // ~12 bits audio processing stack fingerprint
3475
+ rtcPeerConnection: 4,
3476
+ // leaks real IP behind VPN, enables WebRTC fingerprinting
3477
+ mediaDevices: 3,
3478
+ // enumerates cameras/mics — hardware inventory
3479
+ plugins: 3,
3480
+ // historically ~15 bits, declining in modern browsers
3481
+ screen: 3,
3482
+ // ~8 bits — resolution + colorDepth
3483
+ geolocation: 3,
3484
+ // precise location (requires permission but very invasive)
3485
+ timezone: 2,
3486
+ // ~5 bits
3487
+ languages: 2,
3488
+ // ~5 bits
3489
+ hardwareConcurrency: 2,
3490
+ // ~3.5 bits — CPU core count
3491
+ deviceMemory: 2,
3492
+ // ~2.5 bits — RAM bucket
3493
+ userAgent: 1,
3494
+ // being frozen by UA-CH, declining utility
3495
+ platform: 1,
3496
+ // ~3 bits but highly correlated with userAgent
3497
+ vendor: 1,
3498
+ // low entropy, mostly "Google Inc."
3499
+ maxTouchPoints: 1,
3500
+ // ~2 bits
3501
+ devicePixelRatio: 1,
3502
+ // ~3 bits but correlated with screen
3503
+ connection: 1,
3504
+ // network type — low entropy
3505
+ getBattery: 1
3506
+ // low entropy but privacy concern (removed from most browsers)
3507
+ };
3508
+ const MAX_FINGERPRINT = Object.values(FINGERPRINT_ENTROPY).reduce((a, b) => a + b, 0);
3509
+ const STORAGE_API_WEIGHT = {
3510
+ cookies: 4,
3511
+ // cross-domain capable, most abused
3512
+ localStorage: 3,
3513
+ // persistent, survives tab close
3514
+ indexedDB: 3,
3515
+ // large persistent storage
3516
+ sessionStorage: 1
3517
+ // session-scoped, less invasive
3518
+ };
3519
+ const MAX_STORAGE_API = Object.values(STORAGE_API_WEIGHT).reduce((a, b) => a + b, 0);
3520
+ const MONITOR_WEIGHT = {
3521
+ mutationObserver: 5,
3522
+ // sees all DOM changes — behavioral tracking
3523
+ intersectionObserver: 3,
3524
+ // viewport/scroll tracking
3525
+ windowName: 2
3526
+ // cross-origin data channel
3527
+ };
3528
+ const MAX_MONITOR = Object.values(MONITOR_WEIGHT).reduce((a, b) => a + b, 0);
3529
+ const DATA_SCOPE_WEIGHT = {
3530
+ "session-replay": 5,
3531
+ // records entire user session
3532
+ "heatmaps": 4,
3533
+ // tracks mouse movement / attention
3534
+ "user-identity": 4,
3535
+ // PII-adjacent
3536
+ "retargeting": 3,
3537
+ // cross-site ad following
3538
+ "audiences": 3,
3539
+ // user profiling
3540
+ "ab-testing": 2,
3541
+ // behavioral segmentation
3542
+ "form-submissions": 2,
3543
+ // captures input data
3544
+ "clicks": 1,
3545
+ "scrolls": 1,
3546
+ "conversions": 1,
3547
+ "events": 0,
3548
+ // basic analytics, expected
3549
+ "page-views": 0,
3550
+ // basic analytics, expected
3551
+ "transactions": 1,
3552
+ "errors": 0,
3553
+ // functional
3554
+ "video-engagement": 0,
3555
+ "tag-injection": 5
3556
+ // loads unknown third-party code — wildcard privacy risk
3557
+ };
3558
+ const KNOWN_UNDETECTED_APIS = {
3559
+ // reCAPTCHA: bot detection fingerprints via canvas, webgl, audio — heavily obfuscated
3560
+ googleRecaptcha: ["canvas", "webgl", "audioContext"]
3561
+ };
3562
+ const HEAVY_FP_APIS = ["canvas", "webgl", "audioContext", "rtcPeerConnection"];
3563
+ const KNOWN_FUNCTIONAL_APIS = {
3564
+ // Crisp: voice/video chat requires audio, WebRTC, and camera/mic enumeration
3565
+ crisp: ["audioContext", "rtcPeerConnection", "mediaDevices"],
3566
+ // Intercom: canvas used for UI rendering, not fingerprinting
3567
+ intercom: ["canvas"]
3568
+ };
3569
+ function computePrivacyRating(apis, cookies, network, trackedData, functionalApis) {
3570
+ const fingerprintApis = [];
3571
+ let fingerprintRaw = 0;
3572
+ for (const [api, weight] of Object.entries(FINGERPRINT_ENTROPY)) {
3573
+ if (apis[api]) {
3574
+ fingerprintRaw += weight;
3575
+ fingerprintApis.push(api);
3576
+ }
3577
+ }
3578
+ const fingerprintScore = Math.round(fingerprintRaw / MAX_FINGERPRINT * 30);
3579
+ const storageApis = [];
3580
+ let storageRaw = 0;
3581
+ for (const [api, weight] of Object.entries(STORAGE_API_WEIGHT)) {
3582
+ if (apis[api]) {
3583
+ storageRaw += weight;
3584
+ storageApis.push(api);
3585
+ }
3586
+ }
3587
+ const storageScore = Math.round(storageRaw / MAX_STORAGE_API * 10);
3588
+ const thirdPartyCookies = cookies.filter((c) => !c.firstParty).length;
3589
+ const longLivedCookies = cookies.filter((c) => c.lifetimeDays > 30).length;
3590
+ const cookieScore = Math.min(9, thirdPartyCookies * 3) + Math.min(6, longLivedCookies * 2);
3591
+ const persistenceScore = Math.min(25, storageScore + cookieScore);
3592
+ const domainCount = network.domains.length;
3593
+ const domainScore = Math.min(12, Math.max(0, domainCount - 1) * 4);
3594
+ const pixelQueryBytes = network.injectedElements.filter((e) => e.tag === "img" && e.src.includes("?")).reduce((sum, e) => sum + new URL(e.src).search.length, 0);
3595
+ const totalOutbound = network.outboundBytes + pixelQueryBytes;
3596
+ const outboundScore = totalOutbound === 0 ? 0 : Math.min(8, Math.ceil(totalOutbound / 250));
3597
+ const trackingPixels = network.injectedElements.filter((e) => e.tag === "img").length;
3598
+ const injectedIframes = network.injectedElements.filter((e) => e.tag === "iframe").length;
3599
+ const injectionScore = Math.min(5, trackingPixels * 3 + injectedIframes * 2);
3600
+ const networkScore = Math.min(25, domainScore + outboundScore + injectionScore);
3601
+ const monitorApis = [];
3602
+ let monitorRaw = 0;
3603
+ for (const [api, weight] of Object.entries(MONITOR_WEIGHT)) {
3604
+ if (apis[api]) {
3605
+ monitorRaw += weight;
3606
+ monitorApis.push(api);
3607
+ }
3608
+ }
3609
+ const monitorScore = Math.round(monitorRaw / MAX_MONITOR * 10);
3610
+ const scopeTypes = trackedData.filter((t) => (DATA_SCOPE_WEIGHT[t] ?? 0) > 0);
3611
+ const scopeRaw = trackedData.reduce((sum, t) => sum + (DATA_SCOPE_WEIGHT[t] ?? 0), 0);
3612
+ const scopeScore = Math.min(10, scopeRaw);
3613
+ const heavyFpApis = HEAVY_FP_APIS.filter((api) => apis[api] && !functionalApis?.has(api));
3614
+ const hasExfiltration = totalOutbound > 0 || domainCount > 1 || trackingPixels > 0 || apis.sendBeacon;
3615
+ const fpExfilScore = heavyFpApis.length > 0 && hasExfiltration ? Math.min(25, heavyFpApis.length * 9) : 0;
3616
+ const score = fingerprintScore + persistenceScore + networkScore + monitorScore + scopeScore + fpExfilScore;
3617
+ let grade;
3618
+ if (score <= 5)
3619
+ grade = "A+";
3620
+ else if (score <= 15)
3621
+ grade = "A";
3622
+ else if (score <= 30)
3623
+ grade = "B";
3624
+ else if (score <= 50)
3625
+ grade = "C";
3626
+ else if (score <= 70)
3627
+ grade = "D";
3628
+ else grade = "F";
2769
3629
  return {
2770
- score: Math.round(raw / MAX_SCORE * 100),
2771
- persistence,
2772
- fingerprinting,
2773
- monitoring
3630
+ grade,
3631
+ score,
3632
+ breakdown: {
3633
+ fingerprinting: { score: fingerprintScore, apis: fingerprintApis },
3634
+ persistence: { score: persistenceScore, thirdPartyCookies, longLivedCookies, storageApis },
3635
+ network: { score: networkScore, domains: domainCount, outboundBytes: totalOutbound, trackingPixels },
3636
+ monitoring: { score: monitorScore, apis: monitorApis },
3637
+ dataScope: { score: scopeScore, types: scopeTypes },
3638
+ fpExfiltration: { score: fpExfilScore, heavyApis: heavyFpApis }
3639
+ }
2774
3640
  };
2775
3641
  }
2776
3642
  const CLS_RISK_TAGS = /* @__PURE__ */ new Set(["iframe", "img", "div", "video"]);
@@ -2783,6 +3649,68 @@ function computeCwvEstimate(perf, network, apis) {
2783
3649
  const inpRiskLevel = heavyScript && domObserver ? "high" : heavyScript || domObserver ? "medium" : "low";
2784
3650
  return { lcpImpactMs, clsRisk, clsElements, inpRiskLevel };
2785
3651
  }
3652
+ function scoreSteps(value, steps) {
3653
+ let score = 0;
3654
+ for (const [threshold, points] of steps) {
3655
+ if (value >= threshold)
3656
+ score = points;
3657
+ }
3658
+ return score;
3659
+ }
3660
+ function computePerformanceRating(perf, transferKb, network, cwv) {
3661
+ const networkScore = scoreSteps(transferKb, [
3662
+ [5, 5],
3663
+ [15, 10],
3664
+ [30, 15],
3665
+ [60, 20],
3666
+ [120, 25],
3667
+ [250, 30]
3668
+ ]);
3669
+ const mainThreadScore = scoreSteps(perf.taskDurationMs, [
3670
+ [10, 5],
3671
+ [20, 10],
3672
+ [30, 18],
3673
+ [50, 25],
3674
+ [75, 30]
3675
+ ]);
3676
+ const memoryScore = scoreSteps(perf.heapDeltaKb, [
3677
+ [750, 5],
3678
+ [1e3, 10],
3679
+ [1500, 15],
3680
+ [2e3, 20]
3681
+ ]);
3682
+ const connectionScore = scoreSteps(network.requestCount, [
3683
+ [2, 3],
3684
+ [3, 5],
3685
+ [4, 7],
3686
+ [6, 10]
3687
+ ]);
3688
+ 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);
3689
+ const score = networkScore + mainThreadScore + memoryScore + connectionScore + cwvScore;
3690
+ let grade;
3691
+ if (score <= 5)
3692
+ grade = "A+";
3693
+ else if (score <= 15)
3694
+ grade = "A";
3695
+ else if (score <= 30)
3696
+ grade = "B";
3697
+ else if (score <= 50)
3698
+ grade = "C";
3699
+ else if (score <= 70)
3700
+ grade = "D";
3701
+ else grade = "F";
3702
+ return {
3703
+ grade,
3704
+ score,
3705
+ breakdown: {
3706
+ networkCost: { score: networkScore, transferKb },
3707
+ mainThread: { score: mainThreadScore, taskDurationMs: perf.taskDurationMs, scriptDurationMs: perf.scriptDurationMs },
3708
+ memory: { score: memoryScore, heapDeltaKb: perf.heapDeltaKb },
3709
+ connections: { score: connectionScore, requestCount: network.requestCount },
3710
+ cwvRisk: { score: cwvScore, lcpImpactMs: cwv.lcpImpactMs, clsRisk: cwv.clsRisk, inpRiskLevel: cwv.inpRiskLevel }
3711
+ }
3712
+ };
3713
+ }
2786
3714
  const DOMAIN_RE = /^https?:\/\/([^/]+)/;
2787
3715
  const USE_SCRIPT_RE = /^useScript/;
2788
3716
  const WORD_SPLIT_RE = /[\s-]+/;
@@ -2838,25 +3766,38 @@ async function getScriptStats() {
2838
3766
  const routes = proxyConfig?.routes ?? {};
2839
3767
  const domains = extractDomains(routes);
2840
3768
  const endpoints = Object.keys(routes).length;
3769
+ const emptyApis = {};
3770
+ const emptyNetwork = { requestCount: 0, domains: [], outboundBytes: 0, inboundBytes: 0, injectedElements: [] };
3771
+ const emptyPerf = { taskDurationMs: 0, scriptDurationMs: 0, heapDeltaKb: 0 };
3772
+ const apis = { ...size?.apis ?? emptyApis };
3773
+ const knownApis = KNOWN_UNDETECTED_APIS[id];
3774
+ if (knownApis) {
3775
+ for (const api of knownApis) apis[api] = true;
3776
+ }
3777
+ const cookies = size?.cookies ?? [];
3778
+ const network = size?.network ?? emptyNetwork;
3779
+ const perf = size?.performance ?? emptyPerf;
3780
+ const trackedData = meta?.trackedData ?? [];
3781
+ const scripts = size?.scripts ?? [];
3782
+ const transferKb = size?.totalTransferKb ?? 0;
3783
+ const primaryTransferKb = scripts.length > 0 ? Number.parseFloat(scripts.filter((s) => s.initiatorType !== "secondary").reduce((sum, s) => sum + s.transferKb, 0).toFixed(1)) : transferKb;
3784
+ const cwvEstimate = computeCwvEstimate(perf, network, apis);
2841
3785
  return {
2842
3786
  id,
2843
3787
  label: entry.label || id || "",
2844
3788
  category: entry.category || "unknown",
2845
- scripts: size?.scripts ?? [],
2846
- totalTransferKb: size?.totalTransferKb ?? 0,
3789
+ scripts,
3790
+ totalTransferKb: transferKb,
2847
3791
  totalDecodedKb: size?.totalDecodedKb ?? 0,
2848
- trackedData: meta?.trackedData ?? [],
3792
+ trackedData,
2849
3793
  collectsWebVitals: size?.collectsWebVitals ?? false,
2850
- apis: size?.apis ?? {},
2851
- apiPrivacyScore: computeApiPrivacyScore(size?.apis ?? {}),
2852
- cookies: size?.cookies ?? [],
2853
- network: size?.network ?? { requestCount: 0, domains: [], outboundBytes: 0, inboundBytes: 0, injectedElements: [] },
2854
- performance: size?.performance ?? { taskDurationMs: 0, scriptDurationMs: 0, heapDeltaKb: 0 },
2855
- cwvEstimate: computeCwvEstimate(
2856
- size?.performance ?? { scriptDurationMs: 0},
2857
- size?.network ?? { injectedElements: [] },
2858
- size?.apis ?? {}
2859
- ),
3794
+ apis,
3795
+ privacyRating: computePrivacyRating(apis, cookies, network, trackedData, KNOWN_FUNCTIONAL_APIS[id] ? new Set(KNOWN_FUNCTIONAL_APIS[id]) : void 0),
3796
+ cookies,
3797
+ network,
3798
+ performance: perf,
3799
+ performanceRating: computePerformanceRating(perf, primaryTransferKb, network, cwvEstimate),
3800
+ cwvEstimate,
2860
3801
  hasBundling: entry.scriptBundling !== false && entry.scriptBundling !== void 0,
2861
3802
  hasProxy: !!proxyConfig,
2862
3803
  proxyDomains: domains,