@nuxt/scripts 1.0.0-beta.3 → 1.0.0-beta.31

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 (217) hide show
  1. package/README.md +3 -3
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/{DdVDSbUA.js → 6CwTUC2b.js} +1 -1
  5. package/dist/client/_nuxt/{CD5B-xvT.js → B71AlSZ1.js} +1 -1
  6. package/dist/client/_nuxt/{Ds2G8aQM.js → BYGJV5dd.js} +1 -1
  7. package/dist/client/_nuxt/V4W-T8W6.js +162 -0
  8. package/dist/client/_nuxt/builds/latest.json +1 -1
  9. package/dist/client/_nuxt/builds/meta/70b59a3e-a025-4a77-a25a-dfadf5b1749d.json +1 -0
  10. package/dist/client/_nuxt/entry.C5SUNdim.css +1 -0
  11. package/dist/client/_nuxt/error-404.1K8v8Su2.css +1 -0
  12. package/dist/client/_nuxt/error-500.B9qvKpQm.css +1 -0
  13. package/dist/client/index.html +1 -1
  14. package/dist/module.d.mts +6 -18
  15. package/dist/module.d.ts +164 -0
  16. package/dist/module.json +1 -1
  17. package/dist/module.mjs +908 -645
  18. package/dist/registry.d.ts +6 -0
  19. package/dist/registry.mjs +244 -78
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +16 -9
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +57 -30
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +16 -9
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +22 -39
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +69 -72
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +22 -39
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +25 -38
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +61 -0
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
  35. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +9 -5
  36. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +62 -53
  37. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +9 -5
  38. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +26 -11
  39. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +48 -45
  40. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +26 -11
  41. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +15 -4
  42. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +47 -37
  43. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +15 -4
  44. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +77 -0
  45. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +209 -0
  46. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +77 -0
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +4 -0
  48. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +23 -32
  49. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +4 -0
  50. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
  51. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +24 -38
  52. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
  53. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
  54. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +24 -38
  55. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
  56. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
  57. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +25 -38
  58. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
  59. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  60. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  61. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +13 -0
  62. package/dist/runtime/components/GoogleMaps/injectionKeys.js +3 -0
  63. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +26 -0
  64. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +42 -0
  65. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +87 -0
  66. package/dist/runtime/components/ScriptBlueskyEmbed.vue +85 -0
  67. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +87 -0
  68. package/dist/runtime/components/ScriptCrisp.vue +1 -1
  69. package/dist/runtime/components/ScriptGoogleAdsense.vue +1 -1
  70. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  71. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  72. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  73. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +2 -2
  74. package/dist/runtime/components/ScriptInstagramEmbed.vue +5 -2
  75. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +2 -2
  76. package/dist/runtime/components/ScriptIntercom.vue +4 -3
  77. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -32
  78. package/dist/runtime/components/ScriptPayPalButtons.vue +48 -79
  79. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -32
  80. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -23
  81. package/dist/runtime/components/ScriptPayPalMessages.vue +46 -50
  82. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -23
  83. package/dist/runtime/components/ScriptStripePricingTable.vue +2 -2
  84. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +9 -0
  85. package/dist/runtime/components/ScriptVimeoPlayer.vue +13 -10
  86. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +9 -0
  87. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +2 -2
  88. package/dist/runtime/components/ScriptXEmbed.vue +6 -3
  89. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +2 -2
  90. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +2 -2
  91. package/dist/runtime/components/ScriptYouTubePlayer.vue +11 -5
  92. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +2 -2
  93. package/dist/runtime/composables/useScript.js +13 -6
  94. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  95. package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
  96. package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
  97. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  98. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  99. package/dist/runtime/registry/bing-uet.d.ts +20 -0
  100. package/dist/runtime/registry/bing-uet.js +29 -0
  101. package/dist/runtime/registry/bluesky-embed.d.ts +116 -0
  102. package/dist/runtime/registry/bluesky-embed.js +72 -0
  103. package/dist/runtime/registry/clarity.d.ts +10 -15
  104. package/dist/runtime/registry/clarity.js +22 -31
  105. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  106. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  107. package/dist/runtime/registry/crisp.d.ts +10 -40
  108. package/dist/runtime/registry/crisp.js +2 -33
  109. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  110. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  111. package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
  112. package/dist/runtime/registry/fathom-analytics.js +2 -24
  113. package/dist/runtime/registry/google-adsense.d.ts +3 -11
  114. package/dist/runtime/registry/google-adsense.js +2 -11
  115. package/dist/runtime/registry/google-analytics.d.ts +3 -5
  116. package/dist/runtime/registry/google-analytics.js +3 -8
  117. package/dist/runtime/registry/google-maps.d.ts +3 -9
  118. package/dist/runtime/registry/google-maps.js +2 -8
  119. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  120. package/dist/runtime/registry/google-recaptcha.js +4 -12
  121. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  122. package/dist/runtime/registry/google-sign-in.js +2 -22
  123. package/dist/runtime/registry/google-tag-manager.d.ts +3 -28
  124. package/dist/runtime/registry/google-tag-manager.js +4 -27
  125. package/dist/runtime/registry/gravatar.d.ts +26 -0
  126. package/dist/runtime/registry/gravatar.js +33 -0
  127. package/dist/runtime/registry/hotjar.d.ts +4 -6
  128. package/dist/runtime/registry/hotjar.js +2 -5
  129. package/dist/runtime/registry/instagram-embed.d.ts +3 -18
  130. package/dist/runtime/registry/instagram-embed.js +4 -19
  131. package/dist/runtime/registry/intercom.d.ts +4 -12
  132. package/dist/runtime/registry/intercom.js +2 -12
  133. package/dist/runtime/registry/matomo-analytics.d.ts +3 -12
  134. package/dist/runtime/registry/matomo-analytics.js +3 -12
  135. package/dist/runtime/registry/meta-pixel.d.ts +4 -6
  136. package/dist/runtime/registry/meta-pixel.js +2 -4
  137. package/dist/runtime/registry/mixpanel-analytics.d.ts +22 -0
  138. package/dist/runtime/registry/mixpanel-analytics.js +46 -0
  139. package/dist/runtime/registry/npm.d.ts +3 -7
  140. package/dist/runtime/registry/npm.js +2 -9
  141. package/dist/runtime/registry/paypal.d.ts +4 -25
  142. package/dist/runtime/registry/paypal.js +3 -66
  143. package/dist/runtime/registry/plausible-analytics.js +18 -13
  144. package/dist/runtime/registry/posthog.d.ts +10 -12
  145. package/dist/runtime/registry/posthog.js +7 -14
  146. package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
  147. package/dist/runtime/registry/reddit-pixel.js +2 -4
  148. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  149. package/dist/runtime/registry/rybbit-analytics.js +10 -20
  150. package/dist/runtime/registry/schemas.d.ts +982 -0
  151. package/dist/runtime/registry/schemas.js +937 -0
  152. package/dist/runtime/registry/segment.d.ts +2 -5
  153. package/dist/runtime/registry/segment.js +2 -5
  154. package/dist/runtime/registry/snapchat-pixel.d.ts +4 -33
  155. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  156. package/dist/runtime/registry/stripe.d.ts +3 -4
  157. package/dist/runtime/registry/stripe.js +2 -4
  158. package/dist/runtime/registry/tiktok-pixel.d.ts +4 -7
  159. package/dist/runtime/registry/tiktok-pixel.js +2 -6
  160. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  161. package/dist/runtime/registry/umami-analytics.js +2 -36
  162. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  163. package/dist/runtime/registry/vercel-analytics.js +84 -0
  164. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  165. package/dist/runtime/registry/vimeo-player.js +1 -1
  166. package/dist/runtime/registry/x-embed.d.ts +3 -17
  167. package/dist/runtime/registry/x-embed.js +3 -18
  168. package/dist/runtime/registry/x-pixel.d.ts +4 -7
  169. package/dist/runtime/registry/x-pixel.js +2 -5
  170. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  171. package/dist/runtime/registry/youtube-player.js +1 -1
  172. package/dist/runtime/server/{sw-handler.d.ts → bluesky-embed-image.d.ts} +1 -1
  173. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  174. package/dist/runtime/server/bluesky-embed.d.ts +16 -0
  175. package/dist/runtime/server/bluesky-embed.js +59 -0
  176. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  177. package/dist/runtime/server/google-maps-geocode-proxy.js +34 -0
  178. package/dist/runtime/server/google-static-maps-proxy.js +2 -13
  179. package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
  180. package/dist/runtime/server/gravatar-proxy.js +46 -0
  181. package/dist/runtime/server/instagram-embed-asset.js +8 -41
  182. package/dist/runtime/server/instagram-embed-image.js +6 -53
  183. package/dist/runtime/server/instagram-embed.d.ts +16 -0
  184. package/dist/runtime/server/instagram-embed.js +173 -35
  185. package/dist/runtime/server/proxy-handler.js +144 -113
  186. package/dist/runtime/server/utils/image-proxy.d.ts +12 -0
  187. package/dist/runtime/server/utils/image-proxy.js +70 -0
  188. package/dist/runtime/server/utils/privacy.d.ts +1 -2
  189. package/dist/runtime/server/utils/privacy.js +54 -34
  190. package/dist/runtime/server/x-embed-image.js +5 -49
  191. package/dist/runtime/server/x-embed.js +3 -2
  192. package/dist/runtime/types.d.ts +74 -40
  193. package/dist/runtime/utils/pure.d.ts +1 -5
  194. package/dist/runtime/utils/pure.js +0 -67
  195. package/dist/runtime/utils.d.ts +4 -3
  196. package/dist/runtime/utils.js +24 -10
  197. package/dist/shared/scripts.D7e2ENu6.mjs +211 -0
  198. package/dist/stats.d.mts +202 -0
  199. package/dist/stats.d.ts +202 -0
  200. package/dist/stats.mjs +3860 -0
  201. package/dist/types-source.d.mts +17 -0
  202. package/dist/types-source.d.ts +17 -0
  203. package/dist/types-source.mjs +3614 -0
  204. package/package.json +52 -38
  205. package/dist/client/_nuxt/D-kOnTuH.js +0 -162
  206. package/dist/client/_nuxt/builds/meta/f1474569-6922-450d-bc3f-4fd5f3e1391a.json +0 -1
  207. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  208. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  209. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  210. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  211. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  212. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  213. package/dist/runtime/plugins/sw-register.client.d.ts +0 -2
  214. package/dist/runtime/plugins/sw-register.client.js +0 -12
  215. package/dist/runtime/server/sw-handler.js +0 -25
  216. package/dist/runtime/sw/proxy-sw.template.d.ts +0 -1
  217. package/dist/runtime/sw/proxy-sw.template.js +0 -54
