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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/README.md +3 -3
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/{Ds2G8aQM.js → AwAKM0sG.js} +1 -1
  5. package/dist/client/_nuxt/Bl23o3st.js +162 -0
  6. package/dist/client/_nuxt/{DdVDSbUA.js → CYlYSSNW.js} +1 -1
  7. package/dist/client/_nuxt/{CD5B-xvT.js → D5FIkDae.js} +1 -1
  8. package/dist/client/_nuxt/builds/latest.json +1 -1
  9. package/dist/client/_nuxt/builds/meta/f0b4dd20-8496-4003-b7a3-05cbae515923.json +1 -0
  10. package/dist/client/_nuxt/entry.C5SUNdim.css +1 -0
  11. package/dist/client/_nuxt/error-404.1K8v8Su2.css +1 -0
  12. package/dist/client/_nuxt/error-500.B9qvKpQm.css +1 -0
  13. package/dist/client/index.html +1 -1
  14. package/dist/module.d.mts +7 -19
  15. package/dist/module.d.ts +164 -0
  16. package/dist/module.json +1 -1
  17. package/dist/module.mjs +935 -645
  18. package/dist/registry.d.ts +6 -0
  19. package/dist/registry.mjs +235 -69
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +16 -9
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +57 -30
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +16 -9
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +22 -39
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +69 -72
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +22 -39
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +25 -38
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +61 -0
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
  35. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +9 -5
  36. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +62 -53
  37. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +9 -5
  38. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +26 -11
  39. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +48 -45
  40. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +26 -11
  41. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +10 -2
  42. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +38 -37
  43. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +10 -2
  44. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +63 -0
  45. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +160 -0
  46. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +63 -0
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +4 -0
  48. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +23 -32
  49. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +4 -0
  50. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
  51. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +24 -38
  52. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
  53. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
  54. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +24 -38
  55. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
  56. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
  57. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +25 -38
  58. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
  59. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  60. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  61. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +13 -0
  62. package/dist/runtime/components/GoogleMaps/injectionKeys.js +3 -0
  63. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +26 -0
  64. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +42 -0
  65. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +87 -0
  66. package/dist/runtime/components/ScriptBlueskyEmbed.vue +85 -0
  67. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +87 -0
  68. package/dist/runtime/components/ScriptCrisp.vue +1 -1
  69. package/dist/runtime/components/ScriptGoogleAdsense.vue +1 -1
  70. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  71. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  72. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  73. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +2 -2
  74. package/dist/runtime/components/ScriptInstagramEmbed.vue +5 -2
  75. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +2 -2
  76. package/dist/runtime/components/ScriptIntercom.vue +4 -3
  77. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -32
  78. package/dist/runtime/components/ScriptPayPalButtons.vue +48 -79
  79. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -32
  80. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -23
  81. package/dist/runtime/components/ScriptPayPalMessages.vue +46 -50
  82. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -23
  83. package/dist/runtime/components/ScriptStripePricingTable.vue +2 -2
  84. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +9 -0
  85. package/dist/runtime/components/ScriptVimeoPlayer.vue +13 -10
  86. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +9 -0
  87. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +2 -2
  88. package/dist/runtime/components/ScriptXEmbed.vue +6 -3
  89. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +2 -2
  90. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +2 -2
  91. package/dist/runtime/components/ScriptYouTubePlayer.vue +11 -5
  92. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +2 -2
  93. package/dist/runtime/composables/useScript.js +13 -6
  94. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  95. package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
  96. package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
  97. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  98. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  99. package/dist/runtime/registry/bing-uet.d.ts +20 -0
  100. package/dist/runtime/registry/bing-uet.js +29 -0
  101. package/dist/runtime/registry/bluesky-embed.d.ts +116 -0
  102. package/dist/runtime/registry/bluesky-embed.js +72 -0
  103. package/dist/runtime/registry/clarity.d.ts +10 -15
  104. package/dist/runtime/registry/clarity.js +22 -31
  105. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  106. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  107. package/dist/runtime/registry/crisp.d.ts +10 -40
  108. package/dist/runtime/registry/crisp.js +2 -33
  109. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  110. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  111. package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
  112. package/dist/runtime/registry/fathom-analytics.js +2 -24
  113. package/dist/runtime/registry/google-adsense.d.ts +3 -11
  114. package/dist/runtime/registry/google-adsense.js +2 -11
  115. package/dist/runtime/registry/google-analytics.d.ts +3 -5
  116. package/dist/runtime/registry/google-analytics.js +3 -8
  117. package/dist/runtime/registry/google-maps.d.ts +3 -9
  118. package/dist/runtime/registry/google-maps.js +2 -8
  119. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  120. package/dist/runtime/registry/google-recaptcha.js +4 -12
  121. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  122. package/dist/runtime/registry/google-sign-in.js +2 -22
  123. package/dist/runtime/registry/google-tag-manager.d.ts +3 -28
  124. package/dist/runtime/registry/google-tag-manager.js +4 -27
  125. package/dist/runtime/registry/gravatar.d.ts +26 -0
  126. package/dist/runtime/registry/gravatar.js +33 -0
  127. package/dist/runtime/registry/hotjar.d.ts +4 -6
  128. package/dist/runtime/registry/hotjar.js +2 -5
  129. package/dist/runtime/registry/instagram-embed.d.ts +3 -18
  130. package/dist/runtime/registry/instagram-embed.js +4 -19
  131. package/dist/runtime/registry/intercom.d.ts +4 -12
  132. package/dist/runtime/registry/intercom.js +2 -12
  133. package/dist/runtime/registry/matomo-analytics.d.ts +3 -12
  134. package/dist/runtime/registry/matomo-analytics.js +3 -12
  135. package/dist/runtime/registry/meta-pixel.d.ts +4 -6
  136. package/dist/runtime/registry/meta-pixel.js +2 -4
  137. package/dist/runtime/registry/mixpanel-analytics.d.ts +22 -0
  138. package/dist/runtime/registry/mixpanel-analytics.js +46 -0
  139. package/dist/runtime/registry/npm.d.ts +3 -7
  140. package/dist/runtime/registry/npm.js +2 -9
  141. package/dist/runtime/registry/paypal.d.ts +4 -25
  142. package/dist/runtime/registry/paypal.js +3 -66
  143. package/dist/runtime/registry/plausible-analytics.js +18 -13
  144. package/dist/runtime/registry/posthog.d.ts +10 -12
  145. package/dist/runtime/registry/posthog.js +7 -14
  146. package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
  147. package/dist/runtime/registry/reddit-pixel.js +2 -4
  148. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  149. package/dist/runtime/registry/rybbit-analytics.js +10 -20
  150. package/dist/runtime/registry/schemas.d.ts +982 -0
  151. package/dist/runtime/registry/schemas.js +937 -0
  152. package/dist/runtime/registry/segment.d.ts +2 -5
  153. package/dist/runtime/registry/segment.js +2 -5
  154. package/dist/runtime/registry/snapchat-pixel.d.ts +4 -33
  155. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  156. package/dist/runtime/registry/stripe.d.ts +3 -4
  157. package/dist/runtime/registry/stripe.js +2 -4
  158. package/dist/runtime/registry/tiktok-pixel.d.ts +4 -7
  159. package/dist/runtime/registry/tiktok-pixel.js +2 -6
  160. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  161. package/dist/runtime/registry/umami-analytics.js +2 -36
  162. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  163. package/dist/runtime/registry/vercel-analytics.js +84 -0
  164. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  165. package/dist/runtime/registry/vimeo-player.js +1 -1
  166. package/dist/runtime/registry/x-embed.d.ts +3 -17
  167. package/dist/runtime/registry/x-embed.js +3 -18
  168. package/dist/runtime/registry/x-pixel.d.ts +4 -7
  169. package/dist/runtime/registry/x-pixel.js +2 -5
  170. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  171. package/dist/runtime/registry/youtube-player.js +1 -1
  172. package/dist/runtime/server/{sw-handler.d.ts → bluesky-embed-image.d.ts} +1 -1
  173. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  174. package/dist/runtime/server/bluesky-embed.d.ts +16 -0
  175. package/dist/runtime/server/bluesky-embed.js +59 -0
  176. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  177. package/dist/runtime/server/google-maps-geocode-proxy.js +34 -0
  178. package/dist/runtime/server/google-static-maps-proxy.js +2 -13
  179. package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
  180. package/dist/runtime/server/gravatar-proxy.js +46 -0
  181. package/dist/runtime/server/instagram-embed-asset.js +8 -41
  182. package/dist/runtime/server/instagram-embed-image.js +6 -53
  183. package/dist/runtime/server/instagram-embed.d.ts +16 -0
  184. package/dist/runtime/server/instagram-embed.js +173 -35
  185. package/dist/runtime/server/proxy-handler.js +134 -93
  186. package/dist/runtime/server/utils/image-proxy.d.ts +12 -0
  187. package/dist/runtime/server/utils/image-proxy.js +70 -0
  188. package/dist/runtime/server/utils/privacy.d.ts +1 -2
  189. package/dist/runtime/server/utils/privacy.js +54 -34
  190. package/dist/runtime/server/x-embed-image.js +5 -49
  191. package/dist/runtime/server/x-embed.js +3 -2
  192. package/dist/runtime/types.d.ts +74 -40
  193. package/dist/runtime/utils/pure.d.ts +1 -5
  194. package/dist/runtime/utils/pure.js +0 -67
  195. package/dist/runtime/utils.d.ts +4 -3
  196. package/dist/runtime/utils.js +24 -10
  197. package/dist/shared/scripts.ViOoYQXH.mjs +381 -0
  198. package/dist/stats.d.mts +202 -0
  199. package/dist/stats.d.ts +202 -0
  200. package/dist/stats.mjs +3868 -0
  201. package/dist/types-source.d.mts +17 -0
  202. package/dist/types-source.d.ts +17 -0
  203. package/dist/types-source.mjs +3600 -0
  204. package/package.json +52 -38
  205. package/dist/client/_nuxt/D-kOnTuH.js +0 -162
  206. package/dist/client/_nuxt/builds/meta/f1474569-6922-450d-bc3f-4fd5f3e1391a.json +0 -1
  207. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  208. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  209. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  210. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  211. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  212. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  213. package/dist/runtime/plugins/sw-register.client.d.ts +0 -2
  214. package/dist/runtime/plugins/sw-register.client.js +0 -12
  215. package/dist/runtime/server/sw-handler.js +0 -25
  216. package/dist/runtime/sw/proxy-sw.template.d.ts +0 -1
  217. package/dist/runtime/sw/proxy-sw.template.js +0 -54
