@nuxt/scripts 1.0.0-beta.7 → 1.0.0-rc.10

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 (300) hide show
  1. package/bin/cli.mjs +2 -0
  2. package/dist/cli.d.mts +2 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.mjs +50 -0
  5. package/dist/devtools-client/200.html +1 -0
  6. package/dist/devtools-client/404.html +1 -0
  7. package/dist/devtools-client/_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2 +0 -0
  8. package/dist/devtools-client/_fonts/4qBuU9MRVUlPZNPSF7Xom_sK8RBEnfYu-9VXFrdq8A8-8TDwLE1HAj1sQn7XxVWtM_7sIaPM-DTdO3Pf8U2DF1U.woff2 +0 -0
  9. package/dist/devtools-client/_fonts/6dYsbWUd_BpKJ7mdDihgOcya1gHXLpJBuMYXux3WMjE-q3fYNS8YbW5n7ZeXI2vSNgkRWW5VDPKAl51SNTjG2qk.woff2 +0 -0
  10. package/dist/devtools-client/_fonts/Lr-hqqZZsYmCt0ITUlr1CUrWim9fsKvoDFZliMxgNHY-iTa_Yt_PzhOY9TX7ZXdSlEPim6iRt92xhECwaxWxd5w.woff2 +0 -0
  11. package/dist/devtools-client/_fonts/OknHvWI6KtYn1JQBzX7eSpNDBQ8520F9TvSUJYkVf6A-xeZn9253svK_8Q2LD0XEruY_MnEsuCRO5LenPoggC0Y.woff2 +0 -0
  12. package/dist/devtools-client/_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2 +0 -0
  13. package/dist/devtools-client/_fonts/UA7OtwYHwGN_HjcVGTdmiQxUit7FlqkCwxVUWSeXVnQ-B4OXCFOL_tWrYODpQTc07aMaj0c2cewTOmBRWR9tD-A.woff2 +0 -0
  14. package/dist/devtools-client/_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2 +0 -0
  15. package/dist/devtools-client/_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2 +0 -0
  16. package/dist/devtools-client/_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2 +0 -0
  17. package/dist/devtools-client/_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2 +0 -0
  18. package/dist/devtools-client/_fonts/qxAYvKsXWeYv731eb-h5TRurcdIP_W44mpNdX-HABAk-zUDeMEFlNtNbrwvT9JxLEBg0TphGy70O6RfIoIX_ZwU.woff2 +0 -0
  19. package/dist/devtools-client/_nuxt/B8PEiB0p.js +1 -0
  20. package/dist/devtools-client/_nuxt/BgPDxVUn.js +1 -0
  21. package/dist/devtools-client/_nuxt/BmlapxLP.js +1 -0
  22. package/dist/devtools-client/_nuxt/CM2vefXI.js +188 -0
  23. package/dist/devtools-client/_nuxt/DAF5Qk9P.js +1 -0
  24. package/dist/devtools-client/_nuxt/Dx6HhVmj.js +1 -0
  25. package/dist/devtools-client/_nuxt/S8LiR9M1.js +1 -0
  26. package/dist/devtools-client/_nuxt/builds/latest.json +1 -0
  27. package/dist/devtools-client/_nuxt/builds/meta/5458a3f2-af35-479c-8852-bf6f92fed611.json +1 -0
  28. package/dist/devtools-client/_nuxt/entry.BKkVrcJj.css +1 -0
  29. package/dist/devtools-client/_nuxt/error-404.d44aGwWI.css +1 -0
  30. package/dist/devtools-client/_nuxt/error-500.NthMfIEt.css +1 -0
  31. package/dist/devtools-client/_nuxt/first-party.C8Ha4JLM.css +1 -0
  32. package/dist/devtools-client/_nuxt/index.DZD1lwyI.css +1 -0
  33. package/dist/devtools-client/_nuxt/registry.B9lnjF_b.css +1 -0
  34. package/dist/devtools-client/_nuxt/vBkR1GJq.js +1 -0
  35. package/dist/devtools-client/_nuxt/wDzz0qaB.js +1 -0
  36. package/dist/devtools-client/docs/index.html +1 -0
  37. package/dist/devtools-client/first-party/index.html +1 -0
  38. package/dist/devtools-client/index.html +1 -0
  39. package/dist/devtools-client/registry/index.html +1 -0
  40. package/dist/module.d.mts +89 -80
  41. package/dist/module.d.ts +185 -0
  42. package/dist/module.json +1 -1
  43. package/dist/module.mjs +1056 -756
  44. package/dist/registry.d.mts +92 -4
  45. package/dist/registry.d.ts +94 -0
  46. package/dist/registry.mjs +668 -326
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +77 -165
  48. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +148 -227
  49. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +77 -165
  50. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +6 -55
  51. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +12 -83
  52. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +6 -55
  53. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
  54. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +24 -38
  55. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
  56. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
  57. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +60 -0
  58. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
  59. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
  60. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
  61. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
  62. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +11 -8
  63. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +57 -57
  64. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +11 -8
  65. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +24 -42
  66. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +71 -74
  67. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +24 -42
  68. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +19 -20
  69. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +85 -38
  70. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +19 -20
  71. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +98 -0
  72. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +263 -0
  73. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +98 -0
  74. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +10 -3
  75. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +9 -41
  76. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +10 -3
  77. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
  78. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +23 -38
  79. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
  80. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
  81. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +23 -38
  82. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
  83. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
  84. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +24 -38
  85. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
  86. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.d.vue.ts +200 -0
  87. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue +170 -0
  88. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue.d.ts +200 -0
  89. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  90. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  91. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +10 -0
  92. package/dist/runtime/components/GoogleMaps/injectionKeys.js +2 -0
  93. package/dist/runtime/components/GoogleMaps/types.d.ts +42 -0
  94. package/dist/runtime/components/GoogleMaps/types.js +1 -0
  95. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +98 -0
  96. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +126 -0
  97. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +83 -0
  98. package/dist/runtime/components/ScriptBlueskyEmbed.vue +91 -0
  99. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +83 -0
  100. package/dist/runtime/components/ScriptCarbonAds.d.vue.ts +4 -7
  101. package/dist/runtime/components/ScriptCarbonAds.vue +1 -0
  102. package/dist/runtime/components/ScriptCarbonAds.vue.d.ts +4 -7
  103. package/dist/runtime/components/ScriptCrisp.d.vue.ts +7 -11
  104. package/dist/runtime/components/ScriptCrisp.vue +2 -1
  105. package/dist/runtime/components/ScriptCrisp.vue.d.ts +7 -11
  106. package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +4 -7
  107. package/dist/runtime/components/ScriptGoogleAdsense.vue +2 -1
  108. package/dist/runtime/components/ScriptGoogleAdsense.vue.d.ts +4 -7
  109. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  110. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  111. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  112. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +12 -15
  113. package/dist/runtime/components/ScriptInstagramEmbed.vue +11 -3
  114. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +12 -15
  115. package/dist/runtime/components/ScriptIntercom.d.vue.ts +7 -11
  116. package/dist/runtime/components/ScriptIntercom.vue +5 -3
  117. package/dist/runtime/components/ScriptIntercom.vue.d.ts +7 -11
  118. package/dist/runtime/components/ScriptLemonSqueezy.d.vue.ts +2 -3
  119. package/dist/runtime/components/ScriptLemonSqueezy.vue +1 -0
  120. package/dist/runtime/components/ScriptLemonSqueezy.vue.d.ts +2 -3
  121. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -37
  122. package/dist/runtime/components/ScriptPayPalButtons.vue +49 -79
  123. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -37
  124. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -28
  125. package/dist/runtime/components/ScriptPayPalMessages.vue +47 -50
  126. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -28
  127. package/dist/runtime/components/ScriptStripePricingTable.d.vue.ts +5 -9
  128. package/dist/runtime/components/ScriptStripePricingTable.vue +3 -2
  129. package/dist/runtime/components/ScriptStripePricingTable.vue.d.ts +5 -9
  130. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +17 -11
  131. package/dist/runtime/components/ScriptVimeoPlayer.vue +14 -10
  132. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +17 -11
  133. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +10 -14
  134. package/dist/runtime/components/ScriptXEmbed.vue +21 -12
  135. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +10 -14
  136. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +10 -15
  137. package/dist/runtime/components/ScriptYouTubePlayer.vue +12 -5
  138. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +10 -15
  139. package/dist/runtime/composables/useScript.js +159 -8
  140. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  141. package/dist/runtime/composables/useScriptProxyToken.d.ts +12 -0
  142. package/dist/runtime/composables/useScriptProxyToken.js +4 -0
  143. package/dist/runtime/composables/useScriptProxyUrl.d.ts +12 -0
  144. package/dist/runtime/composables/useScriptProxyUrl.js +27 -0
  145. package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
  146. package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
  147. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  148. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  149. package/dist/runtime/devtools-standalone-bridge.client.d.ts +8 -0
  150. package/dist/runtime/devtools-standalone-bridge.client.js +50 -0
  151. package/dist/runtime/plugins/proxy-token.server.d.ts +10 -0
  152. package/dist/runtime/plugins/proxy-token.server.js +17 -0
  153. package/dist/runtime/registry/bing-uet.d.ts +198 -0
  154. package/dist/runtime/registry/bing-uet.js +43 -0
  155. package/dist/runtime/registry/bluesky-embed.d.ts +112 -0
  156. package/dist/runtime/registry/bluesky-embed.js +68 -0
  157. package/dist/runtime/registry/clarity.d.ts +16 -17
  158. package/dist/runtime/registry/clarity.js +33 -31
  159. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  160. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  161. package/dist/runtime/registry/crisp.d.ts +10 -40
  162. package/dist/runtime/registry/crisp.js +2 -33
  163. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  164. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  165. package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
  166. package/dist/runtime/registry/fathom-analytics.js +3 -25
  167. package/dist/runtime/registry/google-adsense.d.ts +3 -11
  168. package/dist/runtime/registry/google-adsense.js +2 -11
  169. package/dist/runtime/registry/google-analytics.d.ts +9 -7
  170. package/dist/runtime/registry/google-analytics.js +15 -9
  171. package/dist/runtime/registry/google-maps.d.ts +3 -9
  172. package/dist/runtime/registry/google-maps.js +2 -8
  173. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  174. package/dist/runtime/registry/google-recaptcha.js +4 -12
  175. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  176. package/dist/runtime/registry/google-sign-in.js +2 -22
  177. package/dist/runtime/registry/google-tag-manager.d.ts +8 -29
  178. package/dist/runtime/registry/google-tag-manager.js +14 -28
  179. package/dist/runtime/registry/gravatar.d.ts +26 -0
  180. package/dist/runtime/registry/gravatar.js +33 -0
  181. package/dist/runtime/registry/hotjar.d.ts +4 -6
  182. package/dist/runtime/registry/hotjar.js +2 -5
  183. package/dist/runtime/registry/instagram-embed.d.ts +3 -18
  184. package/dist/runtime/registry/instagram-embed.js +4 -19
  185. package/dist/runtime/registry/intercom.d.ts +5 -13
  186. package/dist/runtime/registry/intercom.js +2 -12
  187. package/dist/runtime/registry/matomo-analytics.d.ts +12 -15
  188. package/dist/runtime/registry/matomo-analytics.js +31 -13
  189. package/dist/runtime/registry/meta-pixel.d.ts +12 -8
  190. package/dist/runtime/registry/meta-pixel.js +12 -5
  191. package/dist/runtime/registry/mixpanel-analytics.d.ts +32 -0
  192. package/dist/runtime/registry/mixpanel-analytics.js +58 -0
  193. package/dist/runtime/registry/npm.d.ts +3 -7
  194. package/dist/runtime/registry/npm.js +2 -9
  195. package/dist/runtime/registry/paypal.d.ts +4 -25
  196. package/dist/runtime/registry/paypal.js +3 -66
  197. package/dist/runtime/registry/plausible-analytics.js +19 -14
  198. package/dist/runtime/registry/posthog.d.ts +18 -14
  199. package/dist/runtime/registry/posthog.js +18 -16
  200. package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
  201. package/dist/runtime/registry/reddit-pixel.js +2 -4
  202. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  203. package/dist/runtime/registry/rybbit-analytics.js +10 -20
  204. package/dist/runtime/registry/schemas.d.ts +1047 -0
  205. package/dist/runtime/registry/schemas.js +1004 -0
  206. package/dist/runtime/registry/segment.d.ts +2 -5
  207. package/dist/runtime/registry/segment.js +2 -5
  208. package/dist/runtime/registry/snapchat-pixel.d.ts +5 -34
  209. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  210. package/dist/runtime/registry/stripe.d.ts +3 -4
  211. package/dist/runtime/registry/stripe.js +2 -4
  212. package/dist/runtime/registry/tiktok-pixel.d.ts +20 -9
  213. package/dist/runtime/registry/tiktok-pixel.js +24 -7
  214. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  215. package/dist/runtime/registry/umami-analytics.js +2 -36
  216. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  217. package/dist/runtime/registry/vercel-analytics.js +84 -0
  218. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  219. package/dist/runtime/registry/vimeo-player.js +1 -1
  220. package/dist/runtime/registry/x-embed.d.ts +3 -21
  221. package/dist/runtime/registry/x-embed.js +2 -21
  222. package/dist/runtime/registry/x-pixel.d.ts +4 -7
  223. package/dist/runtime/registry/x-pixel.js +2 -5
  224. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  225. package/dist/runtime/registry/youtube-player.js +1 -1
  226. package/dist/runtime/server/bluesky-embed-image.d.ts +2 -0
  227. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  228. package/dist/runtime/server/bluesky-embed.d.ts +2 -0
  229. package/dist/runtime/server/bluesky-embed.js +78 -0
  230. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  231. package/dist/runtime/server/google-maps-geocode-proxy.js +38 -0
  232. package/dist/runtime/server/google-static-maps-proxy.d.ts +1 -1
  233. package/dist/runtime/server/google-static-maps-proxy.js +18 -23
  234. package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
  235. package/dist/runtime/server/gravatar-proxy.js +46 -0
  236. package/dist/runtime/server/instagram-embed-asset.d.ts +1 -1
  237. package/dist/runtime/server/instagram-embed-asset.js +8 -41
  238. package/dist/runtime/server/instagram-embed-image.d.ts +1 -1
  239. package/dist/runtime/server/instagram-embed-image.js +6 -53
  240. package/dist/runtime/server/instagram-embed.d.ts +1 -0
  241. package/dist/runtime/server/instagram-embed.js +82 -40
  242. package/dist/runtime/server/proxy-handler.js +102 -85
  243. package/dist/runtime/server/utils/cached-upstream.d.ts +55 -0
  244. package/dist/runtime/server/utils/cached-upstream.js +65 -0
  245. package/dist/runtime/server/utils/embed-rewriters.d.ts +19 -0
  246. package/dist/runtime/server/utils/embed-rewriters.js +41 -0
  247. package/dist/runtime/server/utils/image-proxy.d.ts +14 -0
  248. package/dist/runtime/server/utils/image-proxy.js +73 -0
  249. package/dist/runtime/server/utils/instagram-embed.d.ts +16 -0
  250. package/dist/runtime/server/utils/instagram-embed.js +153 -0
  251. package/dist/runtime/server/utils/privacy.d.ts +1 -10
  252. package/dist/runtime/server/utils/privacy.js +60 -40
  253. package/dist/runtime/server/utils/proxy-url.d.ts +9 -0
  254. package/dist/runtime/server/utils/proxy-url.js +21 -0
  255. package/dist/runtime/server/utils/sign-constants.d.ts +16 -0
  256. package/dist/runtime/server/utils/sign-constants.js +5 -0
  257. package/dist/runtime/server/utils/sign.d.ts +101 -0
  258. package/dist/runtime/server/utils/sign.js +91 -0
  259. package/dist/runtime/server/utils/withSigning.d.ts +23 -0
  260. package/dist/runtime/server/utils/withSigning.js +19 -0
  261. package/dist/runtime/server/x-embed-image.d.ts +1 -1
  262. package/dist/runtime/server/x-embed-image.js +5 -49
  263. package/dist/runtime/server/x-embed.js +26 -6
  264. package/dist/runtime/types.d.ts +311 -55
  265. package/dist/runtime/types.js +1 -2
  266. package/dist/runtime/utils/pure.d.ts +1 -1
  267. package/dist/runtime/utils.d.ts +6 -4
  268. package/dist/runtime/utils.js +31 -14
  269. package/dist/stats.d.mts +202 -0
  270. package/dist/stats.d.ts +202 -0
  271. package/dist/stats.mjs +3835 -0
  272. package/dist/types-source.d.mts +17 -0
  273. package/dist/types-source.d.ts +17 -0
  274. package/dist/types-source.mjs +3787 -0
  275. package/dist/types.d.mts +4 -2
  276. package/package.json +41 -63
  277. package/README.md +0 -86
  278. package/dist/client/200.html +0 -1
  279. package/dist/client/404.html +0 -1
  280. package/dist/client/_nuxt/BJa0m50V.js +0 -1
  281. package/dist/client/_nuxt/BPQ3VLAy.js +0 -1
  282. package/dist/client/_nuxt/Ci5iXYuB.js +0 -1
  283. package/dist/client/_nuxt/DaI2y8Uz.js +0 -162
  284. package/dist/client/_nuxt/builds/latest.json +0 -1
  285. package/dist/client/_nuxt/builds/meta/9b4fb16a-3c62-48b0-8295-126cb077b5d3.json +0 -1
  286. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  287. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  288. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  289. package/dist/client/_nuxt/vPLZfVXe.js +0 -1
  290. package/dist/client/index.html +0 -1
  291. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  292. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  293. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  294. package/dist/runtime/validation/mock.d.ts +0 -42
  295. package/dist/runtime/validation/mock.js +0 -21
  296. package/dist/runtime/validation/valibot.d.ts +0 -1
  297. package/dist/runtime/validation/valibot.js +0 -1
  298. /package/dist/{client → devtools-client}/_nuxt/CVO1_9PV.js +0 -0
  299. /package/dist/{client → devtools-client}/_nuxt/Cp-IABpG.js +0 -0
  300. /package/dist/{client → devtools-client}/_nuxt/D0r3Knsf.js +0 -0
