@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
@@ -0,0 +1,200 @@
1
+ export type StaticMapFormat = 'png' | 'jpg' | 'gif' | 'png8' | 'png32' | 'jpg-baseline';
2
+ export type StaticMapType = 'roadmap' | 'satellite' | 'terrain' | 'hybrid';
3
+ import type { ImgHTMLAttributes, ReservedProps } from 'vue';
4
+ declare const _default: typeof __VLS_export;
5
+ export default _default;
6
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
7
+ /**
8
+ * The center of the map. Accepts a "lat,lng" string or a LatLngLiteral object.
9
+ */
10
+ center?: string | {
11
+ lat: number;
12
+ lng: number;
13
+ };
14
+ /**
15
+ * Zoom level (0-21).
16
+ */
17
+ zoom?: number;
18
+ /**
19
+ * Explicit pixel size for the Static Maps API request, e.g. "640x400".
20
+ * When omitted, the component measures its rendered dimensions on mount and uses those.
21
+ * Falls back to "640x400" during SSR or when dimensions can't be measured.
22
+ */
23
+ size?: `${number}x${number}`;
24
+ /**
25
+ * Device pixel ratio for the static map image (1 or 2).
26
+ */
27
+ scale?: 1 | 2;
28
+ /**
29
+ * Image format.
30
+ */
31
+ format?: StaticMapFormat;
32
+ /**
33
+ * Map type.
34
+ */
35
+ maptype?: StaticMapType;
36
+ /**
37
+ * Cloud-based map styling ID.
38
+ */
39
+ mapId?: string;
40
+ /**
41
+ * Map markers. Supports multiple markers via string array.
42
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Markers
43
+ */
44
+ markers?: string | string[];
45
+ /**
46
+ * Polyline paths. Supports multiple paths via string array.
47
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Paths
48
+ */
49
+ path?: string | string[];
50
+ /**
51
+ * Locations that should be visible on the map.
52
+ */
53
+ visible?: string | string[];
54
+ /**
55
+ * Map styling. Accepts raw Static Maps API style strings or Google Maps JS API MapTypeStyle objects.
56
+ */
57
+ style?: string | string[] | google.maps.MapTypeStyle[];
58
+ /**
59
+ * Language code for map labels.
60
+ */
61
+ language?: string;
62
+ /**
63
+ * Region bias.
64
+ */
65
+ region?: string;
66
+ /**
67
+ * Digital signature for requests without an API key.
68
+ */
69
+ signature?: string;
70
+ /**
71
+ * API key override. When the proxy is enabled, this is ignored and the server-side key is used instead.
72
+ */
73
+ apiKey?: string;
74
+ /**
75
+ * CSS width for the container element.
76
+ */
77
+ width?: number | string;
78
+ /**
79
+ * CSS height for the container element.
80
+ */
81
+ height?: number | string;
82
+ /**
83
+ * Image loading strategy.
84
+ */
85
+ loading?: "eager" | "lazy";
86
+ /**
87
+ * Object-fit for the image within its container.
88
+ */
89
+ objectFit?: "cover" | "contain" | "fill" | "none" | "scale-down";
90
+ /**
91
+ * Additional attributes for the `<img>` element.
92
+ */
93
+ imgAttrs?: ImgHTMLAttributes & ReservedProps & Record<string, unknown>;
94
+ }, {
95
+ src: import("vue").ComputedRef<string>;
96
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
97
+ /**
98
+ * The center of the map. Accepts a "lat,lng" string or a LatLngLiteral object.
99
+ */
100
+ center?: string | {
101
+ lat: number;
102
+ lng: number;
103
+ };
104
+ /**
105
+ * Zoom level (0-21).
106
+ */
107
+ zoom?: number;
108
+ /**
109
+ * Explicit pixel size for the Static Maps API request, e.g. "640x400".
110
+ * When omitted, the component measures its rendered dimensions on mount and uses those.
111
+ * Falls back to "640x400" during SSR or when dimensions can't be measured.
112
+ */
113
+ size?: `${number}x${number}`;
114
+ /**
115
+ * Device pixel ratio for the static map image (1 or 2).
116
+ */
117
+ scale?: 1 | 2;
118
+ /**
119
+ * Image format.
120
+ */
121
+ format?: StaticMapFormat;
122
+ /**
123
+ * Map type.
124
+ */
125
+ maptype?: StaticMapType;
126
+ /**
127
+ * Cloud-based map styling ID.
128
+ */
129
+ mapId?: string;
130
+ /**
131
+ * Map markers. Supports multiple markers via string array.
132
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Markers
133
+ */
134
+ markers?: string | string[];
135
+ /**
136
+ * Polyline paths. Supports multiple paths via string array.
137
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Paths
138
+ */
139
+ path?: string | string[];
140
+ /**
141
+ * Locations that should be visible on the map.
142
+ */
143
+ visible?: string | string[];
144
+ /**
145
+ * Map styling. Accepts raw Static Maps API style strings or Google Maps JS API MapTypeStyle objects.
146
+ */
147
+ style?: string | string[] | google.maps.MapTypeStyle[];
148
+ /**
149
+ * Language code for map labels.
150
+ */
151
+ language?: string;
152
+ /**
153
+ * Region bias.
154
+ */
155
+ region?: string;
156
+ /**
157
+ * Digital signature for requests without an API key.
158
+ */
159
+ signature?: string;
160
+ /**
161
+ * API key override. When the proxy is enabled, this is ignored and the server-side key is used instead.
162
+ */
163
+ apiKey?: string;
164
+ /**
165
+ * CSS width for the container element.
166
+ */
167
+ width?: number | string;
168
+ /**
169
+ * CSS height for the container element.
170
+ */
171
+ height?: number | string;
172
+ /**
173
+ * Image loading strategy.
174
+ */
175
+ loading?: "eager" | "lazy";
176
+ /**
177
+ * Object-fit for the image within its container.
178
+ */
179
+ objectFit?: "cover" | "contain" | "fill" | "none" | "scale-down";
180
+ /**
181
+ * Additional attributes for the `<img>` element.
182
+ */
183
+ imgAttrs?: ImgHTMLAttributes & ReservedProps & Record<string, unknown>;
184
+ }> & Readonly<{}>, {
185
+ loading: "eager" | "lazy";
186
+ width: number | string;
187
+ height: number | string;
188
+ zoom: number;
189
+ objectFit: "cover" | "contain" | "fill" | "none" | "scale-down";
190
+ scale: 1 | 2;
191
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
192
+ default?: (props: {
193
+ src: string;
194
+ }) => any;
195
+ }>;
196
+ type __VLS_WithSlots<T, S> = T & {
197
+ new (): {
198
+ $slots: S;
199
+ };
200
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Bind Google Maps event listeners that forward to Vue emit.
3
+ *
4
+ * Two categories:
5
+ * - `noPayload`: emits with no arguments (state-change events like `position_changed`)
6
+ * - `withPayload`: forwards the first argument from the listener (mouse events, etc.)
7
+ */
8
+ export declare function bindGoogleMapsEvents(instance: {
9
+ addListener: (event: string, handler: (...args: any[]) => void) => void;
10
+ }, emit: (...args: any[]) => void, config: {
11
+ noPayload?: readonly string[];
12
+ withPayload?: readonly string[];
13
+ }): void;
@@ -0,0 +1,8 @@
1
+ export function bindGoogleMapsEvents(instance, emit, config) {
2
+ config.noPayload?.forEach((event) => {
3
+ instance.addListener(event, () => emit(event));
4
+ });
5
+ config.withPayload?.forEach((event) => {
6
+ instance.addListener(event, (payload) => emit(event, payload));
7
+ });
8
+ }
@@ -0,0 +1,10 @@
1
+ import type { InjectionKey, Ref, ShallowRef } from 'vue';
2
+ export declare const MAP_INJECTION_KEY: InjectionKey<{
3
+ map: ShallowRef<google.maps.Map | undefined>;
4
+ mapsApi: Ref<typeof google.maps | undefined>;
5
+ /** Close the previously active InfoWindow and register a new one as active */
6
+ activateInfoWindow: (iw: google.maps.InfoWindow) => void;
7
+ }>;
8
+ export declare const MARKER_INJECTION_KEY: InjectionKey<{
9
+ advancedMarkerElement: ShallowRef<google.maps.marker.AdvancedMarkerElement | undefined>;
10
+ }>;
@@ -0,0 +1,2 @@
1
+ export const MAP_INJECTION_KEY = Symbol("map");
2
+ export const MARKER_INJECTION_KEY = Symbol("marker");
@@ -0,0 +1,42 @@
1
+ import type { InjectionKey, ShallowRef } from 'vue';
2
+ export interface MarkerClustererInstance {
3
+ render: () => void;
4
+ setMap: (map: google.maps.Map | null) => void;
5
+ addListener: (event: string, handler: () => void) => void;
6
+ addMarker: (marker: google.maps.marker.AdvancedMarkerElement | google.maps.Marker, noDraw?: boolean) => void;
7
+ removeMarker: (marker: google.maps.marker.AdvancedMarkerElement | google.maps.Marker, noDraw?: boolean) => boolean;
8
+ }
9
+ export interface MarkerClustererOptions {
10
+ markers?: google.maps.marker.AdvancedMarkerElement[];
11
+ algorithm?: unknown;
12
+ renderer?: unknown;
13
+ onClusterClick?: unknown;
14
+ }
15
+ export interface Cluster {
16
+ marker: google.maps.marker.AdvancedMarkerElement;
17
+ markers?: google.maps.marker.AdvancedMarkerElement[];
18
+ position: google.maps.LatLng;
19
+ bounds: google.maps.LatLngBounds | undefined;
20
+ count: number;
21
+ }
22
+ export interface ClusterStats {
23
+ markers: {
24
+ sum: number;
25
+ };
26
+ clusters: {
27
+ count: number;
28
+ markers: {
29
+ min: number;
30
+ max: number;
31
+ mean: number;
32
+ sum: number;
33
+ };
34
+ };
35
+ }
36
+ export interface MarkerClustererContext {
37
+ markerClusterer: ShallowRef<MarkerClustererInstance | undefined>;
38
+ requestRerender: () => void;
39
+ /** Increments after each clustering cycle; watch to detect cluster membership changes */
40
+ clusteringVersion: ShallowRef<number>;
41
+ }
42
+ export declare const MARKER_CLUSTERER_INJECTION_KEY: InjectionKey<MarkerClustererContext>;
@@ -0,0 +1 @@
1
+ export const MARKER_CLUSTERER_INJECTION_KEY = Symbol("marker-clusterer");
@@ -0,0 +1,98 @@
1
+ import type { InjectionKey, Ref, ShallowRef } from 'vue';
2
+ export declare const MAP_INJECTION_KEY: InjectionKey<{
3
+ map: ShallowRef<google.maps.Map | undefined>;
4
+ mapsApi: Ref<typeof google.maps | undefined>;
5
+ /** Close the previously active InfoWindow and register a new one as active */
6
+ activateInfoWindow: (iw: google.maps.InfoWindow) => void;
7
+ }>;
8
+ export declare const MARKER_INJECTION_KEY: InjectionKey<{
9
+ advancedMarkerElement: ShallowRef<google.maps.marker.AdvancedMarkerElement | undefined>;
10
+ }>;
11
+ /**
12
+ * Bind Google Maps event listeners that forward to Vue emit.
13
+ *
14
+ * Two categories:
15
+ * - `noPayload`: emits with no arguments (state-change events like `position_changed`)
16
+ * - `withPayload`: forwards the first argument from the listener (mouse events, etc.)
17
+ */
18
+ export declare function bindGoogleMapsEvents(instance: {
19
+ addListener: (event: string, handler: (...args: any[]) => void) => void;
20
+ }, emit: (...args: any[]) => void, config: {
21
+ noPayload?: readonly string[];
22
+ withPayload?: readonly string[];
23
+ }): void;
24
+ export interface GoogleMapsResourceContext {
25
+ map: google.maps.Map;
26
+ mapsApi: typeof google.maps;
27
+ }
28
+ /**
29
+ * Normalizes a `LatLng | LatLngLiteral` value into a plain `LatLngLiteral`.
30
+ *
31
+ * Google's `LatLng` exposes coordinates via `.lat()`/`.lng()` methods, while
32
+ * `LatLngLiteral` exposes them as plain `lat`/`lng` numeric properties. The
33
+ * runtime distinguishes them by checking whether `.lat` is callable; this is
34
+ * preferred over `instanceof google.maps.LatLng` because mocked APIs in tests
35
+ * return plain objects rather than real `LatLng` instances.
36
+ */
37
+ export declare function normalizeLatLng(p: google.maps.LatLng | google.maps.LatLngLiteral): google.maps.LatLngLiteral;
38
+ /**
39
+ * Defines a deprecated property alias on an exposed object. Reading the alias
40
+ * returns the value of the canonical key and emits a one-shot
41
+ * `console.warn` (so repeated reads don't spam the console).
42
+ *
43
+ * Used to provide backward-compatible renames on `defineExpose` payloads
44
+ * without breaking existing template-ref consumers. Call sites should wrap
45
+ * this in `if (import.meta.dev)` so production builds skip the getter
46
+ * entirely and the alias stays a plain data property.
47
+ */
48
+ export declare function defineDeprecatedAlias<T extends object, K extends keyof T>(target: T, alias: string, canonicalKey: K, message: string): T;
49
+ /**
50
+ * Emits dev-mode deprecation warnings for the legacy top-level `center` and
51
+ * `zoom` props on `<ScriptGoogleMaps>`. Both props still work, but new code
52
+ * should pass them via `mapOptions` instead.
53
+ *
54
+ * Returns the number of warnings emitted (useful for tests).
55
+ */
56
+ export declare function warnDeprecatedTopLevelMapProps(props: {
57
+ center?: unknown;
58
+ zoom?: unknown;
59
+ }): number;
60
+ /**
61
+ * Wait until the Google Maps API and a Map instance are both available.
62
+ *
63
+ * Triggers script loading via `load()` if not already loaded. Uses an
64
+ * immediate watcher (matching `importLibrary`'s pattern) to avoid the race
65
+ * where `load()` resolves synchronously: a non-immediate watcher would miss
66
+ * the change and the promise would hang forever.
67
+ *
68
+ * Rejects if `status` enters an `'error'` state before both refs are populated.
69
+ * Runs the watcher inside a detached effect scope so it is safe to call from
70
+ * any context (component setup, exposed methods, tests).
71
+ */
72
+ export declare function waitForMapsReady({ mapsApi, map, status, load, }: {
73
+ mapsApi: ShallowRef<typeof google.maps | undefined>;
74
+ map: ShallowRef<google.maps.Map | undefined>;
75
+ status: Ref<string>;
76
+ load: () => Promise<unknown> | unknown;
77
+ }): Promise<void>;
78
+ /**
79
+ * Composable for safely managing Google Maps resource lifecycle.
80
+ *
81
+ * Handles the common pattern: wait for map readiness → async create → cleanup on unmount.
82
+ *
83
+ * Safety guarantees:
84
+ * - No watchers created after `await` (prevents orphaned watchers that leak memory)
85
+ * - Unmount guard prevents resource creation after component unmount
86
+ * - Resources created during the async gap are immediately cleaned up
87
+ * - Resource ref is always nulled on unmount to allow GC
88
+ */
89
+ export declare function useGoogleMapsResource<T>({ ready, create, cleanup, }: {
90
+ /** Additional readiness condition beyond map + mapsApi being available */
91
+ ready?: () => boolean;
92
+ /** Create the Google Maps resource. Receives map context snapshot. May be async. */
93
+ create: (ctx: GoogleMapsResourceContext) => Promise<T> | T;
94
+ /** Clean up the resource. Called on unmount, or immediately if resource was created after unmount. */
95
+ cleanup?: (resource: T, ctx: {
96
+ mapsApi: typeof google.maps;
97
+ }) => void;
98
+ }): ShallowRef<T | undefined>;
@@ -0,0 +1,126 @@
1
+ import { whenever } from "@vueuse/core";
2
+ import { effectScope, inject, onUnmounted, ref, shallowRef, watch } from "vue";
3
+ export const MAP_INJECTION_KEY = Symbol("map");
4
+ export const MARKER_INJECTION_KEY = Symbol("marker");
5
+ export function bindGoogleMapsEvents(instance, emit, config) {
6
+ config.noPayload?.forEach((event) => {
7
+ instance.addListener(event, () => emit(event));
8
+ });
9
+ config.withPayload?.forEach((event) => {
10
+ instance.addListener(event, (payload) => emit(event, payload));
11
+ });
12
+ }
13
+ export function normalizeLatLng(p) {
14
+ if (typeof p.lat === "function") {
15
+ const ll = p;
16
+ return { lat: ll.lat(), lng: ll.lng() };
17
+ }
18
+ return { lat: p.lat, lng: p.lng };
19
+ }
20
+ export function defineDeprecatedAlias(target, alias, canonicalKey, message) {
21
+ let warned = false;
22
+ Object.defineProperty(target, alias, {
23
+ get() {
24
+ if (!warned) {
25
+ warned = true;
26
+ console.warn(message);
27
+ }
28
+ return target[canonicalKey];
29
+ },
30
+ enumerable: true,
31
+ configurable: true
32
+ });
33
+ return target;
34
+ }
35
+ export function warnDeprecatedTopLevelMapProps(props) {
36
+ let warned = 0;
37
+ if (props.center !== void 0) {
38
+ warned++;
39
+ console.warn(
40
+ '[nuxt-scripts] <ScriptGoogleMaps> prop "center" is deprecated; use `:map-options="{ center: ... }"` instead. See https://scripts.nuxt.com/docs/migration-guide/v0-to-v1'
41
+ );
42
+ }
43
+ if (props.zoom !== void 0) {
44
+ warned++;
45
+ console.warn(
46
+ '[nuxt-scripts] <ScriptGoogleMaps> prop "zoom" is deprecated; use `:map-options="{ zoom: ... }"` instead. See https://scripts.nuxt.com/docs/migration-guide/v0-to-v1'
47
+ );
48
+ }
49
+ return warned;
50
+ }
51
+ export async function waitForMapsReady({
52
+ mapsApi,
53
+ map,
54
+ status,
55
+ load
56
+ }) {
57
+ if (mapsApi.value && map.value)
58
+ return;
59
+ if (status.value === "error")
60
+ throw new Error("Google Maps script failed to load");
61
+ await load();
62
+ if (mapsApi.value && map.value)
63
+ return;
64
+ if (status.value === "error")
65
+ throw new Error("Google Maps script failed to load");
66
+ const scope = effectScope(true);
67
+ try {
68
+ await new Promise((resolve, reject) => {
69
+ scope.run(() => {
70
+ watch(
71
+ [mapsApi, map, status],
72
+ ([api, m, s]) => {
73
+ if (api && m) {
74
+ resolve();
75
+ return;
76
+ }
77
+ if (s === "error")
78
+ reject(new Error("Google Maps script failed to load"));
79
+ },
80
+ { immediate: true }
81
+ );
82
+ });
83
+ });
84
+ } finally {
85
+ scope.stop();
86
+ }
87
+ }
88
+ export function useGoogleMapsResource({
89
+ ready,
90
+ create,
91
+ cleanup
92
+ }) {
93
+ const mapContext = inject(MAP_INJECTION_KEY, void 0);
94
+ const resource = shallowRef(void 0);
95
+ const isUnmounted = ref(false);
96
+ whenever(
97
+ () => mapContext?.map.value && mapContext.mapsApi.value && (!ready || ready()),
98
+ () => {
99
+ Promise.resolve(create({
100
+ map: mapContext.map.value,
101
+ mapsApi: mapContext.mapsApi.value
102
+ })).then((result) => {
103
+ if (isUnmounted.value) {
104
+ if (cleanup && mapContext?.mapsApi.value) {
105
+ cleanup(result, { mapsApi: mapContext.mapsApi.value });
106
+ }
107
+ return;
108
+ }
109
+ resource.value = result;
110
+ }).catch((err) => {
111
+ if (import.meta.dev) {
112
+ console.error("[nuxt-scripts] Google Maps resource creation failed:", err);
113
+ }
114
+ });
115
+ },
116
+ { immediate: true, once: true }
117
+ );
118
+ onUnmounted(() => {
119
+ isUnmounted.value = true;
120
+ if (resource.value && cleanup && mapContext?.mapsApi.value) {
121
+ cleanup(resource.value, { mapsApi: mapContext.mapsApi.value });
122
+ }
123
+ resource.value = void 0;
124
+ });
125
+ return resource;
126
+ }
@@ -0,0 +1,83 @@
1
+ import type { HTMLAttributes } from 'vue';
2
+ import type { BlueskyEmbedPostData } from '../registry/bluesky-embed.js';
3
+ type __VLS_Props = {
4
+ /**
5
+ * The Bluesky post URL to embed
6
+ * @example 'https://bsky.app/profile/bsky.app/post/3mgnwwvj3u22a'
7
+ */
8
+ postUrl: string;
9
+ /**
10
+ * Custom API endpoint for fetching post data
11
+ */
12
+ apiEndpoint?: string;
13
+ /**
14
+ * Custom image proxy endpoint
15
+ */
16
+ imageProxyEndpoint?: string;
17
+ /**
18
+ * Root element attributes
19
+ */
20
+ rootAttrs?: HTMLAttributes;
21
+ };
22
+ type __VLS_Slots = {
23
+ default?: (props: NonNullable<typeof slotProps.value>) => any;
24
+ loading?: () => any;
25
+ error?: (props: {
26
+ error: typeof error.value;
27
+ }) => any;
28
+ };
29
+ declare const error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
30
+ declare const slotProps: import("vue").ComputedRef<{
31
+ post: BlueskyEmbedPostData;
32
+ displayName: string;
33
+ handle: string;
34
+ avatar: string;
35
+ isVerified: boolean;
36
+ text: string;
37
+ richText: string;
38
+ langs: string[] | undefined;
39
+ datetime: string;
40
+ createdAt: Date;
41
+ likes: number;
42
+ likesFormatted: string;
43
+ reposts: number;
44
+ repostsFormatted: string;
45
+ replies: number;
46
+ repliesFormatted: string;
47
+ quotes: number;
48
+ quotesFormatted: string;
49
+ images: {
50
+ thumb: string;
51
+ fullsize: string;
52
+ alt: string;
53
+ aspectRatio: {
54
+ width: number;
55
+ height: number;
56
+ } | undefined;
57
+ }[] | undefined;
58
+ externalEmbed: {
59
+ uri: string;
60
+ title: string;
61
+ description: string;
62
+ thumb: string | undefined;
63
+ } | undefined;
64
+ postUrl: string;
65
+ authorUrl: string;
66
+ proxyImage: (url: string) => string;
67
+ } | null>;
68
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
69
+ post: import("vue").Ref<BlueskyEmbedPostData | undefined, BlueskyEmbedPostData | undefined>;
70
+ status: import("vue").Ref<import("nuxt/app").AsyncDataRequestStatus, import("nuxt/app").AsyncDataRequestStatus>;
71
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
72
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
73
+ apiEndpoint: string;
74
+ imageProxyEndpoint: string;
75
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
76
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
77
+ declare const _default: typeof __VLS_export;
78
+ export default _default;
79
+ type __VLS_WithSlots<T, S> = T & {
80
+ new (): {
81
+ $slots: S;
82
+ };
83
+ };
@@ -0,0 +1,91 @@
1
+ <script setup>
2
+ import { useAsyncData } from "nuxt/app";
3
+ import { computed } from "vue";
4
+ import { useScriptProxyUrl } from "../composables/useScriptProxyUrl";
5
+ import { extractBlueskyPostId, facetsToHtml, formatBlueskyDate, formatCount } from "../registry/bluesky-embed";
6
+ import { requireRegistryEndpoint, scriptsPrefix } from "../utils";
7
+ const props = defineProps({
8
+ postUrl: { type: String, required: true },
9
+ apiEndpoint: { type: String, required: false, default: void 0 },
10
+ imageProxyEndpoint: { type: String, required: false, default: void 0 },
11
+ rootAttrs: { type: Object, required: false }
12
+ });
13
+ defineSlots();
14
+ const prefix = scriptsPrefix();
15
+ const resolvedApiEndpoint = computed(() => props.apiEndpoint || `${prefix}/embed/bluesky`);
16
+ const resolvedImageProxyEndpoint = computed(() => props.imageProxyEndpoint || `${prefix}/embed/bluesky-image`);
17
+ if (!props.apiEndpoint)
18
+ requireRegistryEndpoint("ScriptBlueskyEmbed", "blueskyEmbed");
19
+ const proxyUrl = useScriptProxyUrl();
20
+ const postId = computed(() => extractBlueskyPostId(props.postUrl));
21
+ const cacheKey = computed(() => `bluesky-embed-${postId.value?.actor}-${postId.value?.rkey}`);
22
+ const { data: post, status, error } = useAsyncData(
23
+ cacheKey,
24
+ () => $fetch(proxyUrl(resolvedApiEndpoint.value, { url: props.postUrl }))
25
+ );
26
+ const slotProps = computed(() => {
27
+ if (!post.value)
28
+ return null;
29
+ const p = post.value;
30
+ return {
31
+ // Raw data
32
+ post: p,
33
+ // Author info
34
+ displayName: p.author.displayName,
35
+ handle: p.author.handle,
36
+ avatar: p.author.avatar,
37
+ isVerified: p.author.verification?.verifiedStatus === "valid",
38
+ // Post content
39
+ text: p.record.text,
40
+ richText: facetsToHtml(p.record.text, p.record.facets),
41
+ langs: p.record.langs,
42
+ // Formatted values
43
+ datetime: formatBlueskyDate(p.record.createdAt),
44
+ createdAt: new Date(p.record.createdAt),
45
+ likes: p.likeCount,
46
+ likesFormatted: formatCount(p.likeCount),
47
+ reposts: p.repostCount,
48
+ repostsFormatted: formatCount(p.repostCount),
49
+ replies: p.replyCount,
50
+ repliesFormatted: formatCount(p.replyCount),
51
+ quotes: p.quoteCount,
52
+ quotesFormatted: formatCount(p.quoteCount),
53
+ // Media (already proxied)
54
+ images: p.embed?.images?.map((img) => ({
55
+ thumb: img.thumb,
56
+ fullsize: img.fullsize,
57
+ alt: img.alt,
58
+ aspectRatio: img.aspectRatio
59
+ })),
60
+ externalEmbed: p.embed?.external ? {
61
+ uri: p.embed.external.uri,
62
+ title: p.embed.external.title,
63
+ description: p.embed.external.description,
64
+ thumb: p.embed.external.thumb
65
+ } : void 0,
66
+ // Links
67
+ postUrl: props.postUrl,
68
+ authorUrl: `https://bsky.app/profile/${p.author.handle}`,
69
+ // Helpers — proxy an arbitrary URL through the image endpoint at runtime.
70
+ // Uses the page token emitted during SSR so client-generated URLs validate.
71
+ proxyImage: (url) => proxyUrl(resolvedImageProxyEndpoint.value, { url })
72
+ };
73
+ });
74
+ defineExpose({
75
+ post,
76
+ status,
77
+ error
78
+ });
79
+ </script>
80
+
81
+ <template>
82
+ <div v-bind="rootAttrs">
83
+ <slot v-if="status === 'pending'" name="loading">
84
+ <div>Loading Bluesky post...</div>
85
+ </slot>
86
+ <slot v-else-if="status === 'error'" name="error" :error="error">
87
+ <div>Failed to load Bluesky post</div>
88
+ </slot>
89
+ <slot v-else-if="slotProps" v-bind="slotProps" />
90
+ </div>
91
+ </template>