@@ -0,0 +1,87 @@
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
+ * @default '/_scripts/embed/bluesky'
12
+ */
13
+ apiEndpoint?: string;
14
+ /**
15
+ * Custom image proxy endpoint
16
+ * @default '/_scripts/embed/bluesky-image'
17
+ */
18
+ imageProxyEndpoint?: string;
19
+ /**
20
+ * Root element attributes
21
+ */
22
+ rootAttrs?: HTMLAttributes;
23
+ };
24
+ declare var __VLS_1: {}, __VLS_3: {
25
+ error: import("nuxt/app").NuxtError<unknown> | undefined;
26
+ }, __VLS_5: {
27
+ post: BlueskyEmbedPostData;
28
+ displayName: string;
29
+ handle: string;
30
+ avatar: string;
31
+ avatarOriginal: string;
32
+ isVerified: boolean;
33
+ text: string;
34
+ richText: string;
35
+ langs: string[] | undefined;
36
+ datetime: string;
37
+ createdAt: Date;
38
+ likes: number;
39
+ likesFormatted: string;
40
+ reposts: number;
41
+ repostsFormatted: string;
42
+ replies: number;
43
+ repliesFormatted: string;
44
+ quotes: number;
45
+ quotesFormatted: string;
46
+ images: {
47
+ thumb: string;
48
+ fullsize: string;
49
+ alt: string;
50
+ aspectRatio: {
51
+ width: number;
52
+ height: number;
53
+ } | undefined;
54
+ }[] | undefined;
55
+ externalEmbed: {
56
+ uri: string;
57
+ title: string;
58
+ description: string;
59
+ thumb: string | undefined;
60
+ } | undefined;
61
+ postUrl: string;
62
+ authorUrl: string;
63
+ proxyImage: (url: string) => string;
64
+ };
65
+ type __VLS_Slots = {} & {
66
+ loading?: (props: typeof __VLS_1) => any;
67
+ } & {
68
+ error?: (props: typeof __VLS_3) => any;
69
+ } & {
70
+ default?: (props: typeof __VLS_5) => any;
71
+ };
72
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
73
+ post: import("vue").Ref<BlueskyEmbedPostData | undefined, BlueskyEmbedPostData | undefined>;
74
+ status: import("vue").Ref<import("nuxt/app").AsyncDataRequestStatus, import("nuxt/app").AsyncDataRequestStatus>;
75
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
76
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
77
+ apiEndpoint: string;
78
+ imageProxyEndpoint: string;
79
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
80
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
81
+ declare const _default: typeof __VLS_export;
82
+ export default _default;
83
+ type __VLS_WithSlots<T, S> = T & {
84
+ new (): {
85
+ $slots: S;
86
+ };
87
+ };
@@ -0,0 +1,85 @@
1
+ <script setup>
2
+ import { useAsyncData } from "nuxt/app";
3
+ import { computed } from "vue";
4
+ import { extractBlueskyPostId, facetsToHtml, formatBlueskyDate, formatCount, proxyBlueskyImageUrl } from "../registry/bluesky-embed";
5
+ import { requireRegistryEndpoint } from "../utils";
6
+ const props = defineProps({
7
+ postUrl: { type: String, required: true },
8
+ apiEndpoint: { type: String, required: false, default: "/_scripts/embed/bluesky" },
9
+ imageProxyEndpoint: { type: String, required: false, default: "/_scripts/embed/bluesky-image" },
10
+ rootAttrs: { type: Object, required: false }
11
+ });
12
+ if (!props.apiEndpoint || props.apiEndpoint === "/_scripts/embed/bluesky")
13
+ requireRegistryEndpoint("ScriptBlueskyEmbed", "blueskyEmbed");
14
+ const postId = computed(() => extractBlueskyPostId(props.postUrl));
15
+ const cacheKey = computed(() => `bluesky-embed-${postId.value?.actor}-${postId.value?.rkey}`);
16
+ const { data: post, status, error } = useAsyncData(
17
+ cacheKey,
18
+ () => $fetch(`${props.apiEndpoint}?url=${encodeURIComponent(props.postUrl)}`)
19
+ );
20
+ const slotProps = computed(() => {
21
+ if (!post.value)
22
+ return null;
23
+ const p = post.value;
24
+ return {
25
+ // Raw data
26
+ post: p,
27
+ // Author info
28
+ displayName: p.author.displayName,
29
+ handle: p.author.handle,
30
+ avatar: proxyBlueskyImageUrl(p.author.avatar, props.imageProxyEndpoint),
31
+ avatarOriginal: p.author.avatar,
32
+ isVerified: p.author.verification?.verifiedStatus === "valid",
33
+ // Post content
34
+ text: p.record.text,
35
+ richText: facetsToHtml(p.record.text, p.record.facets),
36
+ langs: p.record.langs,
37
+ // Formatted values
38
+ datetime: formatBlueskyDate(p.record.createdAt),
39
+ createdAt: new Date(p.record.createdAt),
40
+ likes: p.likeCount,
41
+ likesFormatted: formatCount(p.likeCount),
42
+ reposts: p.repostCount,
43
+ repostsFormatted: formatCount(p.repostCount),
44
+ replies: p.replyCount,
45
+ repliesFormatted: formatCount(p.replyCount),
46
+ quotes: p.quoteCount,
47
+ quotesFormatted: formatCount(p.quoteCount),
48
+ // Media
49
+ images: p.embed?.images?.map((img) => ({
50
+ thumb: proxyBlueskyImageUrl(img.thumb, props.imageProxyEndpoint),
51
+ fullsize: proxyBlueskyImageUrl(img.fullsize, props.imageProxyEndpoint),
52
+ alt: img.alt,
53
+ aspectRatio: img.aspectRatio
54
+ })),
55
+ externalEmbed: p.embed?.external ? {
56
+ uri: p.embed.external.uri,
57
+ title: p.embed.external.title,
58
+ description: p.embed.external.description,
59
+ thumb: p.embed.external.thumb ? proxyBlueskyImageUrl(p.embed.external.thumb, props.imageProxyEndpoint) : void 0
60
+ } : void 0,
61
+ // Links
62
+ postUrl: props.postUrl,
63
+ authorUrl: `https://bsky.app/profile/${p.author.handle}`,
64
+ // Helpers
65
+ proxyImage: (url) => proxyBlueskyImageUrl(url, props.imageProxyEndpoint)
66
+ };
67
+ });
68
+ defineExpose({
69
+ post,
70
+ status,
71
+ error
72
+ });
73
+ </script>
74
+
75
+ <template>
76
+ <div v-bind="rootAttrs">
77
+ <slot v-if="status === 'pending'" name="loading">
78
+ <div>Loading Bluesky post...</div>
79
+ </slot>
80
+ <slot v-else-if="status === 'error'" name="error" :error="error">
81
+ <div>Failed to load Bluesky post</div>
82
+ </slot>
83
+ <slot v-else-if="slotProps" v-bind="slotProps" />
84
+ </div>
85
+ </template>
@@ -0,0 +1,87 @@
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
+ * @default '/_scripts/embed/bluesky'
12
+ */
13
+ apiEndpoint?: string;
14
+ /**
15
+ * Custom image proxy endpoint
16
+ * @default '/_scripts/embed/bluesky-image'
17
+ */
18
+ imageProxyEndpoint?: string;
19
+ /**
20
+ * Root element attributes
21
+ */
22
+ rootAttrs?: HTMLAttributes;
23
+ };
24
+ declare var __VLS_1: {}, __VLS_3: {
25
+ error: import("nuxt/app").NuxtError<unknown> | undefined;
26
+ }, __VLS_5: {
27
+ post: BlueskyEmbedPostData;
28
+ displayName: string;
29
+ handle: string;
30
+ avatar: string;
31
+ avatarOriginal: string;
32
+ isVerified: boolean;
33
+ text: string;
34
+ richText: string;
35
+ langs: string[] | undefined;
36
+ datetime: string;
37
+ createdAt: Date;
38
+ likes: number;
39
+ likesFormatted: string;
40
+ reposts: number;
41
+ repostsFormatted: string;
42
+ replies: number;
43
+ repliesFormatted: string;
44
+ quotes: number;
45
+ quotesFormatted: string;
46
+ images: {
47
+ thumb: string;
48
+ fullsize: string;
49
+ alt: string;
50
+ aspectRatio: {
51
+ width: number;
52
+ height: number;
53
+ } | undefined;
54
+ }[] | undefined;
55
+ externalEmbed: {
56
+ uri: string;
57
+ title: string;
58
+ description: string;
59
+ thumb: string | undefined;
60
+ } | undefined;
61
+ postUrl: string;
62
+ authorUrl: string;
63
+ proxyImage: (url: string) => string;
64
+ };
65
+ type __VLS_Slots = {} & {
66
+ loading?: (props: typeof __VLS_1) => any;
67
+ } & {
68
+ error?: (props: typeof __VLS_3) => any;
69
+ } & {
70
+ default?: (props: typeof __VLS_5) => any;
71
+ };
72
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
73
+ post: import("vue").Ref<BlueskyEmbedPostData | undefined, BlueskyEmbedPostData | undefined>;
74
+ status: import("vue").Ref<import("nuxt/app").AsyncDataRequestStatus, import("nuxt/app").AsyncDataRequestStatus>;
75
+ error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
76
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
77
+ apiEndpoint: string;
78
+ imageProxyEndpoint: string;
79
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
80
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
81
+ declare const _default: typeof __VLS_export;
82
+ export default _default;
83
+ type __VLS_WithSlots<T, S> = T & {
84
+ new (): {
85
+ $slots: S;
86
+ };
87
+ };
@@ -1,5 +1,5 @@
1
1
  <script setup>