@@ -1,9 +1,111 @@
1
- import { defu } from "defu";
1
+ import { resolveTrigger } from "#build/nuxt-scripts-trigger-resolver";
2
2
  import { useScript as _useScript } from "@unhead/vue/scripts";
3
- import { reactive, ref } from "vue";
4
- import { onNuxtReady, useNuxtApp, useRuntimeConfig, injectHead, useHead } from "nuxt/app";
3
+ import { defu } from "defu";
4
+ import { injectHead, onNuxtReady, useHead, useNuxtApp, useRuntimeConfig } from "nuxt/app";
5
+ import { markRaw, ref } from "vue";
5
6
  import { logger } from "../logger.js";
6
- import { resolveTrigger } from "#build/nuxt-scripts-trigger-resolver";
7
+ function resolveProxyPrefix() {
8
+ const devtoolsConfig = useRuntimeConfig().public["nuxt-scripts-devtools"];
9
+ return devtoolsConfig?.proxyPrefix || "/_scripts/p";
10
+ }
11
+ function toNetworkRequest(entry, proxyPrefix) {
12
+ const isProxied = entry.name.includes(`${proxyPrefix}/`);
13
+ return {
14
+ url: entry.name,
15
+ startTime: entry.startTime,
16
+ duration: entry.duration,
17
+ transferSize: entry.transferSize,
18
+ encodedBodySize: entry.encodedBodySize,
19
+ decodedBodySize: entry.decodedBodySize,
20
+ initiatorType: entry.initiatorType,
21
+ dns: entry.domainLookupEnd - entry.domainLookupStart,
22
+ connect: entry.connectEnd - entry.connectStart,
23
+ ssl: entry.secureConnectionStart > 0 ? entry.connectEnd - entry.secureConnectionStart : 0,
24
+ ttfb: entry.responseStart - entry.requestStart,
25
+ download: entry.responseEnd - entry.responseStart,
26
+ isProxied
27
+ };
28
+ }
29
+ function createDomainMatcher(domains, proxyPrefix, scriptSrc) {
30
+ const localHostname = window.location.hostname;
31
+ const scriptUrl = (() => {
32
+ if (!scriptSrc)
33
+ return "";
34
+ try {
35
+ return new URL(scriptSrc, window.location.origin).href;
36
+ } catch {
37
+ return "";
38
+ }
39
+ })();
40
+ return function matchesScript(entry) {
41
+ try {
42
+ const entryUrl = new URL(entry.name, window.location.origin);
43
+ if (scriptUrl && entryUrl.href === scriptUrl)
44
+ return true;
45
+ if (entryUrl.hostname !== localHostname && domains.has(entryUrl.hostname))
46
+ return true;
47
+ const proxyPath = `${proxyPrefix}/`;
48
+ const proxyIdx = entryUrl.pathname.indexOf(proxyPath);
49
+ if (proxyIdx !== -1) {
50
+ const afterPrefix = entryUrl.pathname.slice(proxyIdx + proxyPath.length);
51
+ const proxyDomain = afterPrefix.split("/")[0];
52
+ if (proxyDomain && domains.has(proxyDomain))
53
+ return true;
54
+ }
55
+ } catch {
56
+ }
57
+ return false;
58
+ };
59
+ }
60
+ function observeNetworkRequests(payload, domains, onUpdate, scriptSrc) {
61
+ if (typeof PerformanceObserver === "undefined")
62
+ return () => {
63
+ };
64
+ const proxyPrefix = resolveProxyPrefix();
65
+ const matchesScript = createDomainMatcher(domains, proxyPrefix, scriptSrc);
66
+ const seen = /* @__PURE__ */ new Set();
67
+ function entryKey(entry) {
68
+ return `${entry.name}@${entry.startTime}`;
69
+ }
70
+ function processEntry(entry) {
71
+ const key = entryKey(entry);
72
+ if (seen.has(key))
73
+ return false;
74
+ if (!matchesScript(entry))
75
+ return false;
76
+ seen.add(key);
77
+ payload.networkRequests.push(toNetworkRequest(entry, proxyPrefix));
78
+ return true;
79
+ }
80
+ for (const entry of performance.getEntriesByType("resource"))
81
+ processEntry(entry);
82
+ const observer = new PerformanceObserver((list) => {
83
+ let added = false;
84
+ for (const entry of list.getEntries()) {
85
+ if (processEntry(entry))
86
+ added = true;
87
+ }
88
+ if (added)
89
+ onUpdate();
90
+ });
91
+ observer.observe({ type: "resource", buffered: false });
92
+ return () => observer.disconnect();
93
+ }
94
+ function extractExternalHostname(src) {
95
+ if (!src)
96
+ return "";
97
+ try {
98
+ const hostname = new URL(src, window.location.origin).hostname;
99
+ return hostname === window.location.hostname ? "" : hostname;
100
+ } catch {
101
+ return "";
102
+ }
103
+ }
104
+ function ensureScripts(nuxtApp) {
105
+ if (!nuxtApp.$scripts) {
106
+ nuxtApp.$scripts = {};
107
+ }
108
+ }
7
109
  function useNuxtScriptRuntimeConfig() {
8
110
  return useRuntimeConfig().public["nuxt-scripts"];
9
111
  }
