@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
@@ -0,0 +1,202 @@
1
+ type TrackedDataType = 'page-views' | 'events' | 'conversions' | 'user-identity' | 'session-replay' | 'heatmaps' | 'clicks' | 'scrolls' | 'retargeting' | 'audiences' | 'form-submissions' | 'video-engagement' | 'transactions' | 'errors' | 'tag-injection' | 'ab-testing';
2
+
3
+ interface ScriptPrivacy {
4
+ ip: boolean;
5
+ userAgent: boolean;
6
+ language: boolean;
7
+ screen: boolean;
8
+ timezone: boolean;
9
+ hardware: boolean;
10
+ }
11
+ interface ScriptSizeDetail {
12
+ url: string;
13
+ transferKb: number;
14
+ decodedKb: number;
15
+ encoding: string;
16
+ durationMs: number;
17
+ initiatorType: string;
18
+ protocol: string;
19
+ }
20
+ interface ScriptApis {
21
+ cookies: boolean;
22
+ localStorage: boolean;
23
+ sessionStorage: boolean;
24
+ indexedDB: boolean;
25
+ canvas: boolean;
26
+ webgl: boolean;
27
+ audioContext: boolean;
28
+ userAgent: boolean;
29
+ doNotTrack: boolean;
30
+ hardwareConcurrency: boolean;
31
+ deviceMemory: boolean;
32
+ plugins: boolean;
33
+ languages: boolean;
34
+ screen: boolean;
35
+ timezone: boolean;
36
+ platform: boolean;
37
+ vendor: boolean;
38
+ connection: boolean;
39
+ maxTouchPoints: boolean;
40
+ devicePixelRatio: boolean;
41
+ mediaDevices: boolean;
42
+ getBattery: boolean;
43
+ referrer: boolean;
44
+ windowName: boolean;
45
+ rtcPeerConnection: boolean;
46
+ geolocation: boolean;
47
+ serviceWorker: boolean;
48
+ cacheApi: boolean;
49
+ sendBeacon: boolean;
50
+ fetch: boolean;
51
+ xhr: boolean;
52
+ websocket: boolean;
53
+ mutationObserver: boolean;
54
+ performanceObserver: boolean;
55
+ intersectionObserver: boolean;
56
+ }
57
+ type PrivacyGrade = 'A+' | 'A' | 'B' | 'C' | 'D' | 'F';
58
+ interface PrivacyRating {
59
+ /** Overall letter grade */
60
+ grade: PrivacyGrade;
61
+ /** 0–100, higher = more invasive */
62
+ score: number;
63
+ /** Breakdown by privacy concern category */
64
+ breakdown: {
65
+ /** Browser fingerprinting APIs — entropy-weighted per AmIUnique/Panopticlick research (0–30) */
66
+ fingerprinting: {
67
+ score: number;
68
+ apis: string[];
69
+ };
70
+ /** Persistent storage + cookie tracking (0–25) */
71
+ persistence: {
72
+ score: number;
73
+ thirdPartyCookies: number;
74
+ longLivedCookies: number;
75
+ storageApis: string[];
76
+ };
77
+ /** Cross-domain data exfiltration & tracking network (0–25) */
78
+ network: {
79
+ score: number;
80
+ domains: number;
81
+ outboundBytes: number;
82
+ trackingPixels: number;
83
+ };
84
+ /** Behavioral observation APIs (0–10) */
85
+ monitoring: {
86
+ score: number;
87
+ apis: string[];
88
+ };
89
+ /** Data collection scope — what types of data are tracked (0–10) */
90
+ dataScope: {
91
+ score: number;
92
+ types: string[];
93
+ };
94
+ /** Fingerprint exfiltration — heavy FP APIs combined with outbound channels (0–25) */
95
+ fpExfiltration: {
96
+ score: number;
97
+ heavyApis: string[];
98
+ };
99
+ };
100
+ }
101
+ interface ScriptCookie {
102
+ name: string;
103
+ domain: string;
104
+ path: string;
105
+ httpOnly: boolean;
106
+ secure: boolean;
107
+ sameSite: string;
108
+ session: boolean;
109
+ lifetimeDays: number;
110
+ firstParty: boolean;
111
+ }
112
+ interface NetworkSummary {
113
+ requestCount: number;
114
+ domains: string[];
115
+ outboundBytes: number;
116
+ inboundBytes: number;
117
+ injectedElements: {
118
+ tag: string;
119
+ src: string;
120
+ }[];
121
+ }
122
+ interface CwvEstimate {
123
+ /** Estimated LCP delay: scriptDurationMs blocks rendering during page load */
124
+ lcpImpactMs: number;
125
+ /** CLS risk: true if script injects visible DOM elements (iframes, images) without reserved space */
126
+ clsRisk: boolean;
127
+ /** Number of visible elements injected that could cause layout shifts */
128
+ clsElements: number;
129
+ /** INP risk level based on script weight + DOM observation */
130
+ inpRiskLevel: 'low' | 'medium' | 'high';
131
+ }
132
+ interface PerformanceSummary {
133
+ taskDurationMs: number;
134
+ scriptDurationMs: number;
135
+ heapDeltaKb: number;
136
+ }
137
+ type PerformanceGrade = 'A+' | 'A' | 'B' | 'C' | 'D' | 'F';
138
+ interface PerformanceRating {
139
+ /** Overall letter grade */
140
+ grade: PerformanceGrade;
141
+ /** 0–100, higher = worse performance impact */
142
+ score: number;
143
+ /** Breakdown by impact area */
144
+ breakdown: {
145
+ /** Network cost — transfer size relative to performance budgets (0–30) */
146
+ networkCost: {
147
+ score: number;
148
+ transferKb: number;
149
+ };
150
+ /** Main thread blocking — task duration that delays interactivity (0–30) */
151
+ mainThread: {
152
+ score: number;
153
+ taskDurationMs: number;
154
+ scriptDurationMs: number;
155
+ };
156
+ /** Memory pressure — heap allocation impact (0–20) */
157
+ memory: {
158
+ score: number;
159
+ heapDeltaKb: number;
160
+ };
161
+ /** Connection overhead — additional HTTP requests (0–10) */
162
+ connections: {
163
+ score: number;
164
+ requestCount: number;
165
+ };
166
+ /** CWV risk — estimated Core Web Vitals impact (0–10) */
167
+ cwvRisk: {
168
+ score: number;
169
+ lcpImpactMs: number;
170
+ clsRisk: boolean;
171
+ inpRiskLevel: string;
172
+ };
173
+ };
174
+ }
175
+ interface ScriptStats {
176
+ id: string;
177
+ label: string;
178
+ category: string;
179
+ scripts: ScriptSizeDetail[];
180
+ totalTransferKb: number;
181
+ totalDecodedKb: number;
182
+ trackedData: TrackedDataType[];
183
+ collectsWebVitals: boolean;
184
+ apis: ScriptApis;
185
+ privacyRating: PrivacyRating;
186
+ cookies: ScriptCookie[];
187
+ network: NetworkSummary;
188
+ performance: PerformanceSummary;
189
+ performanceRating: PerformanceRating;
190
+ cwvEstimate: CwvEstimate;
191
+ hasBundling: boolean;
192
+ hasProxy: boolean;
193
+ proxyDomains: string[];
194
+ proxyEndpoints: number;
195
+ privacy: ScriptPrivacy | null;
196
+ privacyLevel: 'full' | 'partial' | 'none' | 'unknown';
197
+ loadingMethod: 'cdn' | 'npm' | 'dynamic';
198
+ }
199
+ declare function getScriptStats(): Promise<ScriptStats[]>;
200
+
201
+ export { getScriptStats };
202
+ export type { CwvEstimate, NetworkSummary, PerformanceGrade, PerformanceRating, PerformanceSummary, PrivacyGrade, PrivacyRating, ScriptApis, ScriptCookie, ScriptPrivacy, ScriptSizeDetail, ScriptStats, TrackedDataType };
@@ -0,0 +1,202 @@
1
+ type TrackedDataType = 'page-views' | 'events' | 'conversions' | 'user-identity' | 'session-replay' | 'heatmaps' | 'clicks' | 'scrolls' | 'retargeting' | 'audiences' | 'form-submissions' | 'video-engagement' | 'transactions' | 'errors' | 'tag-injection' | 'ab-testing';
2
+
3
+ interface ScriptPrivacy {
4
+ ip: boolean;
5
+ userAgent: boolean;
6
+ language: boolean;
7
+ screen: boolean;
8
+ timezone: boolean;
9
+ hardware: boolean;
10
+ }
11
+ interface ScriptSizeDetail {
12
+ url: string;
13
+ transferKb: number;
14
+ decodedKb: number;
15
+ encoding: string;
16
+ durationMs: number;
17
+ initiatorType: string;
18
+ protocol: string;
19
+ }
20
+ interface ScriptApis {
21
+ cookies: boolean;
22
+ localStorage: boolean;
23
+ sessionStorage: boolean;
24
+ indexedDB: boolean;
25
+ canvas: boolean;
26
+ webgl: boolean;
27
+ audioContext: boolean;
28
+ userAgent: boolean;
29
+ doNotTrack: boolean;
30
+ hardwareConcurrency: boolean;
31
+ deviceMemory: boolean;
32
+ plugins: boolean;
33
+ languages: boolean;
34
+ screen: boolean;
35
+ timezone: boolean;
36
+ platform: boolean;
37
+ vendor: boolean;
38
+ connection: boolean;
39
+ maxTouchPoints: boolean;
40
+ devicePixelRatio: boolean;
41
+ mediaDevices: boolean;
42
+ getBattery: boolean;
43
+ referrer: boolean;
44
+ windowName: boolean;
45
+ rtcPeerConnection: boolean;
46
+ geolocation: boolean;
47
+ serviceWorker: boolean;
48
+ cacheApi: boolean;
49
+ sendBeacon: boolean;
50
+ fetch: boolean;
51
+ xhr: boolean;
52
+ websocket: boolean;
53
+ mutationObserver: boolean;
54
+ performanceObserver: boolean;
55
+ intersectionObserver: boolean;
56
+ }
57
+ type PrivacyGrade = 'A+' | 'A' | 'B' | 'C' | 'D' | 'F';
58
+ interface PrivacyRating {
59
+ /** Overall letter grade */
60
+ grade: PrivacyGrade;
61
+ /** 0–100, higher = more invasive */
62
+ score: number;
63
+ /** Breakdown by privacy concern category */
64
+ breakdown: {
65
+ /** Browser fingerprinting APIs — entropy-weighted per AmIUnique/Panopticlick research (0–30) */
66
+ fingerprinting: {
67
+ score: number;
68
+ apis: string[];
69
+ };
70
+ /** Persistent storage + cookie tracking (0–25) */
71
+ persistence: {
72
+ score: number;
73
+ thirdPartyCookies: number;
74
+ longLivedCookies: number;
75
+ storageApis: string[];
76
+ };
77
+ /** Cross-domain data exfiltration & tracking network (0–25) */
78
+ network: {
79
+ score: number;
80
+ domains: number;
81
+ outboundBytes: number;
82
+ trackingPixels: number;
83
+ };
84
+ /** Behavioral observation APIs (0–10) */
85
+ monitoring: {
86
+ score: number;
87
+ apis: string[];
88
+ };
89
+ /** Data collection scope — what types of data are tracked (0–10) */
90
+ dataScope: {
91
+ score: number;
92
+ types: string[];
93
+ };
94
+ /** Fingerprint exfiltration — heavy FP APIs combined with outbound channels (0–25) */
95
+ fpExfiltration: {
96
+ score: number;
97
+ heavyApis: string[];
98
+ };
99
+ };
100
+ }
101
+ interface ScriptCookie {
102
+ name: string;
103
+ domain: string;
104
+ path: string;
105
+ httpOnly: boolean;
106
+ secure: boolean;
107
+ sameSite: string;
108
+ session: boolean;
109
+ lifetimeDays: number;
110
+ firstParty: boolean;
111
+ }
112
+ interface NetworkSummary {
113
+ requestCount: number;
114
+ domains: string[];
115
+ outboundBytes: number;
116
+ inboundBytes: number;
117
+ injectedElements: {
118
+ tag: string;
119
+ src: string;
120
+ }[];
121
+ }
122
+ interface CwvEstimate {
123
+ /** Estimated LCP delay: scriptDurationMs blocks rendering during page load */
124
+ lcpImpactMs: number;
125
+ /** CLS risk: true if script injects visible DOM elements (iframes, images) without reserved space */
126
+ clsRisk: boolean;
127
+ /** Number of visible elements injected that could cause layout shifts */
128
+ clsElements: number;
129
+ /** INP risk level based on script weight + DOM observation */
130
+ inpRiskLevel: 'low' | 'medium' | 'high';
131
+ }
132
+ interface PerformanceSummary {
133
+ taskDurationMs: number;
134
+ scriptDurationMs: number;
135
+ heapDeltaKb: number;
136
+ }
137
+ type PerformanceGrade = 'A+' | 'A' | 'B' | 'C' | 'D' | 'F';
138
+ interface PerformanceRating {
139
+ /** Overall letter grade */
140
+ grade: PerformanceGrade;
141
+ /** 0–100, higher = worse performance impact */
142
+ score: number;
143
+ /** Breakdown by impact area */
144
+ breakdown: {
145
+ /** Network cost — transfer size relative to performance budgets (0–30) */
146
+ networkCost: {
147
+ score: number;
148
+ transferKb: number;
149
+ };
150
+ /** Main thread blocking — task duration that delays interactivity (0–30) */
151
+ mainThread: {
152
+ score: number;
153
+ taskDurationMs: number;
154
+ scriptDurationMs: number;
155
+ };
156
+ /** Memory pressure — heap allocation impact (0–20) */
157
+ memory: {
158
+ score: number;
159
+ heapDeltaKb: number;
160
+ };
161
+ /** Connection overhead — additional HTTP requests (0–10) */
162
+ connections: {
163
+ score: number;
164
+ requestCount: number;
165
+ };
166
+ /** CWV risk — estimated Core Web Vitals impact (0–10) */
167
+ cwvRisk: {
168
+ score: number;
169
+ lcpImpactMs: number;
170
+ clsRisk: boolean;
171
+ inpRiskLevel: string;
172
+ };
173
+ };
174
+ }
175
+ interface ScriptStats {
176
+ id: string;
177
+ label: string;
178
+ category: string;
179
+ scripts: ScriptSizeDetail[];
180
+ totalTransferKb: number;
181
+ totalDecodedKb: number;
182
+ trackedData: TrackedDataType[];
183
+ collectsWebVitals: boolean;
184
+ apis: ScriptApis;
185
+ privacyRating: PrivacyRating;
186
+ cookies: ScriptCookie[];
187
+ network: NetworkSummary;
188
+ performance: PerformanceSummary;
189
+ performanceRating: PerformanceRating;
190
+ cwvEstimate: CwvEstimate;
191
+ hasBundling: boolean;
192
+ hasProxy: boolean;
193
+ proxyDomains: string[];
194
+ proxyEndpoints: number;
195
+ privacy: ScriptPrivacy | null;
196
+ privacyLevel: 'full' | 'partial' | 'none' | 'unknown';
197
+ loadingMethod: 'cdn' | 'npm' | 'dynamic';
198
+ }
199
+ declare function getScriptStats(): Promise<ScriptStats[]>;
200
+
201
+ export { getScriptStats };
202
+ export type { CwvEstimate, NetworkSummary, PerformanceGrade, PerformanceRating, PerformanceSummary, PrivacyGrade, PrivacyRating, ScriptApis, ScriptCookie, ScriptPrivacy, ScriptSizeDetail, ScriptStats, TrackedDataType };