2
- import { ref, onMounted, onBeforeUnmount, watch, computed } from "vue";
2
+ import { computed, onBeforeUnmount, onMounted, ref, watch } from "vue";
3
3
  import { useScriptTriggerElement } from "../composables/useScriptTriggerElement";
4
4
  import { useScriptCrisp } from "../registry/crisp";
5
5
  const props = defineProps({
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
- import { computed, onMounted, ref, watch } from "vue";
3
2
  import { callOnce } from "nuxt/app";
3
+ import { computed, onMounted, ref, watch } from "vue";
4
4
  import { useScriptTriggerElement } from "../composables/useScriptTriggerElement";
5
5
  import { useScriptGoogleAdsense } from "../registry/google-adsense";
6
6
  import { scriptRuntimeConfig } from "../utils";
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ /** Email address — sent to your server proxy for hashing, not sent to Gravatar */
3
+ email?: string;
4
+ /** Pre-computed SHA256 hash of the email */
5
+ hash?: string;
6
+ /** Avatar size in pixels */
7
+ size?: number;
8
+ /** Default avatar style when no Gravatar exists */
9
+ default?: string;
10
+ /** Content rating filter */
11
+ rating?: string;
12
+ /** Enable hovercards on hover */
13
+ hovercards?: boolean;
14
+ };
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
+ default: string;
17
+ size: number;
18
+ rating: string;
19
+ hovercards: boolean;
20
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -0,0 +1,46 @@
1
+ <script setup>
2
+ import { computed, onMounted, ref, useAttrs } from "vue";
3
+ import { useScriptGravatar } from "../registry/gravatar";
4
+ const props = defineProps({
5
+ email: { type: String, required: false },
6
+ hash: { type: String, required: false },
7
+ size: { type: Number, required: false, default: 80 },
8
+ default: { type: String, required: false, default: "mp" },
9
+ rating: { type: String, required: false, default: "g" },
10
+ hovercards: { type: Boolean, required: false, default: false }
11
+ });
12
+ const attrs = useAttrs();
13
+ const imgSrc = ref("");
14
+ const { onLoaded } = useScriptGravatar();
15
+ const queryOverrides = computed(() => ({
16
+ size: props.size,
17
+ default: props.default,
18
+ rating: props.rating
19
+ }));
20
+ onMounted(() => {
21
+ onLoaded((api) => {
22
+ if (props.email) {
23
+ imgSrc.value = api.getAvatarUrlFromEmail(props.email, queryOverrides.value);
24
+ } else if (props.hash) {
25
+ imgSrc.value = api.getAvatarUrl(props.hash, queryOverrides.value);
26
+ }
27
+ });
28
+ });
29
+ </script>
30
+
31
+ <template>
32
+ <img
33
+ v-if="imgSrc"
34
+ :src="imgSrc"
35
+ :width="size"
36
+ :height="size"
37
+ :class="{ hovercard: hovercards }"
38
+ v-bind="attrs"
39
+ :alt="attrs.alt || 'Gravatar avatar'"
40
+ loading="lazy"
41
+ >
42
+ <span
43
+ v-else
44
+ :style="{ display: 'inline-block', width: `${size}px`, height: `${size}px`, borderRadius: '50%', background: '#e0e0e0' }"
45
+ />
46
+ </template>
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ /** Email address — sent to your server proxy for hashing, not sent to Gravatar */
3
+ email?: string;
4
+ /** Pre-computed SHA256 hash of the email */
5
+ hash?: string;
6
+ /** Avatar size in pixels */
7
+ size?: number;
8
+ /** Default avatar style when no Gravatar exists */
9
+ default?: string;
10
+ /** Content rating filter */
11
+ rating?: string;
12
+ /** Enable hovercards on hover */
13
+ hovercards?: boolean;
14
+ };
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
+ default: string;
17
+ size: number;
18
+ rating: string;
19
+ hovercards: boolean;
20
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -12,7 +12,7 @@ type __VLS_Props = {
12
12
  captions?: boolean;
13
13
  /**
14
14
  * Custom API endpoint for fetching embed HTML
15
- * @default '/api/_scripts/instagram-embed'
15
+ * @default '/_scripts/embed/instagram'
16
16
  */
17
17
  apiEndpoint?: string;
18
18
  /**
@@ -40,8 +40,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
40
40
  error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
41
41
  shortcode: import("vue").ComputedRef<string | undefined>;
42
42
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
43
- captions: boolean;
44
43
  apiEndpoint: string;
44
+ captions: boolean;
45
45
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
46
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
47
47
  declare const _default: typeof __VLS_export;
@@ -1,13 +1,16 @@
1
1
  <script setup>
2
- import { computed } from "vue";
3
2
  import { useAsyncData } from "nuxt/app";
3
+ import { computed } from "vue";
4
4
  import { extractInstagramShortcode } from "../registry/instagram-embed";
5
+ import { requireRegistryEndpoint } from "../utils";
5
6
  const props = defineProps({
6
7
  postUrl: { type: String, required: true },
7
8
  captions: { type: Boolean, required: false, default: true },
8
- apiEndpoint: { type: String, required: false, default: "/api/_scripts/instagram-embed" },
9
+ apiEndpoint: { type: String, required: false, default: "/_scripts/embed/instagram" },
9
10
  rootAttrs: { type: Object, required: false }
10
11
  });
12
+ if (!props.apiEndpoint || props.apiEndpoint === "/_scripts/embed/instagram")
13
+ requireRegistryEndpoint("ScriptInstagramEmbed", "instagramEmbed");
11
14
  const shortcode = computed(() => extractInstagramShortcode(props.postUrl));
12
15
  const { data: html, status, error } = useAsyncData(
13
16
  `instagram-embed-${props.postUrl}`,
@@ -12,7 +12,7 @@ type __VLS_Props = {
12
12
  captions?: boolean;
13
13
  /**
14
14
  * Custom API endpoint for fetching embed HTML
15
- * @default '/api/_scripts/instagram-embed'
15
+ * @default '/_scripts/embed/instagram'
16
16
  */
17
17
  apiEndpoint?: string;
18
18
  /**
@@ -40,8 +40,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
40
40
  error: import("vue").Ref<import("nuxt/app").NuxtError<unknown> | undefined, import("nuxt/app").NuxtError<unknown> | undefined>;
41
41
  shortcode: import("vue").ComputedRef<string | undefined>;
42
42
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
43
- captions: boolean;
44
43
  apiEndpoint: string;
44
+ captions: boolean;
45
45
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
46
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
47
47
  declare const _default: typeof __VLS_export;
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
- import { ref, onMounted, watch, onBeforeUnmount, computed } from "vue";
3
- import { useScriptIntercom } from "../registry/intercom";
2
+ import { computed, onBeforeUnmount, onMounted, ref, watch } from "vue";
4
3
  import { useScriptTriggerElement } from "../composables/useScriptTriggerElement";
4
+ import { useScriptIntercom } from "../registry/intercom";
5
5
  const props = defineProps({
6
6
  appId: { type: String, required: true },
7
7
  apiBase: { type: String, required: false },
@@ -52,8 +52,9 @@ onMounted(() => {
52
52
  }
53
53
  });
54
54
  observer.observe(document.body, { childList: true, subtree: true });
55
- } else if (status2 === "error")
55
+ } else if (status2 === "error") {
56
56
  emits("error");
57
+ }
57
58
  });
58
59
  });
59
60
  onBeforeUnmount(() => {
@@ -1,6 +1,6 @@
1
- import { type HTMLAttributes, type ReservedProps } from 'vue';
2
- import type { OnApproveActions, OnApproveData, OnCancelledActions, OnClickActions, OnShippingAddressChangeActions, OnShippingAddressChangeData, OnShippingOptionsChangeActions, OnShippingOptionsChangeData, PayPalButtonsComponentOptions, OnInitActions } from '@paypal/paypal-js';
3
1
  import type { ElementScriptTrigger } from '#nuxt-scripts/types';
2
+ import type { Components, PageTypes, SdkInstance } from '@paypal/paypal-js/sdk-v6';
3
+ import type { HTMLAttributes, ReservedProps } from 'vue';
4
4
  import type { PayPalInput } from '../registry/paypal.js';
5
5
  type __VLS_Props = {
6
6
  /**
@@ -12,55 +12,66 @@ type __VLS_Props = {
12
12
  */
13
13
  trigger?: ElementScriptTrigger;
14
14
  /**
15
- * The client id for the paypal script.
15
+ * Client ID or client token for PayPal SDK v6 authentication.
16
16
  */
17
17
  clientId?: string;
18
18
  /**
19
- * The options for the paypal buttons.
19
+ * Server-generated client token for SDK v6.
20
20
  */
21
- buttonOptions?: PayPalButtonsComponentOptions;
21
+ clientToken?: string;
22
22
  /**
23
- * The paypal script options.
23
+ * The v6 SDK components to load.
24
+ * @default ['paypal-payments']
24
25
  */
25
- paypalScriptOptions?: Partial<PayPalInput>;
26
+ components?: Components[];
27
+ /**
28
+ * The page type context hint.
29
+ */
30
+ pageType?: PageTypes;
31
+ /**
32
+ * The locale for the SDK (BCP-47 code).
33
+ */
34
+ locale?: string;
26
35
  /**
27
- * Disables the paypal buttons.
36
+ * The merchant ID(s).
28
37
  */
29
- disabled?: boolean;
38
+ merchantId?: string | string[];
39
+ /**
40
+ * Partner attribution ID for revenue sharing.
41
+ */
42
+ partnerAttributionId?: string;
43
+ /**
44
+ * The paypal script options.
45
+ */
46
+ paypalScriptOptions?: Partial<PayPalInput>;
30
47
  };