@@ -22,16 +124,44 @@ export function useScript(input, options) {
22
124
  script: [{ src, type: "text/partytown" }]
23
125
  });
24
126
  const nuxtApp2 = useNuxtApp();
25
- nuxtApp2.$scripts = nuxtApp2.$scripts || reactive({});
127
+ ensureScripts(nuxtApp2);
26
128
  const status = ref("loaded");
129
+ let disconnectObserver = () => {
130
+ };
27
131
  const stub = {
28
132
  id: src,
29
133
  status,
30
134
  load: () => Promise.resolve({}),
31
- remove: () => false,
135
+ remove: () => {
136
+ disconnectObserver();
137
+ return false;
138
+ },
32
139
  entry: void 0
33
140
  };
34
141
  nuxtApp2.$scripts[src] = stub;
142
+ if (import.meta.dev && import.meta.client) {
143
+ let syncScripts = function() {
144
+ nuxtApp2._scripts[src] = payload;
145
+ nuxtApp2.hooks.callHook("scripts:updated", { scripts: nuxtApp2._scripts });
146
+ };
147
+ nuxtApp2._scripts = nuxtApp2._scripts || {};
148
+ const scriptHostname = extractExternalHostname(src);
149
+ const domains = /* @__PURE__ */ new Set([
150
+ ...scriptHostname ? [scriptHostname] : [],
151
+ ...options.devtools?.domains || []
152
+ ]);
153
+ const payload = {
154
+ ...options.devtools,
155
+ src,
156
+ $script: stub,
157
+ events: [
158
+ { type: "status", status: "loaded", at: Date.now() }
159
+ ],
160
+ networkRequests: []
161
+ };
162
+ disconnectObserver = observeNetworkRequests(payload, domains, syncScripts, src);
163
+ syncScripts();
164
+ }
35
165
  return stub;