package/dist/stats.mjs ADDED
@@ -0,0 +1,3860 @@
1
+ import { g as getAllProxyConfigs } from './shared/scripts.D7e2ENu6.mjs';
2
+
3
+ const scriptMeta = {
4
+ // Analytics
5
+ plausibleAnalytics: {
6
+ urls: ["https://plausible.io/js/script.js"],
7
+ trackedData: ["page-views", "events", "conversions"]
8
+ },
9
+ cloudflareWebAnalytics: {
10
+ urls: ["https://static.cloudflareinsights.com/beacon.min.js"],
11
+ trackedData: ["page-views"]
12
+ },
13
+ posthog: {
14
+ urls: ["https://us-assets.i.posthog.com/static/array.js"],
15
+ trackedData: ["page-views", "events", "conversions", "user-identity", "session-replay", "heatmaps", "ab-testing"],
16
+ testId: "phc_test"
17
+ },
18
+ fathomAnalytics: {
19
+ urls: ["https://cdn.usefathom.com/script.js"],
20
+ trackedData: ["page-views", "events", "conversions"]
21
+ },
22
+ matomoAnalytics: {
23
+ urls: ["https://cdn.matomo.cloud/demo.matomo.cloud/matomo.js"],
24
+ trackedData: ["page-views", "events", "conversions", "user-identity", "heatmaps", "ab-testing"]
25
+ },
26
+ rybbitAnalytics: {
27
+ urls: ["https://app.rybbit.io/api/script.js"],
28
+ trackedData: ["page-views", "events"]
29
+ },
30
+ databuddyAnalytics: {
31
+ urls: ["https://cdn.databuddy.cc/databuddy.js"],
32
+ trackedData: ["page-views", "events"]
33
+ },
34
+ mixpanelAnalytics: {
35
+ urls: ["https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"],
36
+ trackedData: ["page-views", "events", "conversions", "user-identity"]
37
+ },
38
+ segment: {
39
+ urls: ["https://cdn.segment.com/analytics.js/v1/KBXOGxgqMFjm2mxtJDJg0iDn5AnGYb9C/analytics.min.js"],
40
+ trackedData: ["page-views", "events", "conversions", "user-identity"]
41
+ },
42
+ googleAnalytics: {
43
+ urls: ["https://www.googletagmanager.com/gtag/js?id=G-TR58L0EF8P"],
44
+ trackedData: ["page-views", "events", "conversions", "user-identity", "audiences"]
45
+ },
46
+ umamiAnalytics: {
47
+ urls: ["https://cloud.umami.is/script.js"],
48
+ trackedData: ["page-views", "events"]
49
+ },
50
+ vercelAnalytics: {
51
+ urls: ["https://va.vercel-scripts.com/v1/script.js"],
52
+ trackedData: ["page-views", "events"]
53
+ },
54
+ // Ads / Pixels
55
+ bingUet: {
56
+ urls: ["https://bat.bing.com/bat.js"],
57
+ trackedData: ["page-views", "conversions", "retargeting", "audiences"],
58
+ testId: "247021147"
59
+ },
60
+ metaPixel: {
61
+ urls: ["https://connect.facebook.net/en_US/fbevents.js"],
62
+ trackedData: ["page-views", "conversions", "retargeting", "audiences"],
63
+ testId: "3925006"
64
+ },
65
+ xPixel: {
66
+ urls: ["https://static.ads-twitter.com/uwt.js"],
67
+ trackedData: ["page-views", "conversions", "retargeting", "audiences"],
68
+ testId: "ol7lz"
69
+ },
70
+ tiktokPixel: {
71
+ urls: ["https://analytics.tiktok.com/i18n/pixel/events.js"],
72
+ trackedData: ["page-views", "conversions", "retargeting", "audiences"],
73
+ testId: "C5ABC1234F5678"
74
+ },
75
+ snapchatPixel: {
76
+ urls: ["https://sc-static.net/scevent.min.js"],
77
+ trackedData: ["page-views", "conversions", "retargeting", "audiences"],
78
+ testId: "2295cbcc-cb3f-4727-8c09-1133b742722c"
79
+ },
80
+ redditPixel: {
81
+ urls: ["https://www.redditstatic.com/ads/pixel.js"],
82
+ trackedData: ["page-views", "conversions", "retargeting", "audiences"],
83
+ testId: "a2_ilz4u0kbdr3v"
84
+ },
85
+ googleAdsense: {
86
+ urls: ["https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"],
87
+ trackedData: ["page-views", "retargeting", "audiences"]
88
+ },
89
+ carbonAds: {
90
+ urls: ["https://cdn.carbonads.com/carbon.js?serve=CW7DTKJL&placement=unlighthousedev&format=cover"],
91
+ trackedData: ["page-views"]
92
+ },
93
+ // Session replay / Heatmaps
94
+ hotjar: {
95
+ urls: ["https://static.hotjar.com/c/hotjar-3925006.js?sv=6"],
96
+ trackedData: ["page-views", "session-replay", "heatmaps", "clicks", "scrolls", "form-submissions"],
97
+ testId: 3925006
98
+ },
99
+ clarity: {
100
+ urls: ["https://www.clarity.ms/tag/mqk2m9dr2v"],
101
+ trackedData: ["page-views", "session-replay", "heatmaps", "clicks", "scrolls"],
102
+ testId: "mqk2m9dr2v"
103
+ },
104
+ // Tag Manager
105
+ googleTagManager: {
106
+ urls: ["https://www.googletagmanager.com/gtm.js?id=GTM-MWW974PF"],
107
+ trackedData: ["tag-injection"]
108
+ },
109
+ // Support
110
+ intercom: {
111
+ urls: ["https://widget.intercom.io/widget/akg5rmxb"],
112
+ trackedData: ["user-identity", "events"],
113
+ testId: "akg5rmxb"
114
+ },
115
+ crisp: {
116
+ urls: ["https://client.crisp.chat/l.js"],
117
+ trackedData: ["user-identity", "events"],
118
+ testId: "b1021910-7ace-425a-9ef5-07f49e5ce417"
119
+ },
120
+ // Payments
121
+ stripe: {
122
+ urls: ["https://js.stripe.com/v3/"],
123
+ trackedData: ["transactions"]
124
+ },
125
+ lemonSqueezy: {
126
+ urls: ["https://assets.lemonsqueezy.com/lemon.js"],
127
+ trackedData: ["transactions"]
128
+ },
129
+ paypal: {
130
+ urls: ["https://www.paypal.com/web-sdk/v6/core"],
131
+ trackedData: ["transactions"]
132
+ },
133
+ // Video
134
+ vimeoPlayer: {
135
+ urls: ["https://player.vimeo.com/api/player.js"],
136
+ trackedData: ["video-engagement"]
137
+ },
138
+ youtubePlayer: {
139
+ urls: ["https://www.youtube.com/iframe_api"],
140
+ trackedData: ["video-engagement"]
141
+ },
142
+ // Content
143
+ googleMaps: {
144
+ urls: [],
145
+ // Dynamic URL with API key
146
+ trackedData: []
147
+ },
148
+ // CDN
149
+ npm: {
150
+ urls: [],
151
+ // Dynamic per package
152
+ trackedData: []
153
+ },
154
+ // Utility
155
+ googleRecaptcha: {
156
+ urls: ["https://www.google.com/recaptcha/api.js"],
157
+ trackedData: []
158
+ },
159
+ googleSignIn: {
160
+ urls: ["https://accounts.google.com/gsi/client"],
161
+ trackedData: ["user-identity"]
162
+ },
163
+ // Embeds
164
+ blueskyEmbed: {
165
+ urls: [],
166
+ trackedData: []
167
+ },
168
+ instagramEmbed: {
169
+ urls: ["https://www.instagram.com/embed.js"],
170
+ trackedData: []
171
+ },
172
+ xEmbed: {
173
+ urls: ["https://platform.twitter.com/widgets.js"],
174
+ trackedData: []
175
+ },
176
+ // Identity
177
+ gravatar: {
178
+ urls: ["https://secure.gravatar.com/js/gprofiles.js"],
179
+ trackedData: []
180
+ }
181
+ };
182
+
183
+ const plausibleAnalytics = {
184
+ totalTransferKb: 1.9,
185
+ totalDecodedKb: 2.9,
186
+ loadTimeMs: 71,
187
+ collectsWebVitals: false,
188
+ apis: {
189
+ cookies: false,
190
+ localStorage: true,
191
+ sessionStorage: false,
192
+ indexedDB: false,
193
+ canvas: false,
194
+ webgl: false,
195
+ audioContext: false,
196
+ userAgent: false,
197
+ doNotTrack: false,
198
+ hardwareConcurrency: false,
199
+ deviceMemory: false,
200
+ plugins: false,
201
+ languages: false,
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,
217
+ sendBeacon: false,
218
+ fetch: true,
219
+ xhr: false,
220
+ websocket: false,
221
+ mutationObserver: false,
222
+ performanceObserver: false,
223
+ intersectionObserver: false
224
+ },
225
+ cookies: [
226
+ ],
227
+ network: {
228
+ requestCount: 1,
229
+ domains: [
230
+ "plausible.io"
231
+ ],
232
+ outboundBytes: 0,
233
+ inboundBytes: 1954,
234
+ injectedElements: [
235
+ ]
236
+ },
237
+ performance: {
238
+ taskDurationMs: 7,
239
+ scriptDurationMs: 1,
240
+ heapDeltaKb: 759
241
+ },
242
+ scripts: [
243
+ {
244
+ url: "https://plausible.io/js/script.js",
245
+ transferKb: 1.9,
246
+ decodedKb: 2.9,
247
+ encoding: "zstd",
248
+ durationMs: 71,
249
+ initiatorType: "script",
250
+ protocol: "unknown"
251
+ }
252
+ ]
253
+ };
254
+ const cloudflareWebAnalytics = {
255
+ totalTransferKb: 10.8,
256
+ totalDecodedKb: 30.4,
257
+ loadTimeMs: 93,
258
+ collectsWebVitals: true,
259
+ apis: {
260
+ cookies: false,
261
+ localStorage: false,
262
+ sessionStorage: false,
263
+ indexedDB: false,
264
+ canvas: false,
265
+ webgl: false,
266
+ audioContext: false,
267
+ userAgent: true,
268
+ doNotTrack: false,
269
+ hardwareConcurrency: false,
270
+ deviceMemory: false,
271
+ plugins: false,
272
+ languages: false,
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,
288
+ sendBeacon: true,
289
+ fetch: false,
290
+ xhr: true,
291
+ websocket: false,
292
+ mutationObserver: false,
293
+ performanceObserver: true,
294
+ intersectionObserver: false
295
+ },
296
+ cookies: [
297
+ ],
298
+ network: {
299
+ requestCount: 1,
300
+ domains: [
301
+ "static.cloudflareinsights.com"
302
+ ],
303
+ outboundBytes: 0,
304
+ inboundBytes: 11075,
305
+ injectedElements: [
306
+ ]
307
+ },
308
+ performance: {
309
+ taskDurationMs: 6,
310
+ scriptDurationMs: 1,
311
+ heapDeltaKb: 784
312
+ },
313
+ scripts: [
314
+ {
315
+ url: "https://static.cloudflareinsights.com/beacon.min.js",
316
+ transferKb: 10.8,
317
+ decodedKb: 30.4,
318
+ encoding: "gzip",
319
+ durationMs: 93,
320
+ initiatorType: "script",
321
+ protocol: "unknown"
322
+ }
323
+ ]
324
+ };
325
+ const posthog = {
326
+ totalTransferKb: 132.5,
327
+ totalDecodedKb: 358,
328
+ loadTimeMs: 1514,
329
+ collectsWebVitals: true,
330
+ apis: {
331
+ cookies: true,
332
+ localStorage: true,
333
+ sessionStorage: true,
334
+ indexedDB: false,
335
+ canvas: false,
336
+ webgl: false,
337
+ audioContext: false,
338
+ userAgent: true,
339
+ doNotTrack: false,
340
+ hardwareConcurrency: false,
341
+ deviceMemory: false,
342
+ plugins: false,
343
+ languages: true,
344
+ screen: true,
345
+ timezone: true,
346
+ platform: false,
347
+ vendor: true,
348
+ connection: false,
349
+ maxTouchPoints: false,
350
+ devicePixelRatio: true,
351
+ mediaDevices: false,
352
+ getBattery: false,
353
+ referrer: false,
354
+ windowName: false,
355
+ rtcPeerConnection: false,
356
+ geolocation: false,
357
+ serviceWorker: false,
358
+ cacheApi: false,
359
+ sendBeacon: true,
360
+ fetch: true,
361
+ xhr: true,
362
+ websocket: false,
363
+ mutationObserver: false,
364
+ performanceObserver: false,
365
+ intersectionObserver: false
366
+ },
367
+ cookies: [
368
+ ],
369
+ network: {
370
+ requestCount: 5,
371
+ domains: [
372
+ "us-assets.i.posthog.com",
373
+ "us.i.posthog.com"
374
+ ],
375
+ outboundBytes: 269,
376
+ inboundBytes: 135643,
377
+ injectedElements: [
378
+ {
379
+ tag: "script",
380
+ src: "https://us-assets.i.posthog.com/array/phc_test/config.js"
381
+ },
382
+ {
383
+ tag: "script",
384
+ src: "https://us.i.posthog.com/static/array.js"
385
+ }
386
+ ]
387
+ },
388
+ performance: {
389
+ taskDurationMs: 36,
390
+ scriptDurationMs: 21,
391
+ heapDeltaKb: 1886
392
+ },
393
+ scripts: [
394
+ {
395
+ url: "https://us-assets.i.posthog.com/static/array.js",
396
+ transferKb: 65.9,
397
+ decodedKb: 178.9,
398
+ encoding: "gzip",
399
+ durationMs: 98,
400
+ initiatorType: "script",
401
+ protocol: "unknown"
402
+ },
403
+ {
404
+ url: "https://us.i.posthog.com/static/array.js",
405
+ transferKb: 66,
406
+ decodedKb: 178.9,
407
+ encoding: "gzip",
408
+ durationMs: 1514,
409
+ initiatorType: "script",
410
+ protocol: "unknown"
411
+ },
412
+ {
413
+ url: "https://us-assets.i.posthog.com/array/phc_test/config?ip=0&_=1773925874485&ver=1.361.1",
414
+ transferKb: 0.2,
415
+ decodedKb: 0.1,
416
+ encoding: "gzip",
417
+ durationMs: 261,
418
+ initiatorType: "fetch",
419
+ protocol: "unknown"
420
+ },
421
+ {
422
+ url: "https://us.i.posthog.com/flags/?v=2&ip=0&_=1773925874758&ver=1.361.1&compression=base64",
423
+ transferKb: 0.4,
424
+ decodedKb: 0.1,
425
+ encoding: "gzip",
426
+ durationMs: 908,
427
+ initiatorType: "fetch",
428
+ protocol: "unknown"
429
+ }
430
+ ]
431
+ };
432
+ const fathomAnalytics = {
433
+ totalTransferKb: 3,
434
+ totalDecodedKb: 6.7,
435
+ loadTimeMs: 316,
436
+ collectsWebVitals: false,
437
+ apis: {
438
+ cookies: false,
439
+ localStorage: true,
440
+ sessionStorage: false,
441
+ indexedDB: false,
442
+ canvas: false,
443
+ webgl: false,
444
+ audioContext: false,
445
+ userAgent: false,
446
+ doNotTrack: true,
447
+ hardwareConcurrency: false,
448
+ deviceMemory: false,
449
+ plugins: false,
450
+ languages: false,
451
+ screen: false,
452
+ timezone: false,
453
+ platform: false,
454
+ vendor: false,
455
+ connection: false,
456
+ maxTouchPoints: false,
457
+ devicePixelRatio: false,
458
+ mediaDevices: false,
459
+ getBattery: false,
460
+ referrer: true,
461
+ windowName: false,
462
+ rtcPeerConnection: false,
463
+ geolocation: false,
464
+ serviceWorker: false,
465
+ cacheApi: false,
466
+ sendBeacon: true,
467
+ fetch: false,
468
+ xhr: false,
469
+ websocket: false,
470
+ mutationObserver: false,
471
+ performanceObserver: false,
472
+ intersectionObserver: false
473
+ },
474
+ cookies: [
475
+ ],
476
+ network: {
477
+ requestCount: 2,
478
+ domains: [
479
+ "cdn.usefathom.com"
480
+ ],
481
+ outboundBytes: 0,
482
+ inboundBytes: 3077,
483
+ injectedElements: [
484
+ ]
485
+ },
486
+ performance: {
487
+ taskDurationMs: 11,
488
+ scriptDurationMs: 1,
489
+ heapDeltaKb: 760
490
+ },
491
+ scripts: [
492
+ {
493
+ url: "https://cdn.usefathom.com/script.js",
494
+ transferKb: 2.7,
495
+ decodedKb: 6.7,
496
+ encoding: "zstd",
497
+ durationMs: 73,
498
+ initiatorType: "script",
499
+ protocol: "unknown"
500
+ },
501
+ {
502
+ url: "https://cdn.usefathom.com/?h=http%3A%2F%2F127.0.0.1&p=%2FfathomAnalytics&r=&sid=null&qs=%7B%7D&cid=95566347",
503
+ transferKb: 0.3,
504
+ decodedKb: 0,
505
+ encoding: "none",
506
+ durationMs: 316,
507
+ initiatorType: "img",
508
+ protocol: "unknown"
509
+ }
510
+ ]
511
+ };
512
+ const matomoAnalytics = {
513
+ totalTransferKb: 60.4,
514
+ totalDecodedKb: 218.6,
515
+ loadTimeMs: 96,
516
+ collectsWebVitals: false,
517
+ apis: {
518
+ cookies: true,
519
+ localStorage: true,
520
+ sessionStorage: false,
521
+ indexedDB: false,
522
+ canvas: false,
523
+ webgl: false,
524
+ audioContext: false,
525
+ userAgent: true,
526
+ doNotTrack: false,
527
+ hardwareConcurrency: false,
528
+ deviceMemory: false,
529
+ plugins: false,
530
+ languages: false,
531
+ screen: true,
532
+ timezone: true,
533
+ platform: true,
534
+ vendor: true,
535
+ connection: false,
536
+ maxTouchPoints: false,
537
+ devicePixelRatio: false,
538
+ mediaDevices: false,
539
+ getBattery: false,
540
+ referrer: true,
541
+ windowName: true,
542
+ rtcPeerConnection: false,
543
+ geolocation: false,
544
+ serviceWorker: false,
545
+ cacheApi: false,
546
+ sendBeacon: true,
547
+ fetch: true,
548
+ xhr: true,
549
+ websocket: false,
550
+ mutationObserver: true,
551
+ performanceObserver: false,
552
+ intersectionObserver: false
553
+ },
554
+ cookies: [
555
+ ],
556
+ network: {
557
+ requestCount: 1,
558
+ domains: [
559
+ "cdn.matomo.cloud"
560
+ ],
561
+ outboundBytes: 0,
562
+ inboundBytes: 61877,
563
+ injectedElements: [
564
+ ]
565
+ },
566
+ performance: {
567
+ taskDurationMs: 18,
568
+ scriptDurationMs: 5,
569
+ heapDeltaKb: 1393
570
+ },
571
+ scripts: [
572
+ {
573
+ url: "https://cdn.matomo.cloud/demo.matomo.cloud/matomo.js",
574
+ transferKb: 60.4,
575
+ decodedKb: 218.6,
576
+ encoding: "br",
577
+ durationMs: 96,
578
+ initiatorType: "script",
579
+ protocol: "unknown"
580
+ }
581
+ ]
582
+ };
583
+ const rybbitAnalytics = {
584
+ totalTransferKb: 9,
585
+ totalDecodedKb: 25.4,
586
+ loadTimeMs: 1154,
587
+ collectsWebVitals: true,
588
+ apis: {
589
+ cookies: false,
590
+ localStorage: true,
591
+ sessionStorage: true,
592
+ indexedDB: false,
593
+ canvas: false,
594
+ webgl: false,
595
+ audioContext: false,
596
+ userAgent: false,
597
+ doNotTrack: false,
598
+ hardwareConcurrency: false,
599
+ deviceMemory: false,
600
+ plugins: false,
601
+ languages: true,
602
+ screen: true,
603
+ timezone: false,
604
+ platform: false,
605
+ vendor: false,
606
+ connection: false,
607
+ maxTouchPoints: false,
608
+ devicePixelRatio: false,
609
+ mediaDevices: false,
610
+ getBattery: false,
611
+ referrer: true,
612
+ windowName: false,
613
+ rtcPeerConnection: false,
614
+ geolocation: false,
615
+ serviceWorker: false,
616
+ cacheApi: false,
617
+ sendBeacon: false,
618
+ fetch: true,
619
+ xhr: false,
620
+ websocket: false,
621
+ mutationObserver: false,
622
+ performanceObserver: true,
623
+ intersectionObserver: false
624
+ },
625
+ cookies: [
626
+ ],
627
+ network: {
628
+ requestCount: 1,
629
+ domains: [
630
+ "app.rybbit.io"
631
+ ],
632
+ outboundBytes: 0,
633
+ inboundBytes: 9198,
634
+ injectedElements: [
635
+ ]
636
+ },
637
+ performance: {
638
+ taskDurationMs: 7,
639
+ scriptDurationMs: 1,
640
+ heapDeltaKb: 755
641
+ },
642
+ scripts: [
643
+ {
644
+ url: "https://app.rybbit.io/api/script.js",
645
+ transferKb: 9,
646
+ decodedKb: 25.4,
647
+ encoding: "zstd",
648
+ durationMs: 1154,
649
+ initiatorType: "script",
650
+ protocol: "unknown"
651
+ }
652
+ ]
653
+ };
654
+ const databuddyAnalytics = {
655
+ totalTransferKb: 10.6,
656
+ totalDecodedKb: 29.2,
657
+ loadTimeMs: 76,
658
+ collectsWebVitals: true,
659
+ apis: {
660
+ cookies: false,
661
+ localStorage: true,
662
+ sessionStorage: true,
663
+ indexedDB: false,
664
+ canvas: false,
665
+ webgl: false,
666
+ audioContext: false,
667
+ userAgent: true,
668
+ doNotTrack: false,
669
+ hardwareConcurrency: false,
670
+ deviceMemory: false,
671
+ plugins: false,
672
+ languages: true,
673
+ screen: false,
674
+ timezone: false,
675
+ platform: false,
676
+ vendor: false,
677
+ connection: false,
678
+ maxTouchPoints: false,
679
+ devicePixelRatio: false,
680
+ mediaDevices: false,
681
+ getBattery: false,
682
+ referrer: true,
683
+ windowName: false,
684
+ rtcPeerConnection: false,
685
+ geolocation: false,
686
+ serviceWorker: false,
687
+ cacheApi: false,
688
+ sendBeacon: true,
689
+ fetch: true,
690
+ xhr: false,
691
+ websocket: false,
692
+ mutationObserver: false,
693
+ performanceObserver: true,
694
+ intersectionObserver: false
695
+ },
696
+ cookies: [
697
+ ],
698
+ network: {
699
+ requestCount: 1,
700
+ domains: [
701
+ "cdn.databuddy.cc"
702
+ ],
703
+ outboundBytes: 0,
704
+ inboundBytes: 10865,
705
+ injectedElements: [
706
+ ]
707
+ },
708
+ performance: {
709
+ taskDurationMs: 6,
710
+ scriptDurationMs: 1,
711
+ heapDeltaKb: 803
712
+ },
713
+ scripts: [
714
+ {
715
+ url: "https://cdn.databuddy.cc/databuddy.js",
716
+ transferKb: 10.6,
717
+ decodedKb: 29.2,
718
+ encoding: "zstd",
719
+ durationMs: 76,
720
+ initiatorType: "script",
721
+ protocol: "unknown"
722
+ }
723
+ ]
724
+ };
725
+ const mixpanelAnalytics = {
726
+ totalTransferKb: 31,
727
+ totalDecodedKb: 93.9,
728
+ loadTimeMs: 66,
729
+ collectsWebVitals: false,
730
+ apis: {
731
+ cookies: true,
732
+ localStorage: true,
733
+ sessionStorage: true,
734
+ indexedDB: true,
735
+ canvas: false,
736
+ webgl: false,
737
+ audioContext: false,
738
+ userAgent: true,
739
+ doNotTrack: true,
740
+ hardwareConcurrency: false,
741
+ deviceMemory: false,
742
+ plugins: false,
743
+ languages: false,
744
+ screen: false,
745
+ timezone: false,
746
+ platform: false,
747
+ vendor: false,
748
+ connection: false,
749
+ maxTouchPoints: false,
750
+ devicePixelRatio: false,
751
+ mediaDevices: false,
752
+ getBattery: false,
753
+ referrer: true,
754
+ windowName: false,
755
+ rtcPeerConnection: false,
756
+ geolocation: false,
757
+ serviceWorker: false,
758
+ cacheApi: false,
759
+ sendBeacon: true,
760
+ fetch: true,
761
+ xhr: true,
762
+ websocket: false,
763
+ mutationObserver: true,
764
+ performanceObserver: false,
765
+ intersectionObserver: false
766
+ },
767
+ cookies: [
768
+ ],
769
+ network: {
770
+ requestCount: 1,
771
+ domains: [
772
+ "cdn.mxpnl.com"
773
+ ],
774
+ outboundBytes: 0,
775
+ inboundBytes: 31793,
776
+ injectedElements: [
777
+ ]
778
+ },
779
+ performance: {
780
+ taskDurationMs: 12,
781
+ scriptDurationMs: 6,
782
+ heapDeltaKb: 1167
783
+ },
784
+ scripts: [
785
+ {
786
+ url: "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js",
787
+ transferKb: 31,
788
+ decodedKb: 93.9,
789
+ encoding: "gzip",
790
+ durationMs: 66,
791
+ initiatorType: "script",
792
+ protocol: "unknown"
793
+ }
794
+ ]
795
+ };
796
+ const segment = {
797
+ totalTransferKb: 29.6,
798
+ totalDecodedKb: 107,
799
+ loadTimeMs: 772,
800
+ collectsWebVitals: false,
801
+ apis: {
802
+ cookies: true,
803
+ localStorage: true,
804
+ sessionStorage: false,
805
+ indexedDB: false,
806
+ canvas: false,
807
+ webgl: false,
808
+ audioContext: false,
809
+ userAgent: true,
810
+ doNotTrack: false,
811
+ hardwareConcurrency: false,
812
+ deviceMemory: false,
813
+ plugins: false,
814
+ languages: true,
815
+ screen: false,
816
+ timezone: true,
817
+ platform: false,
818
+ vendor: false,
819
+ connection: false,
820
+ maxTouchPoints: false,
821
+ devicePixelRatio: false,
822
+ mediaDevices: false,
823
+ getBattery: false,
824
+ referrer: true,
825
+ windowName: false,
826
+ rtcPeerConnection: false,
827
+ geolocation: false,
828
+ serviceWorker: false,
829
+ cacheApi: false,
830
+ sendBeacon: false,
831
+ fetch: true,
832
+ xhr: true,
833
+ websocket: false,
834
+ mutationObserver: false,
835
+ performanceObserver: false,
836
+ intersectionObserver: false
837
+ },
838
+ cookies: [
839
+ ],
840
+ network: {
841
+ requestCount: 3,
842
+ domains: [
843
+ "api.segment.io",
844
+ "cdn.segment.com"
845
+ ],
846
+ outboundBytes: 1006,
847
+ inboundBytes: 30283,
848
+ injectedElements: [
849
+ ]
850
+ },
851
+ performance: {
852
+ taskDurationMs: 19,
853
+ scriptDurationMs: 4,
854
+ heapDeltaKb: 1328
855
+ },
856
+ scripts: [
857
+ {
858
+ url: "https://cdn.segment.com/analytics.js/v1/KBXOGxgqMFjm2mxtJDJg0iDn5AnGYb9C/analytics.min.js",
859
+ transferKb: 28.2,
860
+ decodedKb: 106.4,
861
+ encoding: "br",
862
+ durationMs: 551,
863
+ initiatorType: "script",
864
+ protocol: "unknown"
865
+ },
866
+ {
867
+ url: "https://cdn.segment.com/v1/projects/KBXOGxgqMFjm2mxtJDJg0iDn5AnGYb9C/settings",
868
+ transferKb: 1.2,
869
+ decodedKb: 0.6,
870
+ encoding: "none",
871
+ durationMs: 58,
872
+ initiatorType: "fetch",
873
+ protocol: "unknown"
874
+ },
875
+ {
876
+ url: "https://api.segment.io/v1/p",
877
+ transferKb: 0.2,
878
+ decodedKb: 0,
879
+ encoding: "none",
880
+ durationMs: 772,
881
+ initiatorType: "fetch",
882
+ protocol: "unknown"
883
+ }
884
+ ]
885
+ };
886
+ const googleAnalytics = {
887
+ totalTransferKb: 154.2,
888
+ totalDecodedKb: 454.1,
889
+ loadTimeMs: 516,
890
+ collectsWebVitals: false,
891
+ apis: {
892
+ cookies: true,
893
+ localStorage: true,
894
+ sessionStorage: false,
895
+ indexedDB: false,
896
+ canvas: false,
897
+ webgl: false,
898
+ audioContext: false,
899
+ userAgent: true,
900
+ doNotTrack: false,
901
+ hardwareConcurrency: false,
902
+ deviceMemory: false,
903
+ plugins: false,
904
+ languages: false,
905
+ screen: false,
906
+ timezone: true,
907
+ platform: false,
908
+ vendor: false,
909
+ connection: false,
910
+ maxTouchPoints: false,
911
+ devicePixelRatio: false,
912
+ mediaDevices: false,
913
+ getBattery: false,
914
+ referrer: true,
915
+ windowName: true,
916
+ rtcPeerConnection: false,
917
+ geolocation: false,
918
+ serviceWorker: false,
919
+ cacheApi: false,
920
+ sendBeacon: true,
921
+ fetch: true,
922
+ xhr: true,
923
+ websocket: false,
924
+ mutationObserver: true,
925
+ performanceObserver: false,
926
+ intersectionObserver: true
927
+ },
928
+ cookies: [
929
+ ],
930
+ network: {
931
+ requestCount: 1,
932
+ domains: [
933
+ "www.googletagmanager.com"
934
+ ],
935
+ outboundBytes: 0,
936
+ inboundBytes: 157890,
937
+ injectedElements: [
938
+ ]
939
+ },
940
+ performance: {
941
+ taskDurationMs: 26,
942
+ scriptDurationMs: 15,
943
+ heapDeltaKb: 2593
944
+ },
945
+ scripts: [
946
+ {
947
+ url: "https://www.googletagmanager.com/gtag/js?id=G-TR58L0EF8P",
948
+ transferKb: 154.2,
949
+ decodedKb: 454.1,
950
+ encoding: "zstd",
951
+ durationMs: 516,
952
+ initiatorType: "script",
953
+ protocol: "unknown"
954
+ }
955
+ ]
956
+ };
957
+ const umamiAnalytics = {
958
+ totalTransferKb: 2.4,
959
+ totalDecodedKb: 2.6,
960
+ loadTimeMs: 81,
961
+ collectsWebVitals: false,
962
+ apis: {
963
+ cookies: false,
964
+ localStorage: true,
965
+ sessionStorage: false,
966
+ indexedDB: false,
967
+ canvas: false,
968
+ webgl: false,
969
+ audioContext: false,
970
+ userAgent: false,
971
+ doNotTrack: true,
972
+ hardwareConcurrency: false,
973
+ deviceMemory: false,
974
+ plugins: false,
975
+ languages: false,
976
+ screen: true,
977
+ timezone: false,
978
+ platform: false,
979
+ vendor: false,
980
+ connection: false,
981
+ maxTouchPoints: false,
982
+ devicePixelRatio: false,
983
+ mediaDevices: false,
984
+ getBattery: false,
985
+ referrer: true,
986
+ windowName: false,
987
+ rtcPeerConnection: false,
988
+ geolocation: false,
989
+ serviceWorker: false,
990
+ cacheApi: false,
991
+ sendBeacon: false,
992
+ fetch: true,
993
+ xhr: false,
994
+ websocket: false,
995
+ mutationObserver: false,
996
+ performanceObserver: false,
997
+ intersectionObserver: false
998
+ },
999
+ cookies: [
1000
+ ],
1001
+ network: {
1002
+ requestCount: 1,
1003
+ domains: [
1004
+ "cloud.umami.is"
1005
+ ],
1006
+ outboundBytes: 0,
1007
+ inboundBytes: 2468,
1008
+ injectedElements: [
1009
+ ]
1010
+ },
1011
+ performance: {
1012
+ taskDurationMs: 5,
1013
+ scriptDurationMs: 0,
1014
+ heapDeltaKb: 725
1015
+ },
1016
+ scripts: [
1017
+ {
1018
+ url: "https://cloud.umami.is/script.js",
1019
+ transferKb: 2.4,
1020
+ decodedKb: 2.6,
1021
+ encoding: "br",
1022
+ durationMs: 81,
1023
+ initiatorType: "script",
1024
+ protocol: "unknown"
1025
+ }
1026
+ ]
1027
+ };
1028
+ const vercelAnalytics = {
1029
+ totalTransferKb: 1.6,
1030
+ totalDecodedKb: 2.4,
1031
+ loadTimeMs: 81,
1032
+ collectsWebVitals: false,
1033
+ apis: {
1034
+ cookies: false,
1035
+ localStorage: false,
1036
+ sessionStorage: false,
1037
+ indexedDB: false,
1038
+ canvas: false,
1039
+ webgl: false,
1040
+ audioContext: false,
1041
+ userAgent: true,
1042
+ doNotTrack: false,
1043
+ hardwareConcurrency: false,
1044
+ deviceMemory: false,
1045
+ plugins: false,
1046
+ languages: false,
1047
+ screen: false,
1048
+ timezone: false,
1049
+ platform: false,
1050
+ vendor: false,
1051
+ connection: false,
1052
+ maxTouchPoints: false,
1053
+ devicePixelRatio: false,
1054
+ mediaDevices: false,
1055
+ getBattery: false,
1056
+ referrer: false,
1057
+ windowName: false,
1058
+ rtcPeerConnection: false,
1059
+ geolocation: false,
1060
+ serviceWorker: false,
1061
+ cacheApi: false,
1062
+ sendBeacon: false,
1063
+ fetch: true,
1064
+ xhr: false,
1065
+ websocket: false,
1066
+ mutationObserver: false,
1067
+ performanceObserver: false,
1068
+ intersectionObserver: false
1069
+ },
1070
+ cookies: [
1071
+ ],
1072
+ network: {
1073
+ requestCount: 1,
1074
+ domains: [
1075
+ "va.vercel-scripts.com"
1076
+ ],
1077
+ outboundBytes: 0,
1078
+ inboundBytes: 1606,
1079
+ injectedElements: [
1080
+ ]
1081
+ },
1082
+ performance: {
1083
+ taskDurationMs: 6,
1084
+ scriptDurationMs: 0,
1085
+ heapDeltaKb: 716
1086
+ },
1087
+ scripts: [
1088
+ {
1089
+ url: "https://va.vercel-scripts.com/v1/script.js",
1090
+ transferKb: 1.6,
1091
+ decodedKb: 2.4,
1092
+ encoding: "br",
1093
+ durationMs: 81,
1094
+ initiatorType: "script",
1095
+ protocol: "unknown"
1096
+ }
1097
+ ]
1098
+ };
1099
+ const bingUet = {
1100
+ totalTransferKb: 16.2,
1101
+ totalDecodedKb: 54,
1102
+ loadTimeMs: 207,
1103
+ collectsWebVitals: false,
1104
+ apis: {
1105
+ cookies: true,
1106
+ localStorage: true,
1107
+ sessionStorage: false,
1108
+ indexedDB: false,
1109
+ canvas: false,
1110
+ webgl: false,
1111
+ audioContext: false,
1112
+ userAgent: false,
1113
+ doNotTrack: false,
1114
+ hardwareConcurrency: false,
1115
+ deviceMemory: false,
1116
+ plugins: true,
1117
+ languages: true,
1118
+ screen: true,
1119
+ timezone: false,
1120
+ platform: false,
1121
+ vendor: false,
1122
+ connection: false,
1123
+ maxTouchPoints: true,
1124
+ devicePixelRatio: false,
1125
+ mediaDevices: false,
1126
+ getBattery: false,
1127
+ referrer: true,
1128
+ windowName: false,
1129
+ rtcPeerConnection: false,
1130
+ geolocation: false,
1131
+ serviceWorker: false,
1132
+ cacheApi: false,
1133
+ sendBeacon: true,
1134
+ fetch: false,
1135
+ xhr: true,
1136
+ websocket: false,
1137
+ mutationObserver: false,
1138
+ performanceObserver: false,
1139
+ intersectionObserver: false
1140
+ },
1141
+ cookies: [
1142
+ {
1143
+ name: "MUID",
1144
+ domain: ".bing.com",
1145
+ path: "/",
1146
+ httpOnly: false,
1147
+ secure: true,
1148
+ sameSite: "None",
1149
+ session: false,
1150
+ lifetimeDays: 390,
1151
+ firstParty: false
1152
+ },
1153
+ {
1154
+ name: "MR",
1155
+ domain: ".bat.bing.com",
1156
+ path: "/",
1157
+ httpOnly: false,
1158
+ secure: true,
1159
+ sameSite: "None",
1160
+ session: false,
1161
+ lifetimeDays: 7,
1162
+ firstParty: false
1163
+ }
1164
+ ],
1165
+ network: {
1166
+ requestCount: 3,
1167
+ domains: [
1168
+ "bat.bing.com"
1169
+ ],
1170
+ outboundBytes: 0,
1171
+ inboundBytes: 16545,
1172
+ injectedElements: [
1173
+ {
1174
+ tag: "script",
1175
+ src: "https://bat.bing.com/p/action/247021147.js"
1176
+ },
1177
+ {
1178
+ tag: "img",
1179
+ src: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=7a9bdab7-4d77-4f32-b498-848d8200a897&bo=1&sid=3a3e3280239511f1bc041d004afba8b8&vid=3a3e5040239511f1a83b357b18badf3c&vids=1&msclkid=N&pi=0&lg=en-GB&sw=1280&sh=720&sc=24&nwd=1&p=http%3A%2F%2F127.0.0.1%3A34289%2FbingUet&r=&lt=213&evt=pageLoad&sv=2&cdb=AQAQ&rn=134697"
1180
+ }
1181
+ ]
1182
+ },
1183
+ performance: {
1184
+ taskDurationMs: 11,
1185
+ scriptDurationMs: 4,
1186
+ heapDeltaKb: 919
1187
+ },
1188
+ scripts: [
1189
+ {
1190
+ url: "https://bat.bing.com/bat.js",
1191
+ transferKb: 15.4,
1192
+ decodedKb: 53.6,
1193
+ encoding: "gzip",
1194
+ durationMs: 207,
1195
+ initiatorType: "script",
1196
+ protocol: "unknown"
1197
+ },
1198
+ {
1199
+ url: "https://bat.bing.com/p/action/247021147.js",
1200
+ transferKb: 0.4,
1201
+ decodedKb: 0.4,
1202
+ encoding: "br",
1203
+ durationMs: 148,
1204
+ initiatorType: "script",
1205
+ protocol: "unknown"
1206
+ },
1207
+ {
1208
+ url: "https://bat.bing.com/action/0?ti=247021147&Ver=2&mid=7a9bdab7-4d77-4f32-b498-848d8200a897&bo=1&sid=3a3e3280239511f1bc041d004afba8b8&vid=3a3e5040239511f1a83b357b18badf3c&vids=1&msclkid=N&pi=0&lg=en-GB&sw=1280&sh=720&sc=24&nwd=1&p=http%3A%2F%2F127.0.0.1%3A34289%2FbingUet&r=&lt=213&evt=pageLoad&sv=2&cdb=AQAQ&rn=134697",
1209
+ transferKb: 0.4,
1210
+ decodedKb: 0,
1211
+ encoding: "none",
1212
+ durationMs: 150,
1213
+ initiatorType: "img",
1214
+ protocol: "unknown"
1215
+ }
1216
+ ]
1217
+ };
1218
+ const metaPixel = {
1219
+ totalTransferKb: 97.1,
1220
+ totalDecodedKb: 364.7,
1221
+ loadTimeMs: 232,
1222
+ collectsWebVitals: false,
1223
+ apis: {
1224
+ cookies: false,
1225
+ localStorage: true,
1226
+ sessionStorage: true,
1227
+ indexedDB: false,
1228
+ canvas: false,
1229
+ webgl: false,
1230
+ audioContext: false,
1231
+ userAgent: true,
1232
+ doNotTrack: false,
1233
+ hardwareConcurrency: false,
1234
+ deviceMemory: false,
1235
+ plugins: false,
1236
+ languages: false,
1237
+ screen: true,
1238
+ timezone: false,
1239
+ platform: false,
1240
+ vendor: true,
1241
+ connection: false,
1242
+ maxTouchPoints: false,
1243
+ devicePixelRatio: false,
1244
+ mediaDevices: false,
1245
+ getBattery: false,
1246
+ referrer: true,
1247
+ windowName: false,
1248
+ rtcPeerConnection: false,
1249
+ geolocation: false,
1250
+ serviceWorker: false,
1251
+ cacheApi: false,
1252
+ sendBeacon: true,
1253
+ fetch: true,
1254
+ xhr: false,
1255
+ websocket: false,
1256
+ mutationObserver: false,
1257
+ performanceObserver: false,
1258
+ intersectionObserver: false
1259
+ },
1260
+ cookies: [
1261
+ ],
1262
+ network: {
1263
+ requestCount: 3,
1264
+ domains: [
1265
+ "connect.facebook.net",
1266
+ "www.facebook.com"
1267
+ ],
1268
+ outboundBytes: 0,
1269
+ inboundBytes: 102421,
1270
+ injectedElements: [
1271
+ {
1272
+ tag: "script",
1273
+ src: "https://connect.facebook.net/signals/config/3925006?v=2.9.280&r=stable&domain=127.0.0.1&hme=b758cff5989f970d61536a685dcccfaabd7a9508da12548b3811a55c83b2e4ae&ex_m=101%2C194%2C143%2C22%2C69%2C70%2C136%2C65%2C64%2C11%2C151%2C87%2C16%2C130%2C123%2C72%2C75%2C129%2C148%2C153%2C8%2C4%2C5%2C7%2C6%2C3%2C88%2C98%2C154%2C159%2C208%2C59%2C175%2C176%2C52%2C264%2C30%2C71%2C220%2C219%2C218%2C23%2C32%2C100%2C58%2C10%2C60%2C94%2C95%2C96%2C102%2C126%2C31%2C29%2C128%2C125%2C124%2C144%2C73%2C147%2C145%2C146%2C47%2C57%2C119%2C15%2C150%2C42%2C251%2C252%2C250%2C26%2C27%2C28%2C45%2C137%2C74%2C109%2C18%2C20%2C41%2C37%2C39%2C38%2C80%2C89%2C93%2C107%2C135%2C138%2C43%2C108%2C24%2C21%2C115%2C66%2C35%2C140%2C139%2C141%2C132%2C131%2C25%2C34%2C56%2C106%2C149%2C67%2C17%2C142%2C111%2C78%2C63%2C19%2C82%2C83%2C112%2C81%2C33%2C280%2C201%2C190%2C191%2C189%2C283%2C275%2C49%2C202%2C104%2C127%2C77%2C117%2C51%2C44%2C46%2C110%2C116%2C122%2C55%2C61%2C50%2C53%2C97%2C152%2C1%2C120%2C14%2C118%2C12%2C2%2C54%2C90%2C62%2C114%2C86%2C85%2C155%2C156%2C91%2C92%2C9%2C121%2C99%2C48%2C133%2C84%2C76%2C68%2C113%2C103%2C40%2C134%2C0%2C79%2C36%2C105%2C13%2C157"
1274
+ },
1275
+ {
1276
+ tag: "img",
1277
+ src: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A34289%2FmetaPixel&rl=&if=false&ts=1773925931003&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773925930767&coo=false&expv2[0]=pl1&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=im1&expv2[6]=hf1&rqm=GET"
1278
+ }
1279
+ ]
1280
+ },
1281
+ performance: {
1282
+ taskDurationMs: 31,
1283
+ scriptDurationMs: 20,
1284
+ heapDeltaKb: 1949
1285
+ },
1286
+ scripts: [
1287
+ {
1288
+ url: "https://connect.facebook.net/en_US/fbevents.js",
1289
+ transferKb: 94.7,
1290
+ decodedKb: 356.5,
1291
+ encoding: "gzip",
1292
+ durationMs: 122,
1293
+ initiatorType: "script",
1294
+ protocol: "h2"
1295
+ },
1296
+ {
1297
+ url: "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",
1298
+ transferKb: 2.1,
1299
+ decodedKb: 8.2,
1300
+ encoding: "gzip",
1301
+ durationMs: 232,
1302
+ initiatorType: "script",
1303
+ protocol: "h2"
1304
+ },
1305
+ {
1306
+ url: "https://www.facebook.com/tr/?id=3925006&ev=PageView&dl=http%3A%2F%2F127.0.0.1%3A34289%2FmetaPixel&rl=&if=false&ts=1773925931003&sw=1280&sh=720&v=2.9.280&r=stable&ec=0&o=156&it=1773925930767&coo=false&expv2[0]=pl1&expv2[1]=el2&expv2[2]=bc1&expv2[3]=ra0&expv2[4]=rp0&expv2[5]=im1&expv2[6]=hf1&rqm=GET",
1307
+ transferKb: 0.3,
1308
+ decodedKb: 0,
1309
+ encoding: "none",
1310
+ durationMs: 66,
1311
+ initiatorType: "img",
1312
+ protocol: "unknown"
1313
+ }
1314
+ ]
1315
+ };
1316
+ const xPixel = {
1317
+ totalTransferKb: 15.1,
1318
+ totalDecodedKb: 47.1,
1319
+ loadTimeMs: 244,
1320
+ collectsWebVitals: false,
1321
+ apis: {
1322
+ cookies: true,
1323
+ localStorage: false,
1324
+ sessionStorage: false,
1325
+ indexedDB: false,
1326
+ canvas: false,
1327
+ webgl: false,
1328
+ audioContext: false,
1329
+ userAgent: true,
1330
+ doNotTrack: true,
1331
+ hardwareConcurrency: true,
1332
+ deviceMemory: false,
1333
+ plugins: false,
1334
+ languages: true,
1335
+ screen: true,
1336
+ timezone: true,
1337
+ platform: true,
1338
+ vendor: true,
1339
+ connection: false,
1340
+ maxTouchPoints: true,
1341
+ devicePixelRatio: false,
1342
+ mediaDevices: false,
1343
+ getBattery: true,
1344
+ referrer: true,
1345
+ windowName: false,
1346
+ rtcPeerConnection: false,
1347
+ geolocation: false,
1348
+ serviceWorker: false,
1349
+ cacheApi: false,
1350
+ sendBeacon: true,
1351
+ fetch: false,
1352
+ xhr: true,
1353
+ websocket: false,
1354
+ mutationObserver: false,
1355
+ performanceObserver: false,
1356
+ intersectionObserver: false
1357
+ },
1358
+ cookies: [
1359
+ {
1360
+ name: "guest_id_marketing",
1361
+ domain: ".twitter.com",
1362
+ path: "/",
1363
+ httpOnly: false,
1364
+ secure: true,
1365
+ sameSite: "None",
1366
+ session: false,
1367
+ lifetimeDays: 400,
1368
+ firstParty: false
1369
+ },
1370
+ {
1371
+ name: "guest_id_ads",
1372
+ domain: ".twitter.com",
1373
+ path: "/",
1374
+ httpOnly: false,
1375
+ secure: true,
1376
+ sameSite: "None",
1377
+ session: false,
1378
+ lifetimeDays: 400,
1379
+ firstParty: false
1380
+ },
1381
+ {
1382
+ name: "personalization_id",
1383
+ domain: ".twitter.com",
1384
+ path: "/",
1385
+ httpOnly: false,
1386
+ secure: true,
1387
+ sameSite: "None",
1388
+ session: false,
1389
+ lifetimeDays: 400,
1390
+ firstParty: false
1391
+ },
1392
+ {
1393
+ name: "guest_id",
1394
+ domain: ".twitter.com",
1395
+ path: "/",
1396
+ httpOnly: false,
1397
+ secure: true,
1398
+ sameSite: "None",
1399
+ session: false,
1400
+ lifetimeDays: 400,
1401
+ firstParty: false
1402
+ },
1403
+ {
1404
+ name: "muc_ads",
1405
+ domain: ".t.co",
1406
+ path: "/",
1407
+ httpOnly: false,
1408
+ secure: true,
1409
+ sameSite: "None",
1410
+ session: false,
1411
+ lifetimeDays: 400,
1412
+ firstParty: false
1413
+ }
1414
+ ],
1415
+ network: {
1416
+ requestCount: 3,
1417
+ domains: [
1418
+ "analytics.twitter.com",
1419
+ "static.ads-twitter.com",
1420
+ "t.co"
1421
+ ],
1422
+ outboundBytes: 0,
1423
+ inboundBytes: 15448,
1424
+ injectedElements: [
1425
+ {
1426
+ tag: "img",
1427
+ src: "https://t.co/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50"
1428
+ },
1429
+ {
1430
+ tag: "img",
1431
+ src: "https://analytics.twitter.com/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50"
1432
+ }
1433
+ ]
1434
+ },
1435
+ performance: {
1436
+ taskDurationMs: 15,
1437
+ scriptDurationMs: 2,
1438
+ heapDeltaKb: 1035
1439
+ },
1440
+ scripts: [
1441
+ {
1442
+ url: "https://static.ads-twitter.com/uwt.js",
1443
+ transferKb: 13.5,
1444
+ decodedKb: 47.1,
1445
+ encoding: "gzip",
1446
+ durationMs: 70,
1447
+ initiatorType: "script",
1448
+ protocol: "unknown"
1449
+ },
1450
+ {
1451
+ url: "https://analytics.twitter.com/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50",
1452
+ transferKb: 1,
1453
+ decodedKb: 0,
1454
+ encoding: "none",
1455
+ durationMs: 230,
1456
+ initiatorType: "img",
1457
+ protocol: "unknown"
1458
+ },
1459
+ {
1460
+ url: "https://t.co/1/i/adsct?bci=4&dv=Australia%2FMelbourne%26en-GB%26Google%20Inc.%26Linux%20x86_64%26255%261280%26720%2624%2624%261280%26720%260%26na&eci=3&event=%7B%7D&event_id=0dd7a522-b52f-4df6-ad0c-3e8267168de4&integration=advertiser&p_id=Twitter&p_user_id=0&pl_id=4fa6174e-7802-4a87-91ab-999c3b670981&tw_document_href=http%3A%2F%2F127.0.0.1%3A34289%2FxPixel&tw_iframe_status=0&tw_pid_src=1&twpid=tw.1773925936211.218994066508596888&txn_id=ol7lz&type=javascript&version=2.3.50",
1461
+ transferKb: 0.6,
1462
+ decodedKb: 0,
1463
+ encoding: "none",
1464
+ durationMs: 244,
1465
+ initiatorType: "img",
1466
+ protocol: "unknown"
1467
+ }
1468
+ ]
1469
+ };
1470
+ const tiktokPixel = {
1471
+ totalTransferKb: 1889.6,
1472
+ totalDecodedKb: 2365,
1473
+ loadTimeMs: 270,
1474
+ collectsWebVitals: true,
1475
+ apis: {
1476
+ cookies: true,
1477
+ localStorage: true,
1478
+ sessionStorage: true,
1479
+ indexedDB: false,
1480
+ canvas: false,
1481
+ webgl: false,
1482
+ audioContext: false,
1483
+ userAgent: true,
1484
+ doNotTrack: false,
1485
+ hardwareConcurrency: false,
1486
+ deviceMemory: false,
1487
+ plugins: false,
1488
+ languages: false,
1489
+ screen: true,
1490
+ timezone: true,
1491
+ platform: true,
1492
+ vendor: false,
1493
+ connection: true,
1494
+ maxTouchPoints: false,
1495
+ devicePixelRatio: false,
1496
+ mediaDevices: false,
1497
+ getBattery: false,
1498
+ referrer: true,
1499
+ windowName: true,
1500
+ rtcPeerConnection: false,
1501
+ geolocation: false,
1502
+ serviceWorker: false,
1503
+ cacheApi: false,
1504
+ sendBeacon: true,
1505
+ fetch: true,
1506
+ xhr: true,
1507
+ websocket: false,
1508
+ mutationObserver: true,
1509
+ performanceObserver: true,
1510
+ intersectionObserver: true
1511
+ },
1512
+ cookies: [
1513
+ {
1514
+ name: "_ttp",
1515
+ domain: ".tiktok.com",
1516
+ path: "/",
1517
+ httpOnly: false,
1518
+ secure: true,
1519
+ sameSite: "None",
1520
+ session: false,
1521
+ lifetimeDays: 390,
1522
+ firstParty: false
1523
+ }
1524
+ ],
1525
+ network: {
1526
+ requestCount: 3,
1527
+ domains: [
1528
+ "analytics.tiktok.com"
1529
+ ],
1530
+ outboundBytes: 0,
1531
+ inboundBytes: 151441,
1532
+ injectedElements: [
1533
+ {
1534
+ tag: "script",
1535
+ src: "https://analytics.tiktok.com/i18n/pixel/static/identify_31760074.js"
1536
+ },
1537
+ {
1538
+ tag: "script",
1539
+ src: "https://analytics.tiktok.com/i18n/pixel/static/main.MTEwMjY2ZTExMA.js"
1540
+ }
1541
+ ]
1542
+ },
1543
+ performance: {
1544
+ taskDurationMs: 50,
1545
+ scriptDurationMs: 25,
1546
+ heapDeltaKb: 2297
1547
+ },
1548
+ scripts: [
1549
+ {
1550
+ url: "https://analytics.tiktok.com/i18n/pixel/events.js",
1551
+ transferKb: 2.6,
1552
+ decodedKb: 7.6,
1553
+ encoding: "gzip",
1554
+ durationMs: 270,
1555
+ initiatorType: "script",
1556
+ protocol: "unknown"
1557
+ },
1558
+ {
1559
+ url: "https://analytics.tiktok.com/i18n/pixel/static/main.MTEwMjY2ZTExMA.js",
1560
+ transferKb: 105.8,
1561
+ decodedKb: 463.4,
1562
+ encoding: "gzip",
1563
+ durationMs: 50,
1564
+ initiatorType: "script",
1565
+ protocol: "unknown"
1566
+ },
1567
+ {
1568
+ url: "https://analytics.tiktok.com/i18n/pixel/static/identify_31760074.js",
1569
+ transferKb: 39.5,
1570
+ decodedKb: 152,
1571
+ encoding: "gzip",
1572
+ durationMs: 20,
1573
+ initiatorType: "script",
1574
+ protocol: "unknown"
1575
+ },
1576
+ {
1577
+ url: "https://analytics.tiktok.com/i18n/pixel/config.js",
1578
+ transferKb: 0.3,
1579
+ decodedKb: 0.6,
1580
+ encoding: "gzip",
1581
+ durationMs: 0,
1582
+ initiatorType: "secondary",
1583
+ protocol: "unknown"
1584
+ },
1585
+ {
1586
+ url: "https://analytics.tiktok.com/i18n/pixel/eb.js",
1587
+ transferKb: 1741.4,
1588
+ decodedKb: 1741.4,
1589
+ encoding: "gzip",
1590
+ durationMs: 0,
1591
+ initiatorType: "secondary",
1592
+ protocol: "unknown"
1593
+ }
1594
+ ]
1595
+ };
1596
+ const snapchatPixel = {
1597
+ totalTransferKb: 1.3,
1598
+ totalDecodedKb: 58.2,
1599
+ loadTimeMs: 579,
1600
+ collectsWebVitals: false,
1601
+ apis: {
1602
+ cookies: true,
1603
+ localStorage: true,
1604
+ sessionStorage: true,
1605
+ indexedDB: false,
1606
+ canvas: false,
1607
+ webgl: false,
1608
+ audioContext: false,
1609
+ userAgent: true,
1610
+ doNotTrack: false,
1611
+ hardwareConcurrency: false,
1612
+ deviceMemory: false,
1613
+ plugins: false,
1614
+ languages: false,
1615
+ screen: true,
1616
+ timezone: false,
1617
+ platform: false,
1618
+ vendor: false,
1619
+ connection: false,
1620
+ maxTouchPoints: true,
1621
+ devicePixelRatio: false,
1622
+ mediaDevices: false,
1623
+ getBattery: false,
1624
+ referrer: true,
1625
+ windowName: true,
1626
+ rtcPeerConnection: false,
1627
+ geolocation: false,
1628
+ serviceWorker: false,
1629
+ cacheApi: false,
1630
+ sendBeacon: true,
1631
+ fetch: true,
1632
+ xhr: true,
1633
+ websocket: false,
1634
+ mutationObserver: true,
1635
+ performanceObserver: true,
1636
+ intersectionObserver: false
1637
+ },
1638
+ cookies: [
1639
+ {
1640
+ name: "X-AB",
1641
+ domain: "sc-static.net",
1642
+ path: "/scevent.min.js",
1643
+ httpOnly: false,
1644
+ secure: true,
1645
+ sameSite: "None",
1646
+ session: false,
1647
+ lifetimeDays: 1,
1648
+ firstParty: false
1649
+ },
1650
+ {
1651
+ name: "sc_at",
1652
+ domain: ".snapchat.com",
1653
+ path: "/",
1654
+ httpOnly: false,
1655
+ secure: true,
1656
+ sameSite: "None",
1657
+ session: false,
1658
+ lifetimeDays: 390,
1659
+ firstParty: false
1660
+ },
1661
+ {
1662
+ name: "TapAd_TS",
1663
+ domain: ".tapad.com",
1664
+ path: "/",
1665
+ httpOnly: false,
1666
+ secure: true,
1667
+ sameSite: "None",
1668
+ session: false,
1669
+ lifetimeDays: 60,
1670
+ firstParty: false
1671
+ },
1672
+ {
1673
+ name: "TapAd_DID",
1674
+ domain: ".tapad.com",
1675
+ path: "/",
1676
+ httpOnly: false,
1677
+ secure: true,
1678
+ sameSite: "None",
1679
+ session: false,
1680
+ lifetimeDays: 60,
1681
+ firstParty: false
1682
+ },
1683
+ {
1684
+ name: "TapAd_3WAY_SYNCS",
1685
+ domain: ".tapad.com",
1686
+ path: "/",
1687
+ httpOnly: false,
1688
+ secure: true,
1689
+ sameSite: "None",
1690
+ session: false,
1691
+ lifetimeDays: 60,
1692
+ firstParty: false
1693
+ }
1694
+ ],
1695
+ network: {
1696
+ requestCount: 10,
1697
+ domains: [
1698
+ "pixel.tapad.com",
1699
+ "sc-static.net",
1700
+ "tr.snapchat.com"
1701
+ ],
1702
+ outboundBytes: 3041,
1703
+ inboundBytes: 26692,
1704
+ injectedElements: [
1705
+ ]
1706
+ },
1707
+ performance: {
1708
+ taskDurationMs: 40,
1709
+ scriptDurationMs: 25,
1710
+ heapDeltaKb: 2476
1711
+ },
1712
+ scripts: [
1713
+ {
1714
+ url: "https://sc-static.net/scevent.min.js",
1715
+ transferKb: 0,
1716
+ decodedKb: 57.4,
1717
+ encoding: "gzip",
1718
+ durationMs: 579,
1719
+ initiatorType: "script",
1720
+ protocol: "unknown"
1721
+ },
1722
+ {
1723
+ url: "https://tr.snapchat.com/config/1/2295cbcc-cb3f-4727-8c09-1133b742722c.json?v=3.54.3-2603171656",
1724
+ transferKb: 0.3,
1725
+ decodedKb: 0.1,
1726
+ encoding: "none",
1727
+ durationMs: 396,
1728
+ initiatorType: "fetch",
1729
+ protocol: "unknown"
1730
+ },
1731
+ {
1732
+ url: "https://tr.snapchat.com/cm/i?pid=2295cbcc-cb3f-4727-8c09-1133b742722c&u_scsid=8f048205-5fb8-4c6c-98ea-2992ed17b098&u_sclid=26c261d8-bcad-4186-a3be-fcbce2f60474",
1733
+ transferKb: 1,
1734
+ decodedKb: 0.7,
1735
+ encoding: "none",
1736
+ durationMs: 183,
1737
+ initiatorType: "iframe",
1738
+ protocol: "unknown"
1739
+ },
1740
+ {
1741
+ url: "https://tr.snapchat.com/p",
1742
+ transferKb: 0,
1743
+ decodedKb: 0,
1744
+ encoding: "none",
1745
+ durationMs: 116,
1746
+ initiatorType: "beacon",
1747
+ protocol: "unknown"
1748
+ }
1749
+ ]
1750
+ };
1751
+ const redditPixel = {
1752
+ totalTransferKb: 19.5,
1753
+ totalDecodedKb: 65.3,
1754
+ loadTimeMs: 319,
1755
+ collectsWebVitals: false,
1756
+ apis: {
1757
+ cookies: true,
1758
+ localStorage: true,
1759
+ sessionStorage: false,
1760
+ indexedDB: false,
1761
+ canvas: false,
1762
+ webgl: false,
1763
+ audioContext: false,
1764
+ userAgent: false,
1765
+ doNotTrack: false,
1766
+ hardwareConcurrency: false,
1767
+ deviceMemory: false,
1768
+ plugins: false,
1769
+ languages: false,
1770
+ screen: true,
1771
+ timezone: false,
1772
+ platform: false,
1773
+ vendor: false,
1774
+ connection: false,
1775
+ maxTouchPoints: false,
1776
+ devicePixelRatio: false,
1777
+ mediaDevices: false,
1778
+ getBattery: false,
1779
+ referrer: false,
1780
+ windowName: false,
1781
+ rtcPeerConnection: false,
1782
+ geolocation: false,
1783
+ serviceWorker: false,
1784
+ cacheApi: false,
1785
+ sendBeacon: false,
1786
+ fetch: true,
1787
+ xhr: true,
1788
+ websocket: false,
1789
+ mutationObserver: false,
1790
+ performanceObserver: false,
1791
+ intersectionObserver: false
1792
+ },
1793
+ cookies: [
1794
+ ],
1795
+ network: {
1796
+ requestCount: 3,
1797
+ domains: [
1798
+ "alb.reddit.com",
1799
+ "pixel-config.reddit.com",
1800
+ "www.redditstatic.com"
1801
+ ],
1802
+ outboundBytes: 0,
1803
+ inboundBytes: 20077,
1804
+ injectedElements: [
1805
+ {
1806
+ tag: "img",
1807
+ src: "https://alb.reddit.com/rp.gif?ts=1773925952972&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=feae778e-0f4b-41f7-a5fa-840388c4cbc4&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc="
1808
+ }
1809
+ ]
1810
+ },
1811
+ performance: {
1812
+ taskDurationMs: 16,
1813
+ scriptDurationMs: 8,
1814
+ heapDeltaKb: 965
1815
+ },
1816
+ scripts: [
1817
+ {
1818
+ url: "https://www.redditstatic.com/ads/pixel.js",
1819
+ transferKb: 18.8,
1820
+ decodedKb: 65.3,
1821
+ encoding: "gzip",
1822
+ durationMs: 105,
1823
+ initiatorType: "script",
1824
+ protocol: "unknown"
1825
+ },
1826
+ {
1827
+ url: "https://pixel-config.reddit.com/pixels/a2_ilz4u0kbdr3v/config",
1828
+ transferKb: 0.1,
1829
+ decodedKb: 0,
1830
+ encoding: "gzip",
1831
+ durationMs: 106,
1832
+ initiatorType: "xmlhttprequest",
1833
+ protocol: "unknown"
1834
+ },
1835
+ {
1836
+ url: "https://alb.reddit.com/rp.gif?ts=1773925952972&id=a2_ilz4u0kbdr3v&event=PageVisit&m.itemCount=&m.value=&m.valueDecimal=&m.currency=&m.transactionId=&m.customEventName=&m.products=&m.conversionId=&uuid=feae778e-0f4b-41f7-a5fa-840388c4cbc4&aaid=&em=&pn=&external_id=&idfa=&integration=reddit&partner=&partner_version=&opt_out=0&sh=1280&sw=720&v=rdt_79aa2193&dpm=&dpcc=&dprc=",
1837
+ transferKb: 0.6,
1838
+ decodedKb: 0,
1839
+ encoding: "none",
1840
+ durationMs: 319,
1841
+ initiatorType: "img",
1842
+ protocol: "unknown"
1843
+ }
1844
+ ]
1845
+ };
1846
+ const googleAdsense = {
1847
+ totalTransferKb: 69.8,
1848
+ totalDecodedKb: 198.2,
1849
+ loadTimeMs: 300,
1850
+ collectsWebVitals: true,
1851
+ apis: {
1852
+ cookies: true,
1853
+ localStorage: true,
1854
+ sessionStorage: true,
1855
+ indexedDB: false,
1856
+ canvas: false,
1857
+ webgl: false,
1858
+ audioContext: false,
1859
+ userAgent: true,
1860
+ doNotTrack: false,
1861
+ hardwareConcurrency: false,
1862
+ deviceMemory: false,
1863
+ plugins: false,
1864
+ languages: false,
1865
+ screen: false,
1866
+ timezone: false,
1867
+ platform: false,
1868
+ vendor: false,
1869
+ connection: false,
1870
+ maxTouchPoints: false,
1871
+ devicePixelRatio: false,
1872
+ mediaDevices: false,
1873
+ getBattery: false,
1874
+ referrer: true,
1875
+ windowName: false,
1876
+ rtcPeerConnection: false,
1877
+ geolocation: false,
1878
+ serviceWorker: false,
1879
+ cacheApi: false,
1880
+ sendBeacon: false,
1881
+ fetch: true,
1882
+ xhr: true,
1883
+ websocket: false,
1884
+ mutationObserver: true,
1885
+ performanceObserver: true,
1886
+ intersectionObserver: false
1887
+ },
1888
+ cookies: [
1889
+ ],
1890
+ network: {
1891
+ requestCount: 1,
1892
+ domains: [
1893
+ "pagead2.googlesyndication.com"
1894
+ ],
1895
+ outboundBytes: 0,
1896
+ inboundBytes: 64713,
1897
+ injectedElements: [
1898
+ ]
1899
+ },
1900
+ performance: {
1901
+ taskDurationMs: 15,
1902
+ scriptDurationMs: 7,
1903
+ heapDeltaKb: 1835
1904
+ },
1905
+ scripts: [
1906
+ {
1907
+ url: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",
1908
+ transferKb: 63,
1909
+ decodedKb: 191.4,
1910
+ encoding: "br",
1911
+ durationMs: 300,
1912
+ initiatorType: "script",
1913
+ protocol: "h2"
1914
+ },
1915
+ {
1916
+ url: "https://pagead2.googlesyndication.com/pagead/js/err_rep.js",
1917
+ transferKb: 6.8,
1918
+ decodedKb: 6.8,
1919
+ encoding: "none",
1920
+ durationMs: 0,
1921
+ initiatorType: "secondary",
1922
+ protocol: "unknown"
1923
+ }
1924
+ ]
1925
+ };
1926
+ const carbonAds = {
1927
+ totalTransferKb: 10.4,
1928
+ totalDecodedKb: 34.5,
1929
+ loadTimeMs: 82,
1930
+ collectsWebVitals: false,
1931
+ apis: {
1932
+ cookies: true,
1933
+ localStorage: false,
1934
+ sessionStorage: false,
1935
+ indexedDB: false,
1936
+ canvas: false,
1937
+ webgl: false,
1938
+ audioContext: false,
1939
+ userAgent: false,
1940
+ doNotTrack: false,
1941
+ hardwareConcurrency: false,
1942
+ deviceMemory: false,
1943
+ plugins: false,
1944
+ languages: false,
1945
+ screen: false,
1946
+ timezone: false,
1947
+ platform: false,
1948
+ vendor: false,
1949
+ connection: false,
1950
+ maxTouchPoints: false,
1951
+ devicePixelRatio: false,
1952
+ mediaDevices: false,
1953
+ getBattery: false,
1954
+ referrer: false,
1955
+ windowName: false,
1956
+ rtcPeerConnection: false,
1957
+ geolocation: false,
1958
+ serviceWorker: false,
1959
+ cacheApi: false,
1960
+ sendBeacon: false,
1961
+ fetch: true,
1962
+ xhr: false,
1963
+ websocket: false,
1964
+ mutationObserver: false,
1965
+ performanceObserver: false,
1966
+ intersectionObserver: true
1967
+ },
1968
+ cookies: [
1969
+ ],
1970
+ network: {
1971
+ requestCount: 1,
1972
+ domains: [
1973
+ "cdn.carbonads.com"
1974
+ ],
1975
+ outboundBytes: 0,
1976
+ inboundBytes: 10653,
1977
+ injectedElements: [
1978
+ ]
1979
+ },
1980
+ performance: {
1981
+ taskDurationMs: 7,
1982
+ scriptDurationMs: 1,
1983
+ heapDeltaKb: 730
1984
+ },
1985
+ scripts: [
1986
+ {
1987
+ url: "https://cdn.carbonads.com/carbon.js?serve=CW7DTKJL&placement=unlighthousedev&format=cover",
1988
+ transferKb: 10.4,
1989
+ decodedKb: 34.5,
1990
+ encoding: "gzip",
1991
+ durationMs: 82,
1992
+ initiatorType: "script",
1993
+ protocol: "unknown"
1994
+ }
1995
+ ]
1996
+ };
1997
+ const hotjar = {
1998
+ totalTransferKb: 62.2,
1999
+ totalDecodedKb: 242.5,
2000
+ loadTimeMs: 338,
2001
+ collectsWebVitals: false,
2002
+ apis: {
2003
+ cookies: true,
2004
+ localStorage: true,
2005
+ sessionStorage: true,
2006
+ indexedDB: false,
2007
+ canvas: false,
2008
+ webgl: false,
2009
+ audioContext: false,
2010
+ userAgent: true,
2011
+ doNotTrack: true,
2012
+ hardwareConcurrency: false,
2013
+ deviceMemory: false,
2014
+ plugins: false,
2015
+ languages: true,
2016
+ screen: true,
2017
+ timezone: false,
2018
+ platform: false,
2019
+ vendor: false,
2020
+ connection: false,
2021
+ maxTouchPoints: false,
2022
+ devicePixelRatio: false,
2023
+ mediaDevices: false,
2024
+ getBattery: false,
2025
+ referrer: true,
2026
+ windowName: false,
2027
+ rtcPeerConnection: false,
2028
+ geolocation: false,
2029
+ serviceWorker: false,
2030
+ cacheApi: false,
2031
+ sendBeacon: true,
2032
+ fetch: false,
2033
+ xhr: true,
2034
+ websocket: true,
2035
+ mutationObserver: true,
2036
+ performanceObserver: false,
2037
+ intersectionObserver: false
2038
+ },
2039
+ cookies: [
2040
+ ],
2041
+ network: {
2042
+ requestCount: 1,
2043
+ domains: [
2044
+ "static.hotjar.com"
2045
+ ],
2046
+ outboundBytes: 0,
2047
+ inboundBytes: 6335,
2048
+ injectedElements: [
2049
+ ]
2050
+ },
2051
+ performance: {
2052
+ taskDurationMs: 8,
2053
+ scriptDurationMs: 1,
2054
+ heapDeltaKb: 757
2055
+ },
2056
+ scripts: [
2057
+ {
2058
+ url: "https://static.hotjar.com/c/hotjar-3925006.js?sv=6",
2059
+ transferKb: 6.2,
2060
+ decodedKb: 15,
2061
+ encoding: "br",
2062
+ durationMs: 338,
2063
+ initiatorType: "script",
2064
+ protocol: "unknown"
2065
+ },
2066
+ {
2067
+ url: "https://script.hotjar.com/modules.a7ec23974042e4df49ed.js",
2068
+ transferKb: 56,
2069
+ decodedKb: 227.5,
2070
+ encoding: "br",
2071
+ durationMs: 0,
2072
+ initiatorType: "secondary",
2073
+ protocol: "unknown"
2074
+ }
2075
+ ]
2076
+ };
2077
+ const clarity = {
2078
+ totalTransferKb: 27.2,
2079
+ totalDecodedKb: 80.2,
2080
+ loadTimeMs: 648,
2081
+ collectsWebVitals: true,
2082
+ apis: {
2083
+ cookies: true,
2084
+ localStorage: false,
2085
+ sessionStorage: true,
2086
+ indexedDB: false,
2087
+ canvas: false,
2088
+ webgl: false,
2089
+ audioContext: false,
2090
+ userAgent: true,
2091
+ doNotTrack: false,
2092
+ hardwareConcurrency: true,
2093
+ deviceMemory: true,
2094
+ plugins: false,
2095
+ languages: true,
2096
+ screen: true,
2097
+ timezone: true,
2098
+ platform: true,
2099
+ vendor: false,
2100
+ connection: true,
2101
+ maxTouchPoints: true,
2102
+ devicePixelRatio: true,
2103
+ mediaDevices: false,
2104
+ getBattery: false,
2105
+ referrer: true,
2106
+ windowName: false,
2107
+ rtcPeerConnection: false,
2108
+ geolocation: false,
2109
+ serviceWorker: false,
2110
+ cacheApi: false,
2111
+ sendBeacon: true,
2112
+ fetch: false,
2113
+ xhr: true,
2114
+ websocket: false,
2115
+ mutationObserver: true,
2116
+ performanceObserver: true,
2117
+ intersectionObserver: true
2118
+ },
2119
+ cookies: [
2120
+ ],
2121
+ network: {
2122
+ requestCount: 3,
2123
+ domains: [
2124
+ "k.clarity.ms",
2125
+ "scripts.clarity.ms",
2126
+ "www.clarity.ms"
2127
+ ],
2128
+ outboundBytes: 756,
2129
+ inboundBytes: 27824,
2130
+ injectedElements: [
2131
+ {
2132
+ tag: "script",
2133
+ src: "https://scripts.clarity.ms/0.8.57/clarity.js"
2134
+ }
2135
+ ]
2136
+ },
2137
+ performance: {
2138
+ taskDurationMs: 20,
2139
+ scriptDurationMs: 9,
2140
+ heapDeltaKb: 1199
2141
+ },
2142
+ scripts: [
2143
+ {
2144
+ url: "https://www.clarity.ms/tag/mqk2m9dr2v",
2145
+ transferKb: 0.8,
2146
+ decodedKb: 0.6,
2147
+ encoding: "none",
2148
+ durationMs: 354,
2149
+ initiatorType: "script",
2150
+ protocol: "unknown"
2151
+ },
2152
+ {
2153
+ url: "https://scripts.clarity.ms/0.8.57/clarity.js",
2154
+ transferKb: 26.1,
2155
+ decodedKb: 79.6,
2156
+ encoding: "br",
2157
+ durationMs: 178,
2158
+ initiatorType: "script",
2159
+ protocol: "unknown"
2160
+ },
2161
+ {
2162
+ url: "https://k.clarity.ms/collect",
2163
+ transferKb: 0.3,
2164
+ decodedKb: 0,
2165
+ encoding: "none",
2166
+ durationMs: 648,
2167
+ initiatorType: "xmlhttprequest",
2168
+ protocol: "unknown"
2169
+ }
2170
+ ]
2171
+ };
2172
+ const googleTagManager = {
2173
+ totalTransferKb: 108.6,
2174
+ totalDecodedKb: 302.5,
2175
+ loadTimeMs: 460,
2176
+ collectsWebVitals: false,
2177
+ apis: {
2178
+ cookies: true,
2179
+ localStorage: true,
2180
+ sessionStorage: false,
2181
+ indexedDB: false,
2182
+ canvas: false,
2183
+ webgl: false,
2184
+ audioContext: false,
2185
+ userAgent: true,
2186
+ doNotTrack: false,
2187
+ hardwareConcurrency: false,
2188
+ deviceMemory: false,
2189
+ plugins: false,
2190
+ languages: false,
2191
+ screen: false,
2192
+ timezone: true,
2193
+ platform: false,
2194
+ vendor: false,
2195
+ connection: false,
2196
+ maxTouchPoints: false,
2197
+ devicePixelRatio: false,
2198
+ mediaDevices: false,
2199
+ getBattery: false,
2200
+ referrer: true,
2201
+ windowName: true,
2202
+ rtcPeerConnection: false,
2203
+ geolocation: false,
2204
+ serviceWorker: false,
2205
+ cacheApi: false,
2206
+ sendBeacon: true,
2207
+ fetch: true,
2208
+ xhr: true,
2209
+ websocket: false,
2210
+ mutationObserver: false,
2211
+ performanceObserver: false,
2212
+ intersectionObserver: false
2213
+ },
2214
+ cookies: [
2215
+ ],
2216
+ network: {
2217
+ requestCount: 1,
2218
+ domains: [
2219
+ "www.googletagmanager.com"
2220
+ ],
2221
+ outboundBytes: 0,
2222
+ inboundBytes: 111254,
2223
+ injectedElements: [
2224
+ ]
2225
+ },
2226
+ performance: {
2227
+ taskDurationMs: 15,
2228
+ scriptDurationMs: 6,
2229
+ heapDeltaKb: 1810
2230
+ },
2231
+ scripts: [
2232
+ {
2233
+ url: "https://www.googletagmanager.com/gtm.js?id=GTM-MWW974PF",
2234
+ transferKb: 108.6,
2235
+ decodedKb: 302.5,
2236
+ encoding: "zstd",
2237
+ durationMs: 460,
2238
+ initiatorType: "script",
2239
+ protocol: "unknown"
2240
+ }
2241
+ ]
2242
+ };
2243
+ const intercom = {
2244
+ totalTransferKb: 9669.5,
2245
+ totalDecodedKb: 10437.8,
2246
+ loadTimeMs: 724,
2247
+ collectsWebVitals: false,
2248
+ apis: {
2249
+ cookies: true,
2250
+ localStorage: true,
2251
+ sessionStorage: true,
2252
+ indexedDB: false,
2253
+ canvas: true,
2254
+ webgl: false,
2255
+ audioContext: false,
2256
+ userAgent: true,
2257
+ doNotTrack: true,
2258
+ hardwareConcurrency: false,
2259
+ deviceMemory: false,
2260
+ plugins: false,
2261
+ languages: false,
2262
+ screen: true,
2263
+ timezone: true,
2264
+ platform: true,
2265
+ vendor: true,
2266
+ connection: false,
2267
+ maxTouchPoints: true,
2268
+ devicePixelRatio: true,
2269
+ mediaDevices: false,
2270
+ getBattery: false,
2271
+ referrer: false,
2272
+ windowName: false,
2273
+ rtcPeerConnection: false,
2274
+ geolocation: false,
2275
+ serviceWorker: false,
2276
+ cacheApi: false,
2277
+ sendBeacon: true,
2278
+ fetch: true,
2279
+ xhr: true,
2280
+ websocket: true,
2281
+ mutationObserver: true,
2282
+ performanceObserver: false,
2283
+ intersectionObserver: false
2284
+ },
2285
+ cookies: [
2286
+ ],
2287
+ network: {
2288
+ requestCount: 1,
2289
+ domains: [
2290
+ "widget.intercom.io"
2291
+ ],
2292
+ outboundBytes: 0,
2293
+ inboundBytes: 3706,
2294
+ injectedElements: [
2295
+ ]
2296
+ },
2297
+ performance: {
2298
+ taskDurationMs: 6,
2299
+ scriptDurationMs: 0,
2300
+ heapDeltaKb: 726
2301
+ },
2302
+ scripts: [
2303
+ {
2304
+ url: "https://widget.intercom.io/widget/akg5rmxb",
2305
+ transferKb: 3.6,
2306
+ decodedKb: 7.4,
2307
+ encoding: "gzip",
2308
+ durationMs: 724,
2309
+ initiatorType: "script",
2310
+ protocol: "unknown"
2311
+ },
2312
+ {
2313
+ url: "https://js.intercomcdn.com/intersection/assets/app.js",
2314
+ transferKb: 7165.2,
2315
+ decodedKb: 7165.2,
2316
+ encoding: "br",
2317
+ durationMs: 0,
2318
+ initiatorType: "secondary",
2319
+ protocol: "unknown"
2320
+ },
2321
+ {
2322
+ url: "https://js.intercomcdn.com/intersection/assets/styles.js",
2323
+ transferKb: 2167.9,
2324
+ decodedKb: 2167.9,
2325
+ encoding: "br",
2326
+ durationMs: 0,
2327
+ initiatorType: "secondary",
2328
+ protocol: "unknown"
2329
+ },
2330
+ {
2331
+ url: "https://js.intercomcdn.com/vendor-modern.1d25c940.js",
2332
+ transferKb: 142.8,
2333
+ decodedKb: 467,
2334
+ encoding: "gzip",
2335
+ durationMs: 0,
2336
+ initiatorType: "secondary",
2337
+ protocol: "unknown"
2338
+ },
2339
+ {
2340
+ url: "https://js.intercomcdn.com/frame-modern.458ee37e.js",
2341
+ transferKb: 190,
2342
+ decodedKb: 630.3,
2343
+ encoding: "gzip",
2344
+ durationMs: 0,
2345
+ initiatorType: "secondary",
2346
+ protocol: "unknown"
2347
+ }
2348
+ ]
2349
+ };
2350
+ const crisp = {
2351
+ totalTransferKb: 324.9,
2352
+ totalDecodedKb: 329.1,
2353
+ loadTimeMs: 98,
2354
+ collectsWebVitals: false,
2355
+ apis: {
2356
+ cookies: true,
2357
+ localStorage: true,
2358
+ sessionStorage: true,
2359
+ indexedDB: false,
2360
+ canvas: false,
2361
+ webgl: false,
2362
+ audioContext: true,
2363
+ userAgent: true,
2364
+ doNotTrack: true,
2365
+ hardwareConcurrency: false,
2366
+ deviceMemory: false,
2367
+ plugins: false,
2368
+ languages: true,
2369
+ screen: false,
2370
+ timezone: true,
2371
+ platform: true,
2372
+ vendor: false,
2373
+ connection: false,
2374
+ maxTouchPoints: true,
2375
+ devicePixelRatio: false,
2376
+ mediaDevices: true,
2377
+ getBattery: false,
2378
+ referrer: true,
2379
+ windowName: false,
2380
+ rtcPeerConnection: true,
2381
+ geolocation: false,
2382
+ serviceWorker: false,
2383
+ cacheApi: false,
2384
+ sendBeacon: false,
2385
+ fetch: true,
2386
+ xhr: true,
2387
+ websocket: true,
2388
+ mutationObserver: true,
2389
+ performanceObserver: false,
2390
+ intersectionObserver: false
2391
+ },
2392
+ cookies: [
2393
+ ],
2394
+ network: {
2395
+ requestCount: 1,
2396
+ domains: [
2397
+ "client.crisp.chat"
2398
+ ],
2399
+ outboundBytes: 0,
2400
+ inboundBytes: 3374,
2401
+ injectedElements: [
2402
+ ]
2403
+ },
2404
+ performance: {
2405
+ taskDurationMs: 6,
2406
+ scriptDurationMs: 0,
2407
+ heapDeltaKb: 741
2408
+ },
2409
+ scripts: [
2410
+ {
2411
+ url: "https://client.crisp.chat/l.js",
2412
+ transferKb: 3.3,
2413
+ decodedKb: 7.5,
2414
+ encoding: "br",
2415
+ durationMs: 98,
2416
+ initiatorType: "script",
2417
+ protocol: "unknown"
2418
+ },
2419
+ {
2420
+ url: "https://client.crisp.chat/static/javascripts/client_default_db1a904.js",
2421
+ transferKb: 321.6,
2422
+ decodedKb: 321.6,
2423
+ encoding: "br",
2424
+ durationMs: 0,
2425
+ initiatorType: "secondary",
2426
+ protocol: "unknown"
2427
+ }
2428
+ ]
2429
+ };
2430
+ const stripe = {
2431
+ totalTransferKb: 214.4,
2432
+ totalDecodedKb: 926.5,
2433
+ loadTimeMs: 171,
2434
+ collectsWebVitals: false,
2435
+ apis: {
2436
+ cookies: true,
2437
+ localStorage: false,
2438
+ sessionStorage: false,
2439
+ indexedDB: false,
2440
+ canvas: false,
2441
+ webgl: false,
2442
+ audioContext: false,
2443
+ userAgent: true,
2444
+ doNotTrack: false,
2445
+ hardwareConcurrency: false,
2446
+ deviceMemory: false,
2447
+ plugins: false,
2448
+ languages: true,
2449
+ screen: false,
2450
+ timezone: false,
2451
+ platform: true,
2452
+ vendor: false,
2453
+ connection: false,
2454
+ maxTouchPoints: true,
2455
+ devicePixelRatio: false,
2456
+ mediaDevices: false,
2457
+ getBattery: false,
2458
+ referrer: true,
2459
+ windowName: true,
2460
+ rtcPeerConnection: false,
2461
+ geolocation: false,
2462
+ serviceWorker: false,
2463
+ cacheApi: false,
2464
+ sendBeacon: false,
2465
+ fetch: true,
2466
+ xhr: true,
2467
+ websocket: false,
2468
+ mutationObserver: true,
2469
+ performanceObserver: true,
2470
+ intersectionObserver: true
2471
+ },
2472
+ cookies: [
2473
+ {
2474
+ name: "m",
2475
+ domain: "m.stripe.com",
2476
+ path: "/",
2477
+ httpOnly: true,
2478
+ secure: true,
2479
+ sameSite: "None",
2480
+ session: false,
2481
+ lifetimeDays: 400,
2482
+ firstParty: false
2483
+ }
2484
+ ],
2485
+ network: {
2486
+ requestCount: 2,
2487
+ domains: [
2488
+ "js.stripe.com"
2489
+ ],
2490
+ outboundBytes: 0,
2491
+ inboundBytes: 219407,
2492
+ injectedElements: [
2493
+ {
2494
+ tag: "iframe",
2495
+ src: "https://js.stripe.com/v3/m-outer-3437aaddcdf6922d623e172c2d6f9278.html#url=http%3A%2F%2F127.0.0.1%3A34289%2Fstripe&title=&referrer=&muid=NA&sid=NA&version=6&preview=false&__shared_params__[version]=v3"
2496
+ }
2497
+ ]
2498
+ },
2499
+ performance: {
2500
+ taskDurationMs: 90,
2501
+ scriptDurationMs: 13,
2502
+ heapDeltaKb: 4113
2503
+ },
2504
+ scripts: [
2505
+ {
2506
+ url: "https://js.stripe.com/v3/",
2507
+ transferKb: 214,
2508
+ decodedKb: 926.3,
2509
+ encoding: "br",
2510
+ durationMs: 171,
2511
+ initiatorType: "script",
2512
+ protocol: "h2"
2513
+ },
2514
+ {
2515
+ url: "https://js.stripe.com/v3/m-outer-3437aaddcdf6922d623e172c2d6f9278.html#url=http%3A%2F%2F127.0.0.1%3A34289%2Fstripe&title=&referrer=&muid=NA&sid=NA&version=6&preview=false&__shared_params__[version]=v3",
2516
+ transferKb: 0.4,
2517
+ decodedKb: 0.2,
2518
+ encoding: "none",
2519
+ durationMs: 29,
2520
+ initiatorType: "iframe",
2521
+ protocol: "h2"
2522
+ }
2523
+ ]
2524
+ };
2525
+ const lemonSqueezy = {
2526
+ totalTransferKb: 1.8,
2527
+ totalDecodedKb: 3.8,
2528
+ loadTimeMs: 104,
2529
+ collectsWebVitals: false,
2530
+ apis: {
2531
+ cookies: true,
2532
+ localStorage: false,
2533
+ sessionStorage: false,
2534
+ indexedDB: false,
2535
+ canvas: false,
2536
+ webgl: false,
2537
+ audioContext: false,
2538
+ userAgent: false,
2539
+ doNotTrack: false,
2540
+ hardwareConcurrency: false,
2541
+ deviceMemory: false,
2542
+ plugins: false,
2543
+ languages: false,
2544
+ screen: false,
2545
+ timezone: false,
2546
+ platform: false,
2547
+ vendor: false,
2548
+ connection: false,
2549
+ maxTouchPoints: false,
2550
+ devicePixelRatio: false,
2551
+ mediaDevices: false,
2552
+ getBattery: false,
2553
+ referrer: false,
2554
+ windowName: false,
2555
+ rtcPeerConnection: false,
2556
+ geolocation: false,
2557
+ serviceWorker: false,
2558
+ cacheApi: false,
2559
+ sendBeacon: false,
2560
+ fetch: false,
2561
+ xhr: false,
2562
+ websocket: false,
2563
+ mutationObserver: false,
2564
+ performanceObserver: false,
2565
+ intersectionObserver: false
2566
+ },
2567
+ cookies: [
2568
+ ],
2569
+ network: {
2570
+ requestCount: 1,
2571
+ domains: [
2572
+ "assets.lemonsqueezy.com"
2573
+ ],
2574
+ outboundBytes: 0,
2575
+ inboundBytes: 1839,
2576
+ injectedElements: [
2577
+ ]
2578
+ },
2579
+ performance: {
2580
+ taskDurationMs: 5,
2581
+ scriptDurationMs: 0,
2582
+ heapDeltaKb: 720
2583
+ },
2584
+ scripts: [
2585
+ {
2586
+ url: "https://assets.lemonsqueezy.com/lemon.js",
2587
+ transferKb: 1.8,
2588
+ decodedKb: 3.8,
2589
+ encoding: "br",
2590
+ durationMs: 104,
2591
+ initiatorType: "script",
2592
+ protocol: "unknown"
2593
+ }
2594
+ ]
2595
+ };
2596
+ const paypal = {
2597
+ totalTransferKb: 95.5,
2598
+ totalDecodedKb: 288.8,
2599
+ loadTimeMs: 159,
2600
+ collectsWebVitals: false,
2601
+ apis: {
2602
+ cookies: true,
2603
+ localStorage: true,
2604
+ sessionStorage: false,
2605
+ indexedDB: true,
2606
+ canvas: true,
2607
+ webgl: true,
2608
+ audioContext: false,
2609
+ userAgent: true,
2610
+ doNotTrack: false,
2611
+ hardwareConcurrency: true,
2612
+ deviceMemory: true,
2613
+ plugins: true,
2614
+ languages: true,
2615
+ screen: false,
2616
+ timezone: true,
2617
+ platform: false,
2618
+ vendor: true,
2619
+ connection: true,
2620
+ maxTouchPoints: true,
2621
+ devicePixelRatio: true,
2622
+ mediaDevices: true,
2623
+ getBattery: false,
2624
+ referrer: true,
2625
+ windowName: false,
2626
+ rtcPeerConnection: true,
2627
+ geolocation: true,
2628
+ serviceWorker: true,
2629
+ cacheApi: false,
2630
+ sendBeacon: true,
2631
+ fetch: true,
2632
+ xhr: true,
2633
+ websocket: false,
2634
+ mutationObserver: false,
2635
+ performanceObserver: false,
2636
+ intersectionObserver: true
2637
+ },
2638
+ cookies: [
2639
+ ],
2640
+ network: {
2641
+ requestCount: 1,
2642
+ domains: [
2643
+ "www.paypal.com"
2644
+ ],
2645
+ outboundBytes: 0,
2646
+ inboundBytes: 49994,
2647
+ injectedElements: [
2648
+ ]
2649
+ },
2650
+ performance: {
2651
+ taskDurationMs: 21,
2652
+ scriptDurationMs: 11,
2653
+ heapDeltaKb: 1682
2654
+ },
2655
+ scripts: [
2656
+ {
2657
+ url: "https://www.paypal.com/web-sdk/v6/core",
2658
+ transferKb: 48.8,
2659
+ decodedKb: 148,
2660
+ encoding: "gzip",
2661
+ durationMs: 159,
2662
+ initiatorType: "script",
2663
+ protocol: "unknown"
2664
+ },
2665
+ {
2666
+ url: "https://c.paypal.com/da/r/fb.js?${d}`:",
2667
+ transferKb: 23.3,
2668
+ decodedKb: 70.4,
2669
+ encoding: "gzip",
2670
+ durationMs: 0,
2671
+ initiatorType: "secondary",
2672
+ protocol: "unknown"
2673
+ },
2674
+ {
2675
+ url: "https://c.paypal.com/da/r/fb.js",
2676
+ transferKb: 23.4,
2677
+ decodedKb: 70.4,
2678
+ encoding: "gzip",
2679
+ durationMs: 0,
2680
+ initiatorType: "secondary",
2681
+ protocol: "unknown"
2682
+ }
2683
+ ]
2684
+ };
2685
+ const vimeoPlayer = {
2686
+ totalTransferKb: 8.9,
2687
+ totalDecodedKb: 23.8,
2688
+ loadTimeMs: 96,
2689
+ collectsWebVitals: false,
2690
+ apis: {
2691
+ cookies: false,
2692
+ localStorage: false,
2693
+ sessionStorage: false,
2694
+ indexedDB: false,
2695
+ canvas: false,
2696
+ webgl: false,
2697
+ audioContext: false,
2698
+ userAgent: true,
2699
+ doNotTrack: false,
2700
+ hardwareConcurrency: false,
2701
+ deviceMemory: false,
2702
+ plugins: false,
2703
+ languages: false,
2704
+ screen: false,
2705
+ timezone: false,
2706
+ platform: false,
2707
+ vendor: false,
2708
+ connection: false,
2709
+ maxTouchPoints: false,
2710
+ devicePixelRatio: false,
2711
+ mediaDevices: false,
2712
+ getBattery: false,
2713
+ referrer: false,
2714
+ windowName: false,
2715
+ rtcPeerConnection: false,
2716
+ geolocation: false,
2717
+ serviceWorker: false,
2718
+ cacheApi: false,
2719
+ sendBeacon: false,
2720
+ fetch: false,
2721
+ xhr: true,
2722
+ websocket: false,
2723
+ mutationObserver: false,
2724
+ performanceObserver: false,
2725
+ intersectionObserver: false
2726
+ },
2727
+ cookies: [
2728
+ {
2729
+ name: "__cf_bm",
2730
+ domain: ".vimeo.com",
2731
+ path: "/",
2732
+ httpOnly: true,
2733
+ secure: true,
2734
+ sameSite: "None",
2735
+ session: false,
2736
+ lifetimeDays: 0,
2737
+ firstParty: false
2738
+ },
2739
+ {
2740
+ name: "_cfuvid",
2741
+ domain: ".vimeo.com",
2742
+ path: "/",
2743
+ httpOnly: true,
2744
+ secure: true,
2745
+ sameSite: "None",
2746
+ session: true,
2747
+ lifetimeDays: -1,
2748
+ firstParty: false
2749
+ }
2750
+ ],
2751
+ network: {
2752
+ requestCount: 1,
2753
+ domains: [
2754
+ "player.vimeo.com"
2755
+ ],
2756
+ outboundBytes: 0,
2757
+ inboundBytes: 9084,
2758
+ injectedElements: [
2759
+ ]
2760
+ },
2761
+ performance: {
2762
+ taskDurationMs: 7,
2763
+ scriptDurationMs: 0,
2764
+ heapDeltaKb: 742
2765
+ },
2766
+ scripts: [
2767
+ {
2768
+ url: "https://player.vimeo.com/api/player.js",
2769
+ transferKb: 8.9,
2770
+ decodedKb: 23.8,
2771
+ encoding: "gzip",
2772
+ durationMs: 96,
2773
+ initiatorType: "script",
2774
+ protocol: "unknown"
2775
+ }
2776
+ ]
2777
+ };
2778
+ const youtubePlayer = {
2779
+ totalTransferKb: 14,
2780
+ totalDecodedKb: 32.4,
2781
+ loadTimeMs: 289,
2782
+ collectsWebVitals: false,
2783
+ apis: {
2784
+ cookies: false,
2785
+ localStorage: false,
2786
+ sessionStorage: false,
2787
+ indexedDB: false,
2788
+ canvas: false,
2789
+ webgl: false,
2790
+ audioContext: false,
2791
+ userAgent: false,
2792
+ doNotTrack: false,
2793
+ hardwareConcurrency: false,
2794
+ deviceMemory: false,
2795
+ plugins: false,
2796
+ languages: false,
2797
+ screen: false,
2798
+ timezone: false,
2799
+ platform: false,
2800
+ vendor: false,
2801
+ connection: false,
2802
+ maxTouchPoints: false,
2803
+ devicePixelRatio: false,
2804
+ mediaDevices: false,
2805
+ getBattery: false,
2806
+ referrer: true,
2807
+ windowName: false,
2808
+ rtcPeerConnection: false,
2809
+ geolocation: false,
2810
+ serviceWorker: false,
2811
+ cacheApi: false,
2812
+ sendBeacon: false,
2813
+ fetch: false,
2814
+ xhr: false,
2815
+ websocket: false,
2816
+ mutationObserver: false,
2817
+ performanceObserver: false,
2818
+ intersectionObserver: false
2819
+ },
2820
+ cookies: [
2821
+ {
2822
+ name: "__Secure-YNID",
2823
+ domain: ".youtube.com",
2824
+ path: "/",
2825
+ httpOnly: true,
2826
+ secure: true,
2827
+ sameSite: "None",
2828
+ session: false,
2829
+ lifetimeDays: 180,
2830
+ firstParty: false
2831
+ },
2832
+ {
2833
+ name: "YSC",
2834
+ domain: ".youtube.com",
2835
+ path: "/",
2836
+ httpOnly: true,
2837
+ secure: true,
2838
+ sameSite: "None",
2839
+ session: true,
2840
+ lifetimeDays: -1,
2841
+ firstParty: false
2842
+ },
2843
+ {
2844
+ name: "VISITOR_INFO1_LIVE",
2845
+ domain: ".youtube.com",
2846
+ path: "/",
2847
+ httpOnly: true,
2848
+ secure: true,
2849
+ sameSite: "None",
2850
+ session: false,
2851
+ lifetimeDays: 180,
2852
+ firstParty: false
2853
+ },
2854
+ {
2855
+ name: "VISITOR_PRIVACY_METADATA",
2856
+ domain: ".youtube.com",
2857
+ path: "/",
2858
+ httpOnly: true,
2859
+ secure: true,
2860
+ sameSite: "None",
2861
+ session: false,
2862
+ lifetimeDays: 180,
2863
+ firstParty: false
2864
+ },
2865
+ {
2866
+ name: "__Secure-ROLLOUT_TOKEN",
2867
+ domain: ".youtube.com",
2868
+ path: "/",
2869
+ httpOnly: true,
2870
+ secure: true,
2871
+ sameSite: "None",
2872
+ session: false,
2873
+ lifetimeDays: 180,
2874
+ firstParty: false
2875
+ }
2876
+ ],
2877
+ network: {
2878
+ requestCount: 2,
2879
+ domains: [
2880
+ "www.youtube.com"
2881
+ ],
2882
+ outboundBytes: 0,
2883
+ inboundBytes: 14267,
2884
+ injectedElements: [
2885
+ {
2886
+ tag: "script",
2887
+ src: "https://www.youtube.com/s/player/f4f314f0/www-widgetapi.vflset/www-widgetapi.js"
2888
+ }
2889
+ ]
2890
+ },
2891
+ performance: {
2892
+ taskDurationMs: 7,
2893
+ scriptDurationMs: 1,
2894
+ heapDeltaKb: 811
2895
+ },
2896
+ scripts: [
2897
+ {
2898
+ url: "https://www.youtube.com/iframe_api",
2899
+ transferKb: 3.4,
2900
+ decodedKb: 1,
2901
+ encoding: "br",
2902
+ durationMs: 289,
2903
+ initiatorType: "script",
2904
+ protocol: "unknown"
2905
+ },
2906
+ {
2907
+ url: "https://www.youtube.com/s/player/f4f314f0/www-widgetapi.vflset/www-widgetapi.js",
2908
+ transferKb: 10.6,
2909
+ decodedKb: 31.4,
2910
+ encoding: "br",
2911
+ durationMs: 20,
2912
+ initiatorType: "script",
2913
+ protocol: "unknown"
2914
+ }
2915
+ ]
2916
+ };
2917
+ const googleMaps = {
2918
+ totalTransferKb: 0,
2919
+ totalDecodedKb: 0,
2920
+ loadTimeMs: 0,
2921
+ collectsWebVitals: false,
2922
+ apis: {
2923
+ cookies: false,
2924
+ localStorage: false,
2925
+ sessionStorage: false,
2926
+ indexedDB: false,
2927
+ canvas: false,
2928
+ webgl: false,
2929
+ audioContext: false,
2930
+ userAgent: false,
2931
+ doNotTrack: false,
2932
+ hardwareConcurrency: false,
2933
+ deviceMemory: false,
2934
+ plugins: false,
2935
+ languages: false,
2936
+ screen: false,
2937
+ timezone: false,
2938
+ platform: false,
2939
+ vendor: false,
2940
+ connection: false,
2941
+ maxTouchPoints: false,
2942
+ devicePixelRatio: false,
2943
+ mediaDevices: false,
2944
+ getBattery: false,
2945
+ referrer: false,
2946
+ windowName: false,
2947
+ rtcPeerConnection: false,
2948
+ geolocation: false,
2949
+ serviceWorker: false,
2950
+ cacheApi: false,
2951
+ sendBeacon: false,
2952
+ fetch: false,
2953
+ xhr: false,
2954
+ websocket: false,
2955
+ mutationObserver: false,
2956
+ performanceObserver: false,
2957
+ intersectionObserver: false
2958
+ },
2959
+ cookies: [
2960
+ ],
2961
+ network: {
2962
+ requestCount: 0,
2963
+ domains: [
2964
+ ],
2965
+ outboundBytes: 0,
2966
+ inboundBytes: 0,
2967
+ injectedElements: [
2968
+ ]
2969
+ },
2970
+ performance: {
2971
+ taskDurationMs: 0,
2972
+ scriptDurationMs: 0,
2973
+ heapDeltaKb: 0
2974
+ },
2975
+ scripts: [
2976
+ ]
2977
+ };
2978
+ const npm = {
2979
+ totalTransferKb: 0,
2980
+ totalDecodedKb: 0,
2981
+ loadTimeMs: 0,
2982
+ collectsWebVitals: false,
2983
+ apis: {
2984
+ cookies: false,
2985
+ localStorage: false,
2986
+ sessionStorage: false,
2987
+ indexedDB: false,
2988
+ canvas: false,
2989
+ webgl: false,
2990
+ audioContext: false,
2991
+ userAgent: false,
2992
+ doNotTrack: false,
2993
+ hardwareConcurrency: false,
2994
+ deviceMemory: false,
2995
+ plugins: false,
2996
+ languages: false,
2997
+ screen: false,
2998
+ timezone: false,
2999
+ platform: false,
3000
+ vendor: false,
3001
+ connection: false,
3002
+ maxTouchPoints: false,
3003
+ devicePixelRatio: false,
3004
+ mediaDevices: false,
3005
+ getBattery: false,
3006
+ referrer: false,
3007
+ windowName: false,
3008
+ rtcPeerConnection: false,
3009
+ geolocation: false,
3010
+ serviceWorker: false,
3011
+ cacheApi: false,
3012
+ sendBeacon: false,
3013
+ fetch: false,
3014
+ xhr: false,
3015
+ websocket: false,
3016
+ mutationObserver: false,
3017
+ performanceObserver: false,
3018
+ intersectionObserver: false
3019
+ },
3020
+ cookies: [
3021
+ ],
3022
+ network: {
3023
+ requestCount: 0,
3024
+ domains: [
3025
+ ],
3026
+ outboundBytes: 0,
3027
+ inboundBytes: 0,
3028
+ injectedElements: [
3029
+ ]
3030
+ },
3031
+ performance: {
3032
+ taskDurationMs: 0,
3033
+ scriptDurationMs: 0,
3034
+ heapDeltaKb: 0
3035
+ },
3036
+ scripts: [
3037
+ ]
3038
+ };
3039
+ const googleRecaptcha = {
3040
+ totalTransferKb: 363.9,
3041
+ totalDecodedKb: 852,
3042
+ loadTimeMs: 250,
3043
+ collectsWebVitals: false,
3044
+ apis: {
3045
+ cookies: false,
3046
+ localStorage: false,
3047
+ sessionStorage: true,
3048
+ indexedDB: false,
3049
+ canvas: false,
3050
+ webgl: false,
3051
+ audioContext: false,
3052
+ userAgent: true,
3053
+ doNotTrack: false,
3054
+ hardwareConcurrency: false,
3055
+ deviceMemory: true,
3056
+ plugins: false,
3057
+ languages: false,
3058
+ screen: true,
3059
+ timezone: true,
3060
+ platform: false,
3061
+ vendor: false,
3062
+ connection: false,
3063
+ maxTouchPoints: true,
3064
+ devicePixelRatio: false,
3065
+ mediaDevices: true,
3066
+ getBattery: false,
3067
+ referrer: false,
3068
+ windowName: false,
3069
+ rtcPeerConnection: false,
3070
+ geolocation: false,
3071
+ serviceWorker: false,
3072
+ cacheApi: false,
3073
+ sendBeacon: true,
3074
+ fetch: true,
3075
+ xhr: true,
3076
+ websocket: false,
3077
+ mutationObserver: true,
3078
+ performanceObserver: true,
3079
+ intersectionObserver: false
3080
+ },
3081
+ cookies: [
3082
+ ],
3083
+ network: {
3084
+ requestCount: 2,
3085
+ domains: [
3086
+ "www.google.com",
3087
+ "www.gstatic.com"
3088
+ ],
3089
+ outboundBytes: 0,
3090
+ inboundBytes: 373010,
3091
+ injectedElements: [
3092
+ {
3093
+ tag: "script",
3094
+ src: "https://www.gstatic.com/recaptcha/releases/qm3PSRIx10pekcnS9DjGnjPW/recaptcha__en.js"
3095
+ }
3096
+ ]
3097
+ },
3098
+ performance: {
3099
+ taskDurationMs: 68,
3100
+ scriptDurationMs: 38,
3101
+ heapDeltaKb: 3011
3102
+ },
3103
+ scripts: [
3104
+ {
3105
+ url: "https://www.google.com/recaptcha/api.js",
3106
+ transferKb: 1.5,
3107
+ decodedKb: 1.5,
3108
+ encoding: "gzip",
3109
+ durationMs: 250,
3110
+ initiatorType: "script",
3111
+ protocol: "unknown"
3112
+ },
3113
+ {
3114
+ url: "https://www.gstatic.com/recaptcha/releases/qm3PSRIx10pekcnS9DjGnjPW/recaptcha__en.js",
3115
+ transferKb: 362.4,
3116
+ decodedKb: 850.5,
3117
+ encoding: "gzip",
3118
+ durationMs: 235,
3119
+ initiatorType: "script",
3120
+ protocol: "h2"
3121
+ }
3122
+ ]
3123
+ };
3124
+ const googleSignIn = {
3125
+ totalTransferKb: 92.1,
3126
+ totalDecodedKb: 247.6,
3127
+ loadTimeMs: 563,
3128
+ collectsWebVitals: false,
3129
+ apis: {
3130
+ cookies: false,
3131
+ localStorage: false,
3132
+ sessionStorage: true,
3133
+ indexedDB: false,
3134
+ canvas: false,
3135
+ webgl: false,
3136
+ audioContext: false,
3137
+ userAgent: true,
3138
+ doNotTrack: false,
3139
+ hardwareConcurrency: false,
3140
+ deviceMemory: false,
3141
+ plugins: false,
3142
+ languages: false,
3143
+ screen: true,
3144
+ timezone: false,
3145
+ platform: false,
3146
+ vendor: false,
3147
+ connection: false,
3148
+ maxTouchPoints: false,
3149
+ devicePixelRatio: false,
3150
+ mediaDevices: false,
3151
+ getBattery: false,
3152
+ referrer: false,
3153
+ windowName: false,
3154
+ rtcPeerConnection: false,
3155
+ geolocation: false,
3156
+ serviceWorker: false,
3157
+ cacheApi: false,
3158
+ sendBeacon: false,
3159
+ fetch: false,
3160
+ xhr: true,
3161
+ websocket: false,
3162
+ mutationObserver: false,
3163
+ performanceObserver: false,
3164
+ intersectionObserver: false
3165
+ },
3166
+ cookies: [
3167
+ ],
3168
+ network: {
3169
+ requestCount: 1,
3170
+ domains: [
3171
+ "accounts.google.com"
3172
+ ],
3173
+ outboundBytes: 0,
3174
+ inboundBytes: 94339,
3175
+ injectedElements: [
3176
+ ]
3177
+ },
3178
+ performance: {
3179
+ taskDurationMs: 11,
3180
+ scriptDurationMs: 2,
3181
+ heapDeltaKb: 1210
3182
+ },
3183
+ scripts: [
3184
+ {
3185
+ url: "https://accounts.google.com/gsi/client",
3186
+ transferKb: 92.1,
3187
+ decodedKb: 247.6,
3188
+ encoding: "gzip",
3189
+ durationMs: 563,
3190
+ initiatorType: "script",
3191
+ protocol: "unknown"
3192
+ }
3193
+ ]
3194
+ };
3195
+ const blueskyEmbed = {
3196
+ totalTransferKb: 0,
3197
+ totalDecodedKb: 0,
3198
+ loadTimeMs: 0,
3199
+ collectsWebVitals: false,
3200
+ apis: {
3201
+ cookies: false,
3202
+ localStorage: false,
3203
+ sessionStorage: false,
3204
+ indexedDB: false,
3205
+ canvas: false,
3206
+ webgl: false,
3207
+ audioContext: false,
3208
+ userAgent: false,
3209
+ doNotTrack: false,
3210
+ hardwareConcurrency: false,
3211
+ deviceMemory: false,
3212
+ plugins: false,
3213
+ languages: false,
3214
+ screen: false,
3215
+ timezone: false,
3216
+ platform: false,
3217
+ vendor: false,
3218
+ connection: false,
3219
+ maxTouchPoints: false,
3220
+ devicePixelRatio: false,
3221
+ mediaDevices: false,
3222
+ getBattery: false,
3223
+ referrer: false,
3224
+ windowName: false,
3225
+ rtcPeerConnection: false,
3226
+ geolocation: false,
3227
+ serviceWorker: false,
3228
+ cacheApi: false,
3229
+ sendBeacon: false,
3230
+ fetch: false,
3231
+ xhr: false,
3232
+ websocket: false,
3233
+ mutationObserver: false,
3234
+ performanceObserver: false,
3235
+ intersectionObserver: false
3236
+ },
3237
+ cookies: [
3238
+ ],
3239
+ network: {
3240
+ requestCount: 0,
3241
+ domains: [
3242
+ ],
3243
+ outboundBytes: 0,
3244
+ inboundBytes: 0,
3245
+ injectedElements: [
3246
+ ]
3247
+ },
3248
+ performance: {
3249
+ taskDurationMs: 0,
3250
+ scriptDurationMs: 0,
3251
+ heapDeltaKb: 0
3252
+ },
3253
+ scripts: [
3254
+ ]
3255
+ };
3256
+ const instagramEmbed = {
3257
+ totalTransferKb: 33.9,
3258
+ totalDecodedKb: 102.2,
3259
+ loadTimeMs: 338,
3260
+ collectsWebVitals: false,
3261
+ apis: {
3262
+ cookies: false,
3263
+ localStorage: false,
3264
+ sessionStorage: false,
3265
+ indexedDB: false,
3266
+ canvas: false,
3267
+ webgl: false,
3268
+ audioContext: false,
3269
+ userAgent: true,
3270
+ doNotTrack: false,
3271
+ hardwareConcurrency: false,
3272
+ deviceMemory: false,
3273
+ plugins: false,
3274
+ languages: false,
3275
+ screen: false,
3276
+ timezone: false,
3277
+ platform: false,
3278
+ vendor: false,
3279
+ connection: false,
3280
+ maxTouchPoints: false,
3281
+ devicePixelRatio: true,
3282
+ mediaDevices: false,
3283
+ getBattery: false,
3284
+ referrer: false,
3285
+ windowName: false,
3286
+ rtcPeerConnection: false,
3287
+ geolocation: false,
3288
+ serviceWorker: false,
3289
+ cacheApi: false,
3290
+ sendBeacon: false,
3291
+ fetch: false,
3292
+ xhr: false,
3293
+ websocket: false,
3294
+ mutationObserver: false,
3295
+ performanceObserver: false,
3296
+ intersectionObserver: false
3297
+ },
3298
+ cookies: [
3299
+ ],
3300
+ network: {
3301
+ requestCount: 1,
3302
+ domains: [
3303
+ "www.instagram.com"
3304
+ ],
3305
+ outboundBytes: 0,
3306
+ inboundBytes: 36788,
3307
+ injectedElements: [
3308
+ ]
3309
+ },
3310
+ performance: {
3311
+ taskDurationMs: 11,
3312
+ scriptDurationMs: 5,
3313
+ heapDeltaKb: 886
3314
+ },
3315
+ scripts: [
3316
+ {
3317
+ url: "https://www.instagram.com/embed.js",
3318
+ transferKb: 33.9,
3319
+ decodedKb: 102.2,
3320
+ encoding: "zstd",
3321
+ durationMs: 338,
3322
+ initiatorType: "script",
3323
+ protocol: "h2"
3324
+ }
3325
+ ]
3326
+ };
3327
+ const xEmbed = {
3328
+ totalTransferKb: 130.5,
3329
+ totalDecodedKb: 410.4,
3330
+ loadTimeMs: 72,
3331
+ collectsWebVitals: false,
3332
+ apis: {
3333
+ cookies: false,
3334
+ localStorage: false,
3335
+ sessionStorage: false,
3336
+ indexedDB: false,
3337
+ canvas: false,
3338
+ webgl: false,
3339
+ audioContext: false,
3340
+ userAgent: true,
3341
+ doNotTrack: false,
3342
+ hardwareConcurrency: false,
3343
+ deviceMemory: false,
3344
+ plugins: false,
3345
+ languages: false,
3346
+ screen: false,
3347
+ timezone: false,
3348
+ platform: false,
3349
+ vendor: false,
3350
+ connection: false,
3351
+ maxTouchPoints: false,
3352
+ devicePixelRatio: true,
3353
+ mediaDevices: false,
3354
+ getBattery: false,
3355
+ referrer: true,
3356
+ windowName: false,
3357
+ rtcPeerConnection: false,
3358
+ geolocation: false,
3359
+ serviceWorker: false,
3360
+ cacheApi: false,
3361
+ sendBeacon: false,
3362
+ fetch: false,
3363
+ xhr: false,
3364
+ websocket: false,
3365
+ mutationObserver: true,
3366
+ performanceObserver: false,
3367
+ intersectionObserver: true
3368
+ },
3369
+ cookies: [
3370
+ ],
3371
+ network: {
3372
+ requestCount: 3,
3373
+ domains: [
3374
+ "platform.twitter.com",
3375
+ "syndication.twitter.com"
3376
+ ],
3377
+ outboundBytes: 0,
3378
+ inboundBytes: 134601,
3379
+ injectedElements: [
3380
+ {
3381
+ tag: "iframe",
3382
+ src: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A34289"
3383
+ }
3384
+ ]
3385
+ },
3386
+ performance: {
3387
+ taskDurationMs: 40,
3388
+ scriptDurationMs: 13,
3389
+ heapDeltaKb: 2476
3390
+ },
3391
+ scripts: [
3392
+ {
3393
+ url: "https://platform.twitter.com/widgets.js",
3394
+ transferKb: 27.3,
3395
+ decodedKb: 90.9,
3396
+ encoding: "gzip",
3397
+ durationMs: 72,
3398
+ initiatorType: "script",
3399
+ protocol: "unknown"
3400
+ },
3401
+ {
3402
+ url: "https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=http%3A%2F%2F127.0.0.1%3A34289",
3403
+ transferKb: 103.2,
3404
+ decodedKb: 319.5,
3405
+ encoding: "gzip",
3406
+ durationMs: 50,
3407
+ initiatorType: "iframe",
3408
+ protocol: "unknown"
3409
+ }
3410
+ ]
3411
+ };
3412
+ const gravatar = {
3413
+ totalTransferKb: 7.1,
3414
+ totalDecodedKb: 21.3,
3415
+ loadTimeMs: 65,
3416
+ collectsWebVitals: false,
3417
+ apis: {
3418
+ cookies: false,
3419
+ localStorage: false,
3420
+ sessionStorage: false,
3421
+ indexedDB: false,
3422
+ canvas: false,
3423
+ webgl: false,
3424
+ audioContext: false,
3425
+ userAgent: false,
3426
+ doNotTrack: false,
3427
+ hardwareConcurrency: false,
3428
+ deviceMemory: false,
3429
+ plugins: false,
3430
+ languages: false,
3431
+ screen: false,
3432
+ timezone: false,
3433
+ platform: false,
3434
+ vendor: false,
3435
+ connection: false,
3436
+ maxTouchPoints: false,
3437
+ devicePixelRatio: false,
3438
+ mediaDevices: false,
3439
+ getBattery: false,
3440
+ referrer: false,
3441
+ windowName: false,
3442
+ rtcPeerConnection: false,
3443
+ geolocation: false,
3444
+ serviceWorker: false,
3445
+ cacheApi: false,
3446
+ sendBeacon: false,
3447
+ fetch: true,
3448
+ xhr: false,
3449
+ websocket: false,
3450
+ mutationObserver: false,
3451
+ performanceObserver: false,
3452
+ intersectionObserver: false
3453
+ },
3454
+ cookies: [
3455
+ ],
3456
+ network: {
3457
+ requestCount: 1,
3458
+ domains: [
3459
+ "secure.gravatar.com"
3460
+ ],
3461
+ outboundBytes: 0,
3462
+ inboundBytes: 7295,
3463
+ injectedElements: [
3464
+ ]
3465
+ },
3466
+ performance: {
3467
+ taskDurationMs: 6,
3468
+ scriptDurationMs: 0,
3469
+ heapDeltaKb: 717
3470
+ },
3471
+ scripts: [
3472
+ {
3473
+ url: "https://secure.gravatar.com/js/gprofiles.js",
3474
+ transferKb: 7.1,
3475
+ decodedKb: 21.3,
3476
+ encoding: "br",
3477
+ durationMs: 65,
3478
+ initiatorType: "script",
3479
+ protocol: "unknown"
3480
+ }
3481
+ ]
3482
+ };
3483
+ const scriptSizes = {
3484
+ plausibleAnalytics: plausibleAnalytics,
3485
+ cloudflareWebAnalytics: cloudflareWebAnalytics,
3486
+ posthog: posthog,
3487
+ fathomAnalytics: fathomAnalytics,
3488
+ matomoAnalytics: matomoAnalytics,
3489
+ rybbitAnalytics: rybbitAnalytics,
3490
+ databuddyAnalytics: databuddyAnalytics,
3491
+ mixpanelAnalytics: mixpanelAnalytics,
3492
+ segment: segment,
3493
+ googleAnalytics: googleAnalytics,
3494
+ umamiAnalytics: umamiAnalytics,
3495
+ vercelAnalytics: vercelAnalytics,
3496
+ bingUet: bingUet,
3497
+ metaPixel: metaPixel,
3498
+ xPixel: xPixel,
3499
+ tiktokPixel: tiktokPixel,
3500
+ snapchatPixel: snapchatPixel,
3501
+ redditPixel: redditPixel,
3502
+ googleAdsense: googleAdsense,
3503
+ carbonAds: carbonAds,
3504
+ hotjar: hotjar,
3505
+ clarity: clarity,
3506
+ googleTagManager: googleTagManager,
3507
+ intercom: intercom,
3508
+ crisp: crisp,
3509
+ stripe: stripe,
3510
+ lemonSqueezy: lemonSqueezy,
3511
+ paypal: paypal,
3512
+ vimeoPlayer: vimeoPlayer,
3513
+ youtubePlayer: youtubePlayer,
3514
+ googleMaps: googleMaps,
3515
+ npm: npm,
3516
+ googleRecaptcha: googleRecaptcha,
3517
+ googleSignIn: googleSignIn,
3518
+ blueskyEmbed: blueskyEmbed,
3519
+ instagramEmbed: instagramEmbed,
3520
+ xEmbed: xEmbed,
3521
+ gravatar: gravatar
3522
+ };
3523
+
3524
+ const FINGERPRINT_ENTROPY = {
3525
+ canvas: 6,
3526
+ // ~17 bits — renders unique per GPU/driver/font stack
3527
+ webgl: 6,
3528
+ // ~15 bits — GPU renderer string uniquely identifies hardware
3529
+ audioContext: 5,
3530
+ // ~12 bits — audio processing stack fingerprint
3531
+ rtcPeerConnection: 4,
3532
+ // leaks real IP behind VPN, enables WebRTC fingerprinting
3533
+ mediaDevices: 3,
3534
+ // enumerates cameras/mics — hardware inventory
3535
+ plugins: 3,
3536
+ // historically ~15 bits, declining in modern browsers
3537
+ screen: 3,
3538
+ // ~8 bits — resolution + colorDepth
3539
+ geolocation: 3,
3540
+ // precise location (requires permission but very invasive)
3541
+ timezone: 2,
3542
+ // ~5 bits
3543
+ languages: 2,
3544
+ // ~5 bits
3545
+ hardwareConcurrency: 2,
3546
+ // ~3.5 bits — CPU core count
3547
+ deviceMemory: 2,
3548
+ // ~2.5 bits — RAM bucket
3549
+ userAgent: 1,
3550
+ // being frozen by UA-CH, declining utility
3551
+ platform: 1,
3552
+ // ~3 bits but highly correlated with userAgent
3553
+ vendor: 1,
3554
+ // low entropy, mostly "Google Inc."
3555
+ maxTouchPoints: 1,
3556
+ // ~2 bits
3557
+ devicePixelRatio: 1,
3558
+ // ~3 bits but correlated with screen
3559
+ connection: 1,
3560
+ // network type — low entropy
3561
+ getBattery: 1
3562
+ // low entropy but privacy concern (removed from most browsers)
3563
+ };
3564
+ const MAX_FINGERPRINT = Object.values(FINGERPRINT_ENTROPY).reduce((a, b) => a + b, 0);
3565
+ const STORAGE_API_WEIGHT = {
3566
+ cookies: 4,
3567
+ // cross-domain capable, most abused
3568
+ localStorage: 3,
3569
+ // persistent, survives tab close
3570
+ indexedDB: 3,
3571
+ // large persistent storage
3572
+ sessionStorage: 1
3573
+ // session-scoped, less invasive
3574
+ };
3575
+ const MAX_STORAGE_API = Object.values(STORAGE_API_WEIGHT).reduce((a, b) => a + b, 0);
3576
+ const MONITOR_WEIGHT = {
3577
+ mutationObserver: 5,
3578
+ // sees all DOM changes — behavioral tracking
3579
+ intersectionObserver: 3,
3580
+ // viewport/scroll tracking
3581
+ windowName: 2
3582
+ // cross-origin data channel
3583
+ };
3584
+ const MAX_MONITOR = Object.values(MONITOR_WEIGHT).reduce((a, b) => a + b, 0);
3585
+ const DATA_SCOPE_WEIGHT = {
3586
+ "session-replay": 5,
3587
+ // records entire user session
3588
+ "heatmaps": 4,
3589
+ // tracks mouse movement / attention
3590
+ "user-identity": 4,
3591
+ // PII-adjacent
3592
+ "retargeting": 3,
3593
+ // cross-site ad following
3594
+ "audiences": 3,
3595
+ // user profiling
3596
+ "ab-testing": 2,
3597
+ // behavioral segmentation
3598
+ "form-submissions": 2,
3599
+ // captures input data
3600
+ "clicks": 1,
3601
+ "scrolls": 1,
3602
+ "conversions": 1,
3603
+ "events": 0,
3604
+ // basic analytics, expected
3605
+ "page-views": 0,
3606
+ // basic analytics, expected
3607
+ "transactions": 1,
3608
+ "errors": 0,
3609
+ // functional
3610
+ "video-engagement": 0,
3611
+ "tag-injection": 5
3612
+ // loads unknown third-party code — wildcard privacy risk
3613
+ };
3614
+ const KNOWN_UNDETECTED_APIS = {
3615
+ // reCAPTCHA: bot detection fingerprints via canvas, webgl, audio — heavily obfuscated
3616
+ googleRecaptcha: ["canvas", "webgl", "audioContext"]
3617
+ };
3618
+ const HEAVY_FP_APIS = ["canvas", "webgl", "audioContext", "rtcPeerConnection"];
3619
+ const KNOWN_FUNCTIONAL_APIS = {
3620
+ // Crisp: voice/video chat requires audio, WebRTC, and camera/mic enumeration
3621
+ crisp: ["audioContext", "rtcPeerConnection", "mediaDevices"],
3622
+ // Intercom: canvas used for UI rendering, not fingerprinting
3623
+ intercom: ["canvas"]
3624
+ };
3625
+ function computePrivacyRating(apis, cookies, network, trackedData, functionalApis) {
3626
+ const fingerprintApis = [];
3627
+ let fingerprintRaw = 0;
3628
+ for (const [api, weight] of Object.entries(FINGERPRINT_ENTROPY)) {
3629
+ if (apis[api]) {
3630
+ fingerprintRaw += weight;
3631
+ fingerprintApis.push(api);
3632
+ }
3633
+ }
3634
+ const fingerprintScore = Math.round(fingerprintRaw / MAX_FINGERPRINT * 30);
3635
+ const storageApis = [];
3636
+ let storageRaw = 0;
3637
+ for (const [api, weight] of Object.entries(STORAGE_API_WEIGHT)) {
3638
+ if (apis[api]) {
3639
+ storageRaw += weight;
3640
+ storageApis.push(api);
3641
+ }
3642
+ }
3643
+ const storageScore = Math.round(storageRaw / MAX_STORAGE_API * 10);
3644
+ const thirdPartyCookies = cookies.filter((c) => !c.firstParty).length;
3645
+ const longLivedCookies = cookies.filter((c) => c.lifetimeDays > 30).length;
3646
+ const cookieScore = Math.min(9, thirdPartyCookies * 3) + Math.min(6, longLivedCookies * 2);
3647
+ const persistenceScore = Math.min(25, storageScore + cookieScore);
3648
+ const domainCount = network.domains.length;
3649
+ const domainScore = Math.min(12, Math.max(0, domainCount - 1) * 4);
3650
+ const pixelQueryBytes = network.injectedElements.filter((e) => e.tag === "img" && e.src.includes("?")).reduce((sum, e) => sum + new URL(e.src).search.length, 0);
3651
+ const totalOutbound = network.outboundBytes + pixelQueryBytes;
3652
+ const outboundScore = totalOutbound === 0 ? 0 : Math.min(8, Math.ceil(totalOutbound / 250));
3653
+ const trackingPixels = network.injectedElements.filter((e) => e.tag === "img").length;
3654
+ const injectedIframes = network.injectedElements.filter((e) => e.tag === "iframe").length;
3655
+ const injectionScore = Math.min(5, trackingPixels * 3 + injectedIframes * 2);
3656
+ const networkScore = Math.min(25, domainScore + outboundScore + injectionScore);
3657
+ const monitorApis = [];
3658
+ let monitorRaw = 0;
3659
+ for (const [api, weight] of Object.entries(MONITOR_WEIGHT)) {
3660
+ if (apis[api]) {
3661
+ monitorRaw += weight;
3662
+ monitorApis.push(api);
3663
+ }
3664
+ }
3665
+ const monitorScore = Math.round(monitorRaw / MAX_MONITOR * 10);
3666
+ const scopeTypes = trackedData.filter((t) => (DATA_SCOPE_WEIGHT[t] ?? 0) > 0);
3667
+ const scopeRaw = trackedData.reduce((sum, t) => sum + (DATA_SCOPE_WEIGHT[t] ?? 0), 0);
3668
+ const scopeScore = Math.min(10, scopeRaw);
3669
+ const heavyFpApis = HEAVY_FP_APIS.filter((api) => apis[api] && !functionalApis?.has(api));
3670
+ const hasExfiltration = totalOutbound > 0 || domainCount > 1 || trackingPixels > 0 || apis.sendBeacon;
3671
+ const fpExfilScore = heavyFpApis.length > 0 && hasExfiltration ? Math.min(25, heavyFpApis.length * 9) : 0;
3672
+ const score = fingerprintScore + persistenceScore + networkScore + monitorScore + scopeScore + fpExfilScore;
3673
+ let grade;
3674
+ if (score <= 5)
3675
+ grade = "A+";
3676
+ else if (score <= 15)
3677
+ grade = "A";
3678
+ else if (score <= 30)
3679
+ grade = "B";
3680
+ else if (score <= 50)
3681
+ grade = "C";
3682
+ else if (score <= 70)
3683
+ grade = "D";
3684
+ else grade = "F";
3685
+ return {
3686
+ grade,
3687
+ score,
3688
+ breakdown: {
3689
+ fingerprinting: { score: fingerprintScore, apis: fingerprintApis },
3690
+ persistence: { score: persistenceScore, thirdPartyCookies, longLivedCookies, storageApis },
3691
+ network: { score: networkScore, domains: domainCount, outboundBytes: totalOutbound, trackingPixels },
3692
+ monitoring: { score: monitorScore, apis: monitorApis },
3693
+ dataScope: { score: scopeScore, types: scopeTypes },
3694
+ fpExfiltration: { score: fpExfilScore, heavyApis: heavyFpApis }
3695
+ }
3696
+ };
3697
+ }
3698
+ const CLS_RISK_TAGS = /* @__PURE__ */ new Set(["iframe", "img", "div", "video"]);
3699
+ function computeCwvEstimate(perf, network, apis) {
3700
+ const lcpImpactMs = perf.scriptDurationMs;
3701
+ const clsElements = network.injectedElements.filter((e) => CLS_RISK_TAGS.has(e.tag)).length;
3702
+ const clsRisk = clsElements > 0;
3703
+ const heavyScript = perf.scriptDurationMs > 15;
3704
+ const domObserver = apis.mutationObserver;
3705
+ const inpRiskLevel = heavyScript && domObserver ? "high" : heavyScript || domObserver ? "medium" : "low";
3706
+ return { lcpImpactMs, clsRisk, clsElements, inpRiskLevel };
3707
+ }
3708
+ function scoreSteps(value, steps) {
3709
+ let score = 0;
3710
+ for (const [threshold, points] of steps) {
3711
+ if (value >= threshold)
3712
+ score = points;
3713
+ }
3714
+ return score;
3715
+ }
3716
+ function computePerformanceRating(perf, transferKb, network, cwv) {
3717
+ const networkScore = scoreSteps(transferKb, [
3718
+ [5, 5],
3719
+ [15, 10],
3720
+ [30, 15],
3721
+ [60, 20],
3722
+ [120, 25],
3723
+ [250, 30]
3724
+ ]);
3725
+ const mainThreadScore = scoreSteps(perf.taskDurationMs, [
3726
+ [10, 5],
3727
+ [20, 10],
3728
+ [30, 18],
3729
+ [50, 25],
3730
+ [75, 30]
3731
+ ]);
3732
+ const memoryScore = scoreSteps(perf.heapDeltaKb, [
3733
+ [750, 5],
3734
+ [1e3, 10],
3735
+ [1500, 15],
3736
+ [2e3, 20]
3737
+ ]);
3738
+ const connectionScore = scoreSteps(network.requestCount, [
3739
+ [2, 3],
3740
+ [3, 5],
3741
+ [4, 7],
3742
+ [6, 10]
3743
+ ]);
3744
+ const cwvScore = (cwv.lcpImpactMs > 15 ? 3 : 0) + (cwv.clsRisk ? Math.min(4, cwv.clsElements * 2) : 0) + (cwv.inpRiskLevel === "high" ? 3 : cwv.inpRiskLevel === "medium" ? 1 : 0);
3745
+ const score = networkScore + mainThreadScore + memoryScore + connectionScore + cwvScore;
3746
+ let grade;
3747
+ if (score <= 5)
3748
+ grade = "A+";
3749
+ else if (score <= 15)
3750
+ grade = "A";
3751
+ else if (score <= 30)
3752
+ grade = "B";
3753
+ else if (score <= 50)
3754
+ grade = "C";
3755
+ else if (score <= 70)
3756
+ grade = "D";
3757
+ else grade = "F";
3758
+ return {
3759
+ grade,
3760
+ score,
3761
+ breakdown: {
3762
+ networkCost: { score: networkScore, transferKb },
3763
+ mainThread: { score: mainThreadScore, taskDurationMs: perf.taskDurationMs, scriptDurationMs: perf.scriptDurationMs },
3764
+ memory: { score: memoryScore, heapDeltaKb: perf.heapDeltaKb },
3765
+ connections: { score: connectionScore, requestCount: network.requestCount },
3766
+ cwvRisk: { score: cwvScore, lcpImpactMs: cwv.lcpImpactMs, clsRisk: cwv.clsRisk, inpRiskLevel: cwv.inpRiskLevel }
3767
+ }
3768
+ };
3769
+ }
3770
+ const USE_SCRIPT_RE = /^useScript/;
3771
+ const WORD_SPLIT_RE = /[\s-]+/;
3772
+ function computePrivacyLevel(privacy) {
3773
+ if (!privacy)
3774
+ return "unknown";
3775
+ const flags = Object.values(privacy);
3776
+ if (flags.every(Boolean))
3777
+ return "full";
3778
+ if (flags.some(Boolean))
3779
+ return "partial";
3780
+ return "none";
3781
+ }
3782
+ function extractDomains(proxyDomains) {
3783
+ return [...proxyDomains].sort();
3784
+ }
3785
+ function deriveMetaKey(importName, label) {
3786
+ if (importName) {
3787
+ const stripped = importName.replace(USE_SCRIPT_RE, "");
3788
+ return stripped.charAt(0).toLowerCase() + stripped.slice(1);
3789
+ }
3790
+ if (label) {
3791
+ const words = label.split(WORD_SPLIT_RE);
3792
+ return words.map(
3793
+ (w, i) => i === 0 ? w.toLowerCase() : w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
3794
+ ).join("");
3795
+ }
3796
+ return "";
3797
+ }
3798
+ async function getScriptStats() {
3799
+ const { registry } = await import('./registry.mjs');
3800
+ const entries = await registry();
3801
+ const proxyConfigs = getAllProxyConfigs();
3802
+ const sizes = scriptSizes;
3803
+ return entries.map((entry) => {
3804
+ const id = entry.registryKey || deriveMetaKey(entry.import?.name, entry.label);
3805
+ const meta = id && id in scriptMeta ? scriptMeta[id] : void 0;
3806
+ const size = sizes[id || ""];
3807
+ const proxyConfigKey = entry.proxy === false ? void 0 : entry.proxy || entry.registryKey;
3808
+ const proxyConfig = proxyConfigKey ? proxyConfigs[proxyConfigKey] : void 0;
3809
+ let loadingMethod = "cdn";
3810
+ if (entry.src === false)
3811
+ loadingMethod = "npm";
3812
+ else if (!entry.src && typeof entry.scriptBundling === "function")
3813
+ loadingMethod = "dynamic";
3814
+ const privacy = proxyConfig?.privacy ?? null;
3815
+ const domains = extractDomains(proxyConfig?.domains ?? []);
3816
+ const endpoints = domains.length;
3817
+ const emptyApis = {};
3818
+ const emptyNetwork = { requestCount: 0, domains: [], outboundBytes: 0, inboundBytes: 0, injectedElements: [] };
3819
+ const emptyPerf = { taskDurationMs: 0, scriptDurationMs: 0, heapDeltaKb: 0 };
3820
+ const apis = { ...size?.apis ?? emptyApis };
3821
+ const knownApis = KNOWN_UNDETECTED_APIS[id];
3822
+ if (knownApis) {
3823
+ for (const api of knownApis) apis[api] = true;
3824
+ }
3825
+ const cookies = size?.cookies ?? [];
3826
+ const network = size?.network ?? emptyNetwork;
3827
+ const perf = size?.performance ?? emptyPerf;
3828
+ const trackedData = meta?.trackedData ?? [];
3829
+ const scripts = size?.scripts ?? [];
3830
+ const transferKb = size?.totalTransferKb ?? 0;
3831
+ const primaryTransferKb = scripts.length > 0 ? Number.parseFloat(scripts.filter((s) => s.initiatorType !== "secondary").reduce((sum, s) => sum + s.transferKb, 0).toFixed(1)) : transferKb;
3832
+ const cwvEstimate = computeCwvEstimate(perf, network, apis);
3833
+ return {
3834
+ id,
3835
+ label: entry.label || id || "",
3836
+ category: entry.category || "unknown",
3837
+ scripts,
3838
+ totalTransferKb: transferKb,
3839
+ totalDecodedKb: size?.totalDecodedKb ?? 0,
3840
+ trackedData,
3841
+ collectsWebVitals: size?.collectsWebVitals ?? false,
3842
+ apis,
3843
+ privacyRating: computePrivacyRating(apis, cookies, network, trackedData, KNOWN_FUNCTIONAL_APIS[id] ? new Set(KNOWN_FUNCTIONAL_APIS[id]) : void 0),
3844
+ cookies,
3845
+ network,
3846
+ performance: perf,
3847
+ performanceRating: computePerformanceRating(perf, primaryTransferKb, network, cwvEstimate),
3848
+ cwvEstimate,
3849
+ hasBundling: entry.scriptBundling !== false && entry.scriptBundling !== void 0,
3850
+ hasProxy: !!proxyConfig,
3851
+ proxyDomains: domains,
3852
+ proxyEndpoints: endpoints,
3853
+ privacy,
3854
+ privacyLevel: computePrivacyLevel(privacy),
3855
+ loadingMethod
3856
+ };
3857
+ });
3858
+ }
3859
+
3860
+ export { getScriptStats };