31
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_10: {}, __VLS_12: {}, __VLS_14: {};
48
+ declare var __VLS_1: {
49
+ sdkInstance: SdkInstance<Components[]> | undefined;
50
+ }, __VLS_3: {}, __VLS_5: {}, __VLS_12: {}, __VLS_14: {};
32
51
  type __VLS_Slots = {} & {
33
- placeholder?: (props: typeof __VLS_1) => any;
52
+ default?: (props: typeof __VLS_1) => any;
34
53
  } & {
35
- loading?: (props: typeof __VLS_3) => any;
54
+ placeholder?: (props: typeof __VLS_3) => any;
36
55
  } & {
37
- awaitingLoad?: (props: typeof __VLS_10) => any;
56
+ loading?: (props: typeof __VLS_5) => any;
38
57
  } & {
39
- error?: (props: typeof __VLS_12) => any;
58
+ awaitingLoad?: (props: typeof __VLS_12) => any;
40
59
  } & {
41
- default?: (props: typeof __VLS_14) => any;
60
+ error?: (props: typeof __VLS_14) => any;
42
61
  };
43
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
44
- error: (error: Record<string, unknown>) => any;
45
- init: (data: Record<string, unknown>, actions: OnInitActions) => any;
46
- cancel: (data: Record<string, unknown>, actions: OnCancelledActions) => any;
47
- approve: (data: OnApproveData, actions: OnApproveActions) => any;
48
- clickButtons: (data: Record<string, unknown>, actions: OnClickActions) => any;
49
- shippingOptionsChange: (data: OnShippingOptionsChangeData, actions: OnShippingOptionsChangeActions) => any;
50
- shippingAddressChange: (data: OnShippingAddressChangeData, actions: OnShippingAddressChangeActions) => any;
62
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
63
+ /** The PayPal SDK v6 instance for creating payment sessions, checking eligibility, etc. */
64
+ sdkInstance: import("vue").ShallowRef<SdkInstance<Components[]> | undefined, SdkInstance<Components[]> | undefined>;
65
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
66
+ error: (error: unknown) => any;
67
+ ready: (instance: SdkInstance<Components[]>) => any;
51
68
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
52
- onError?: ((error: Record<string, unknown>) => any) | undefined;
53
- onInit?: ((data: Record<string, unknown>, actions: OnInitActions) => any) | undefined;
54
- onCancel?: ((data: Record<string, unknown>, actions: OnCancelledActions) => any) | undefined;
55
- onApprove?: ((data: OnApproveData, actions: OnApproveActions) => any) | undefined;
56
- onClickButtons?: ((data: Record<string, unknown>, actions: OnClickActions) => any) | undefined;
57
- onShippingOptionsChange?: ((data: OnShippingOptionsChangeData, actions: OnShippingOptionsChangeActions) => any) | undefined;
58
- onShippingAddressChange?: ((data: OnShippingAddressChangeData, actions: OnShippingAddressChangeActions) => any) | undefined;
69
+ onError?: ((error: unknown) => any) | undefined;
70
+ onReady?: ((instance: SdkInstance<Components[]>) => any) | undefined;
59
71
  }>, {
60
72
  trigger: ElementScriptTrigger;
61
- disabled: boolean;
62
73
  clientId: string;
63
- buttonOptions: PayPalButtonsComponentOptions;
74
+ components: Components[];
64
75
  paypalScriptOptions: Partial<PayPalInput>;
65
76
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
66
77
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;