36
166
  }
37
167
  if (import.meta.dev && options.bundle === "unsupported") {
@@ -50,7 +180,7 @@ export function useScript(input, options) {
50
180
  if (!options.head) {
51
181
  throw new Error("useScript() has been called without Nuxt context.");
52
182
  }
53
- nuxtApp.$scripts = nuxtApp.$scripts || reactive({});
183
+ ensureScripts(nuxtApp);
54
184
  const exists = !!nuxtApp.$scripts?.[id];
55
185
  const err = options._validate?.();
56
186
  if (import.meta.dev && import.meta.client && err) {
@@ -109,7 +239,8 @@ export function useScript(input, options) {
109
239
  ...options.devtools,
110
240
  src: input.src,
111
241
  $script: null,
112
- events: []
242
+ events: [],
243
+ networkRequests: []
113
244
  };
114
245
  nuxtApp._scripts = nuxtApp._scripts || {};
115
246
  if (!nuxtApp._scripts[instance.id]) {
@@ -149,8 +280,28 @@ export function useScript(input, options) {
149
280
  trigger: options?.trigger,
150
281
  at: Date.now()
151
282
  });
283
+ const scriptHostname = extractExternalHostname(input.src);
284
+ const domains = /* @__PURE__ */ new Set([
285
+ ...scriptHostname ? [scriptHostname] : [],
286
+ ...options.devtools?.domains || []
287
+ ]);
288
+ let disconnectObserver = observeNetworkRequests(payload, domains, syncScripts, input.src);
289
+ const _origRemove = instance.remove;
290
+ const _origReload = instance.reload;
291
+ instance.remove = () => {
292
+ disconnectObserver();
293
+ return _origRemove();
294
+ };
295
+ instance.reload = async () => {
296
+ disconnectObserver();
297
+ const result = await _origReload();
298
+ disconnectObserver = observeNetworkRequests(payload, domains, syncScripts, input.src);
299
+ return result;
300
+ };
152
301
  syncScripts();
153
302
  }
154
303
  }
304
+ markRaw(instance);
305
+ instance.toJSON = () => ({ id: instance.id, status: instance.status.value });
155
306
  return instance;
156
307
  }
@@ -1,5 +1,5 @@
1
- import { useNuxtApp, useRoute, injectHead } from "nuxt/app";
2
- import { ref, onScopeDispose } from "vue";
1
+ import { injectHead, useNuxtApp, useRoute } from "nuxt/app";
2
+ import { onScopeDispose, ref } from "vue";
3
3
  export function useScriptEventPage(onChange) {
4
4
  const nuxt = useNuxtApp();
5
5
  const route = useRoute();
@@ -0,0 +1,12 @@
1
+ export interface ScriptProxyToken {
2
+ token: string;
3
+ ts: number;
4
+ }
5
+ /**
6
+ * Shared `useState` holding the proxy page token emitted during SSR.
7
+ *
8
+ * Populated by the `nuxt-scripts:proxy-token` server plugin when
9
+ * `runtimeConfig['nuxt-scripts'].proxySecret` is set, and hydrated to the
10
+ * client via the Nuxt payload. Stays null when signing is disabled.
11
+ */
12
+ export declare function useScriptProxyToken(): import("vue").Ref<ScriptProxyToken | null, ScriptProxyToken | null>;
@@ -0,0 +1,4 @@
1
+ import { useState } from "nuxt/app";
2
+ export function useScriptProxyToken() {
3
+ return useState("nuxt-scripts:proxy-token", () => null);
4
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Build proxy URLs that the server's `withSigning` middleware accepts.
3
+ *
4
+ * Attaches the page token emitted during SSR (`_pt` + `_ts`) when one is
5
+ * available, so client-driven proxy calls (e.g. reactive fetches, dynamic
6
+ * image helpers exposed in slot props) authenticate without needing a
7
+ * server round-trip to sign each URL.
8
+ *
9
+ * When no token is present (signing disabled or no secret), emits plain
10
+ * `?url=...` URLs, matching the pre-signing behavior.
11
+ */
12
+ export declare function useScriptProxyUrl(): (path: string, query?: Record<string, unknown>) => string;
@@ -0,0 +1,27 @@
1
+ import { PAGE_TOKEN_PARAM, PAGE_TOKEN_TS_PARAM } from "../server/utils/sign-constants.js";
2
+ import { useScriptProxyToken } from "./useScriptProxyToken.js";
3
+ export function useScriptProxyUrl() {
4
+ const token = useScriptProxyToken();
5
+ return (path, query = {}) => {
6
+ const parts = [];
7
+ for (const [key, value] of Object.entries(query)) {
8
+ if (value === void 0 || value === null)
9
+ continue;
10
+ const encodedKey = encodeURIComponent(key);
11
+ if (Array.isArray(value)) {
12
+ for (const item of value) {
13
+ if (item === void 0 || item === null)
14
+ continue;
15
+ parts.push(`${encodedKey}=${encodeURIComponent(String(item))}`);
16
+ }
17
+ } else {
18
+ parts.push(`${encodedKey}=${encodeURIComponent(String(value))}`);
19
+ }
20
+ }
21
+ if (token.value) {
22
+ parts.push(`${PAGE_TOKEN_PARAM}=${encodeURIComponent(token.value.token)}`);
23
+ parts.push(`${PAGE_TOKEN_TS_PARAM}=${token.value.ts}`);
24
+ }
25
+ return parts.length ? `${path}?${parts.join("&")}` : path;
26
+ };
27
+ }
@@ -1,12 +1,22 @@
1
+ import type { Ref } from 'vue';
1
2
  import type { ConsentScriptTriggerOptions } from '../types.js';
2
3
  interface UseConsentScriptTriggerApi extends Promise<void> {
3
4
  /**
4
5
  * A function that can be called to accept the consent and load the script.
5
6
  */
6
7
  accept: () => void;
8
+ /**
9
+ * A function that can be called to revoke consent and signal the script should be unloaded.
10
+ */
11
+ revoke: () => void;
12
+ /**
13
+ * Reactive reference to the consent state
14
+ */
15
+ consented: Ref<boolean>;
7
16
  }
8
17
  /**
9
18
  * Load a script once consent has been provided either through a resolvable `consent` or calling the `accept` method.
19
+ * Supports revoking consent via the reactive `consented` ref. Consumers should watch `consented` to react to revocation.
10
20
  * @param options
11
21
  */
12
22
  export declare function useScriptTriggerConsent(options?: ConsentScriptTriggerOptions): UseConsentScriptTriggerApi;
@@ -1,14 +1,37 @@
1
+ import { onNuxtReady, requestIdleCallback, tryUseNuxtApp } from "nuxt/app";
1
2
  import { isRef, ref, toValue, watch } from "vue";
2
- import { tryUseNuxtApp, onNuxtReady, requestIdleCallback } from "nuxt/app";
3
3
  export function useScriptTriggerConsent(options) {
4
- if (import.meta.server)
5
- return new Promise(() => {
4
+ if (import.meta.server) {
5
+ const p = new Promise(() => {
6
6
  });
7
+ p.accept = () => {
8
+ };
9
+ p.revoke = () => {
10
+ };
11
+ p.consented = ref(false);
12
+ return p;
13
+ }
7
14
  const consented = ref(false);
8
15
  const nuxtApp = tryUseNuxtApp();
16
+ if (options?.consent) {
17
+ if (isRef(options?.consent)) {
18
+ watch(options.consent, (_val) => {
19
+ const val = toValue(_val);
20
+ consented.value = Boolean(val);
21
+ }, { immediate: true });
22
+ } else if (typeof options?.consent === "boolean") {
23
+ consented.value = options?.consent;
24
+ } else if (options?.consent instanceof Promise) {
25
+ options.consent.then((res) => {
26
+ consented.value = typeof res === "boolean" ? res : true;
27
+ }).catch(() => {
28
+ consented.value = false;
29
+ });
30
+ }
31
+ }
9
32
  const promise = new Promise((resolve) => {
10
- watch(consented, (ready) => {
11
- if (ready) {
33
+ watch(consented, (newValue, oldValue) => {
34
+ if (newValue && !oldValue) {
12
35
  const runner = nuxtApp?.runWithContext || ((cb) => cb());
13
36
  if (options?.postConsentTrigger instanceof Promise) {
14
37
  options.postConsentTrigger.then(() => runner(resolve));
@@ -32,24 +55,14 @@ export function useScriptTriggerConsent(options) {
32
55
  }
33
56
  runner(resolve);
34
57
  }
35
- });
36
- if (options?.consent) {
37
- if (isRef(options?.consent)) {
38
- watch(options.consent, (_val) => {
39
- const val = toValue(_val);
40
- consented.value = Boolean(val);
41
- }, { immediate: true });
42
- } else if (typeof options?.consent === "boolean") {
43
- consented.value = options?.consent;
44
- } else if (options?.consent instanceof Promise) {
45
- options?.consent.then((res) => {
46
- consented.value = typeof res === "boolean" ? res : true;
47
- });
48
- }
49
- }
58
+ }, { immediate: true });
50
59
  });
51
60
  promise.accept = () => {
52
61
  consented.value = true;
53
62
  };
63
+ promise.revoke = () => {
64
+ consented.value = false;
65
+ };
66
+ promise.consented = consented;
54
67
  return promise;
55
68
  }
@@ -2,7 +2,7 @@ import {
2
2
  useEventListener,
3
3
  useIntersectionObserver
4
4
  } from "@vueuse/core";
5
- import { tryOnScopeDispose, tryOnMounted } from "@vueuse/shared";
5
+ import { tryOnMounted, tryOnScopeDispose } from "@vueuse/shared";
6
6
  import { watch } from "vue";
7
7
  function useElementVisibilityPromise(element) {
8
8
  let observer;
@@ -1,5 +1,5 @@
1
- import { tryOnScopeDispose } from "@vueuse/shared";
2
1
  import { useTimeoutFn } from "@vueuse/core";
2
+ import { tryOnScopeDispose } from "@vueuse/shared";
3
3
  import { onNuxtReady } from "nuxt/app";
4
4
  export function useScriptTriggerIdleTimeout(options) {
5
5
  if (import.meta.server) {
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Dev-only client plugin that bridges script state to the standalone devtools API.
3
+ * When `_standaloneDevtools` is enabled, this plugin listens for `scripts:updated`
4
+ * and POSTs a serializable snapshot of script state to `/__nuxt-scripts-api/state`.
5
+ * Also syncs the current route path so standalone devtools can show which page the user is on.
6
+ */
7
+ declare const _default: import("nuxt/app").Plugin<Record<string, unknown>> & import("nuxt/app").ObjectPlugin<Record<string, unknown>>;
8
+ export default _default;
@@ -0,0 +1,50 @@
1
+ import { defineNuxtPlugin, useNuxtApp, useRuntimeConfig } from "nuxt/app";
2
+ export default defineNuxtPlugin(() => {
3
+ const nuxtApp = useNuxtApp();
4
+ const config = useRuntimeConfig();
5
+ const version = config.public["nuxt-scripts"]?.version;
6
+ const firstPartyData = config.public["nuxt-scripts-devtools"] || null;
7
+ let lastScripts = {};
8
+ function pushState(scripts) {
9
+ if (scripts)
10
+ lastScripts = scripts;
11
+ const route = nuxtApp.$router?.currentRoute?.value;
12
+ if (route?.path?.startsWith("/__nuxt-scripts"))
13
+ return;
14
+ fetch("/__nuxt-scripts-api/state", {
15
+ method: "POST",
16
+ headers: { "Content-Type": "application/json" },
17
+ body: JSON.stringify({
18
+ scripts: serializeScripts(lastScripts),
19
+ version,
20
+ firstPartyData,
21
+ route: route ? { path: route.path, fullPath: route.fullPath, query: route.query } : null
22
+ })
23
+ }).catch(() => {
24
+ });
25
+ }
26
+ nuxtApp.hooks.hook("scripts:updated", (ctx) => {
27
+ pushState(ctx.scripts);
28
+ });
29
+ nuxtApp.$router?.afterEach(() => {
30
+ pushState();
31
+ });
32
+ pushState(nuxtApp._scripts || {});
33
+ });
34
+ function serializeScripts(scripts) {
35
+ const result = {};
36
+ for (const [key, script] of Object.entries(scripts)) {
37
+ result[key] = {
38
+ src: script.src,
39
+ key: script.key,
40
+ registryKey: script.registryKey,
41
+ registryMeta: script.registryMeta,
42
+ loadedFrom: script.loadedFrom && script.loadedFrom !== "unknown" ? script.loadedFrom : void 0,
43
+ events: script.events,
44
+ networkRequests: script.networkRequests,
45
+ // Serialize $script status as a plain string (methods won't transfer)
46
+ $script: script.$script ? { status: typeof script.$script.status === "object" ? script.$script.status.value : script.$script.status } : { status: "unknown" }
47
+ };
48
+ }
49
+ return result;
50
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Emit a per-request proxy page token into the SSR payload.
3
+ *
4
+ * The token authorizes client-side proxy calls (`/embed/x-image?url=...`,
5
+ * `/embed/bluesky?url=...`, etc.) without needing each URL to be signed
6
+ * ahead of time. It stays null when no proxy secret is configured, in
7
+ * which case `withSigning` passes requests through unchecked.
8
+ */
9
+ declare const _default: import("nuxt/app").Plugin<Record<string, unknown>> & import("nuxt/app").ObjectPlugin<Record<string, unknown>>;
10
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import { defineNuxtPlugin, useRuntimeConfig } from "nuxt/app";
2
+ import { useScriptProxyToken } from "../composables/useScriptProxyToken.js";
3
+ import { generateProxyToken } from "../server/utils/sign.js";
4
+ export default defineNuxtPlugin({
5
+ name: "nuxt-scripts:proxy-token",
6
+ enforce: "pre",
7
+ setup() {
8
+ const secret = useRuntimeConfig()["nuxt-scripts"]?.proxySecret;
9
+ if (!secret)
10
+ return;
11
+ const ts = Math.floor(Date.now() / 1e3);
12
+ useScriptProxyToken().value = {
13
+ token: generateProxyToken(secret, ts),
14
+ ts
15
+ };
16
+ }
17
+ });
@@ -0,0 +1,198 @@
1
+ import type { RegistryScriptInput, UseScriptContext } from '#nuxt-scripts/types';
2
+ import { BingUetOptions } from './schemas.js';
3
+ export { BingUetOptions };
4
+ export type BingUetInput = RegistryScriptInput<typeof BingUetOptions, true, false>;
5
+ export type BingUetConsentStatus = 'granted' | 'denied';
6
+ export interface BingUetConsentOptions {
7
+ /**
8
+ * Controls storage of advertising identifiers. Currently the only field UET honors.
9
+ */
10
+ ad_storage?: BingUetConsentStatus;
11
+ }
12
+ export type BingUetEventName = 'page_view' | 'screen_view' | 'login' | 'sign_up' | 'subscribe' | 'start_trial' | 'lead' | 'generate_lead' | 'submit_lead_form' | 'contact' | 'search' | 'view_search_results' | 'select_content' | 'share' | 'exception' | 'find_location' | 'book_appointment' | 'get_route' | 'view_item' | 'view_item_list' | 'view_promotion' | 'add_to_cart' | 'remove_from_cart' | 'add_to_wishlist' | 'add_payment_info' | 'begin_checkout' | 'checkout_progress' | 'set_checkout_option' | 'purchase' | 'refund' | (string & {});
13
+ export interface BingUetItem {
14
+ id?: string;
15
+ name?: string;
16
+ brand?: string;
17
+ category?: string;
18
+ variant?: string;
19
+ price?: number;
20
+ quantity?: number;
21
+ list_name?: string;
22
+ list_position?: number;
23
+ creative_name?: string;
24
+ creative_slot?: string;
25
+ location_id?: string;
26
+ [key: string]: any;
27
+ }
28
+ export interface BingUetPromotion {
29
+ id?: string;
30
+ name?: string;
31
+ creative_name?: string;
32
+ creative_slot?: string;
33
+ [key: string]: any;
34
+ }
35
+ export interface BingUetEventParams {
36
+ /** Event category (beacon shortcut). */
37
+ ec?: string;
38
+ /** Event action (beacon shortcut). */
39
+ ea?: string;
40
+ /** Event label (beacon shortcut). */
41
+ el?: string;
42
+ /** Event value, numeric (beacon shortcut). */
43
+ ev?: number;
44
+ /** Goal category / goal completion. */
45
+ gc?: string;
46
+ /** Goal value. */
47
+ gv?: number;
48
+ /** Long-form alias for `ec`. */
49
+ event_category?: string;
50
+ /** Long-form alias for `ea`. */
51
+ event_action?: string;
52
+ /** Long-form alias for `el`. */
53
+ event_label?: string;
54
+ /** Long-form alias for `ev`. */
55
+ event_value?: number;
56
+ /** Unique event identifier (dedup). */
57
+ event_id?: string;
58
+ /** Variable revenue amount. */
59
+ revenue_value?: number;
60
+ /** ISO 4217 currency code (e.g. "USD"). */
61
+ currency?: string;
62
+ /** Unique order/transaction ID (dedup). */
63
+ transaction_id?: string;
64
+ /** Ecommerce items. */
65
+ items?: BingUetItem[];
66
+ /** Promotions associated with the event. */
67
+ promotions?: BingUetPromotion[];
68
+ /** Sign-up/login method (e.g. "Google"). */
69
+ method?: string;
70
+ coupon?: string;
71
+ tax?: number;
72
+ shipping?: number;
73
+ affiliation?: string;
74
+ /** Search query. */
75
+ search_term?: string;
76
+ content_type?: string;
77
+ content_id?: string;
78
+ checkout_step?: number;
79
+ checkout_option?: string;
80
+ description?: string;
81
+ name?: string;
82
+ screen_name?: string;
83
+ /** Whether an exception is fatal. */
84
+ fatal?: boolean;
85
+ /** Flags a new customer conversion. */
86
+ new_customer?: boolean | number;
87
+ /** Retail vertical: product ID. */
88
+ ecomm_prodid?: string | string[];
89
+ /** Retail vertical: page type. */
90
+ ecomm_pagetype?: 'home' | 'searchresults' | 'category' | 'product' | 'cart' | 'purchase' | 'other' | (string & {});
91
+ ecomm_totalvalue?: number;
92
+ ecomm_category?: string | string[];
93
+ ecomm_query?: string;
94
+ /** Override page path. */
95
+ page_path?: string;
96
+ /** Override page title. */
97
+ page_title?: string;
98
+ /** Override full page URL. */
99
+ page_location?: string;
100
+ [key: string]: any;
101
+ }
102
+ export interface BingUetEnhancedConversionsPid {
103
+ /** SHA-256 hashed email (lowercase, trimmed). Alias: `email`. */
104
+ em?: string;
105
+ /** SHA-256 hashed phone (E.164 digits only). Alias: `phone_number`. */
106
+ ph?: string;
107
+ /** Long-form alias for `em`. */
108
+ email?: string;
109
+ /** Long-form alias for `ph`. */
110
+ phone_number?: string;
111
+ [key: string]: any;
112
+ }
113
+ export interface BingUetSetParams {
114
+ /** Partner identifiers for enhanced conversions. */
115
+ pid?: BingUetEnhancedConversionsPid;
116
+ page_path?: string;
117
+ page_title?: string;
118
+ page_location?: string;
119
+ [key: string]: any;
120
+ }
121
+ export interface BingUetTcfConfig {
122
+ /** Enable TCF v2.0 auto-consent handling (Microsoft vendorId 1126). */
123
+ enabled?: boolean;
124
+ [key: string]: any;
125
+ }
126
+ export interface BingUetConstructorOptions {
127
+ /** UET tag ID. */
128
+ ti: string;
129
+ /** Alternate tag ID field (same effect as `ti`). */
130
+ tagId?: string;
131
+ /** Auto-fire pageLoad on SPA route changes. */
132
+ enableAutoSpaTracking?: boolean;
133
+ /** Enable TCF v2.0 auto-consent handling. */
134
+ enableAutoConsent?: boolean;
135
+ /** Suppress automatic page_view on load. */
136
+ disableAutoPageView?: boolean;
137
+ /** Disable the UET container entirely. */
138
+ disableContainer?: boolean;
139
+ /** Disable writing the UET visitor ID cookie. */
140
+ disableUetVid?: boolean;
141
+ /** Disable visibility (tab focus/blur) events. */
142
+ disableVisibilityEvents?: boolean;
143
+ /** Defer loading the beacon. */
144
+ deferLoad?: boolean;
145
+ /** Strip query strings from reported URLs. */
146
+ removeQueryFromUrls?: boolean;
147
+ /** Store conversion tracking cookies. */
148
+ storeConvTrackCookies?: boolean;
149
+ /** Cookie domain. */
150
+ cookieDomain?: string;
151
+ /** Cookie flags (e.g. "SameSite=None; Secure"). */
152
+ cookieFlags?: string;
153
+ /** Enable MS DNS cookie. */
154
+ msDnsCookie?: boolean;
155
+ /** UID cookie name. */
156
+ uidCookie?: string;
157
+ /** Error beacon verbosity level. */
158
+ errorBeaconLevel?: number;
159
+ /** Microsoft Clarity project ID for integration. */
160
+ clarityProjectId?: string;
161
+ /** When true, reads `window.enhanced_conversion_data` for gtag-style enhanced conversions. */
162
+ gtagPid?: boolean;
163
+ /** Beacon protocol version. */
164
+ Ver?: 1 | 2;
165
+ /** Associated advertiser ID. */
166
+ advertiserId?: string;
167
+ /** Source tag for GTM integration. */
168
+ gtmTagSource?: string;
169
+ /** Queue reference, typically `window.uetq`. */
170
+ q?: any[];
171
+ [key: string]: any;
172
+ }
173
+ export interface BingUetQueue {
174
+ push: {
175
+ (event: BingUetEventParams): void;
176
+ (command: 'pageLoad'): void;
177
+ (command: 'event', eventName: BingUetEventName, eventParams?: BingUetEventParams): void;
178
+ (command: 'consent', action: 'default' | 'update', consentParams: BingUetConsentOptions): void;
179
+ (command: 'set', params: BingUetSetParams): void;
180
+ (command: 'config', target: 'tcf', params: BingUetTcfConfig): void;
181
+ };
182
+ }
183
+ export interface BingUetApi {
184
+ uetq: BingUetQueue;
185
+ }
186
+ declare global {
187
+ interface Window {
188
+ UET: new (options: BingUetConstructorOptions) => BingUetQueue;
189
+ uetq: any[] | BingUetQueue;
190
+ }
191
+ }
192
+ export interface BingUetConsent {
193
+ /** Push `['consent','update', state]` with the `ad_storage` signal. */
194
+ update: (state: BingUetConsentOptions) => void;
195
+ }
196
+ export declare function useScriptBingUet<T extends BingUetApi>(_options?: BingUetInput & {
197
+ onBeforeUetStart?: (uetq: BingUetQueue) => void;
198
+ }): UseScriptContext<T, BingUetConsent>;