@nuxt/scripts 1.0.0-beta.2 → 1.0.0-beta.20

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 (165) 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/{B66N9HCo.js → 9LJPrOyI.js} +1 -1
  5. package/dist/client/_nuxt/DFEfk2pB.js +162 -0
  6. package/dist/client/_nuxt/{DvH517bE.js → DMlY-BNa.js} +1 -1
  7. package/dist/client/_nuxt/{DfLgoB--.js → __ZZTkMj.js} +1 -1
  8. package/dist/client/_nuxt/builds/latest.json +1 -1
  9. package/dist/client/_nuxt/builds/meta/8212d4fa-7985-421b-815a-03a886e667d4.json +1 -0
  10. package/dist/client/_nuxt/entry.CACgbLJl.css +1 -0
  11. package/dist/client/_nuxt/error-404.CHeaW3dp.css +1 -0
  12. package/dist/client/_nuxt/error-500.DvOvWme_.css +1 -0
  13. package/dist/client/index.html +1 -1
  14. package/dist/module.d.mts +27 -18
  15. package/dist/module.d.ts +178 -0
  16. package/dist/module.json +1 -1
  17. package/dist/module.mjs +747 -527
  18. package/dist/registry.d.ts +6 -0
  19. package/dist/registry.mjs +74 -21
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +2 -2
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +7 -7
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +2 -2
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +6 -6
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +7 -7
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +6 -6
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +12 -12
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +6 -6
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +1 -1
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +6 -6
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +1 -1
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +5 -5
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +7 -7
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +7 -7
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +7 -7
  35. package/dist/runtime/components/ScriptCrisp.vue +1 -1
  36. package/dist/runtime/components/ScriptGoogleAdsense.vue +1 -1
  37. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  38. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  39. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  40. package/dist/runtime/components/ScriptInstagramEmbed.vue +1 -1
  41. package/dist/runtime/components/ScriptIntercom.vue +4 -3
  42. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -32
  43. package/dist/runtime/components/ScriptPayPalButtons.vue +48 -79
  44. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -32
  45. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -23
  46. package/dist/runtime/components/ScriptPayPalMessages.vue +46 -50
  47. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -23
  48. package/dist/runtime/components/ScriptStripePricingTable.vue +2 -2
  49. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +9 -0
  50. package/dist/runtime/components/ScriptVimeoPlayer.vue +13 -10
  51. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +9 -0
  52. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +1 -1
  53. package/dist/runtime/components/ScriptXEmbed.vue +1 -1
  54. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +1 -1
  55. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +2 -2
  56. package/dist/runtime/components/ScriptYouTubePlayer.vue +11 -5
  57. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +2 -2
  58. package/dist/runtime/composables/useScript.js +11 -6
  59. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  60. package/dist/runtime/composables/useScriptTriggerConsent.js +1 -1
  61. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  62. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  63. package/dist/runtime/registry/clarity.d.ts +10 -15
  64. package/dist/runtime/registry/clarity.js +22 -31
  65. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  66. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  67. package/dist/runtime/registry/crisp.d.ts +9 -39
  68. package/dist/runtime/registry/crisp.js +2 -33
  69. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  70. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  71. package/dist/runtime/registry/fathom-analytics.d.ts +6 -25
  72. package/dist/runtime/registry/fathom-analytics.js +2 -24
  73. package/dist/runtime/registry/google-adsense.d.ts +2 -10
  74. package/dist/runtime/registry/google-adsense.js +2 -11
  75. package/dist/runtime/registry/google-analytics.d.ts +3 -5
  76. package/dist/runtime/registry/google-analytics.js +3 -8
  77. package/dist/runtime/registry/google-maps.d.ts +3 -9
  78. package/dist/runtime/registry/google-maps.js +2 -8
  79. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  80. package/dist/runtime/registry/google-recaptcha.js +4 -12
  81. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  82. package/dist/runtime/registry/google-sign-in.js +2 -22
  83. package/dist/runtime/registry/google-tag-manager.d.ts +3 -28
  84. package/dist/runtime/registry/google-tag-manager.js +4 -27
  85. package/dist/runtime/registry/gravatar.d.ts +25 -0
  86. package/dist/runtime/registry/gravatar.js +32 -0
  87. package/dist/runtime/registry/hotjar.d.ts +3 -5
  88. package/dist/runtime/registry/hotjar.js +2 -5
  89. package/dist/runtime/registry/instagram-embed.d.ts +2 -17
  90. package/dist/runtime/registry/instagram-embed.js +4 -19
  91. package/dist/runtime/registry/intercom.d.ts +3 -11
  92. package/dist/runtime/registry/intercom.js +2 -12
  93. package/dist/runtime/registry/matomo-analytics.d.ts +2 -11
  94. package/dist/runtime/registry/matomo-analytics.js +3 -12
  95. package/dist/runtime/registry/meta-pixel.d.ts +3 -5
  96. package/dist/runtime/registry/meta-pixel.js +2 -4
  97. package/dist/runtime/registry/npm.d.ts +2 -6
  98. package/dist/runtime/registry/npm.js +2 -9
  99. package/dist/runtime/registry/paypal.d.ts +4 -25
  100. package/dist/runtime/registry/paypal.js +3 -66
  101. package/dist/runtime/registry/plausible-analytics.js +18 -13
  102. package/dist/runtime/registry/posthog.d.ts +10 -11
  103. package/dist/runtime/registry/posthog.js +7 -20
  104. package/dist/runtime/registry/reddit-pixel.d.ts +4 -5
  105. package/dist/runtime/registry/reddit-pixel.js +2 -4
  106. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  107. package/dist/runtime/registry/rybbit-analytics.js +7 -19
  108. package/dist/runtime/registry/schemas.d.ts +946 -0
  109. package/dist/runtime/registry/schemas.js +901 -0
  110. package/dist/runtime/registry/segment.d.ts +2 -5
  111. package/dist/runtime/registry/segment.js +2 -5
  112. package/dist/runtime/registry/snapchat-pixel.d.ts +3 -32
  113. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  114. package/dist/runtime/registry/stripe.d.ts +3 -4
  115. package/dist/runtime/registry/stripe.js +2 -4
  116. package/dist/runtime/registry/tiktok-pixel.d.ts +3 -6
  117. package/dist/runtime/registry/tiktok-pixel.js +2 -6
  118. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  119. package/dist/runtime/registry/umami-analytics.js +2 -36
  120. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  121. package/dist/runtime/registry/vercel-analytics.js +84 -0
  122. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  123. package/dist/runtime/registry/vimeo-player.js +1 -1
  124. package/dist/runtime/registry/x-embed.d.ts +2 -16
  125. package/dist/runtime/registry/x-embed.js +2 -17
  126. package/dist/runtime/registry/x-pixel.d.ts +3 -6
  127. package/dist/runtime/registry/x-pixel.js +2 -5
  128. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  129. package/dist/runtime/registry/youtube-player.js +1 -1
  130. package/dist/runtime/server/google-static-maps-proxy.js +1 -1
  131. package/dist/runtime/server/{sw-handler.d.ts → gravatar-proxy.d.ts} +1 -1
  132. package/dist/runtime/server/gravatar-proxy.js +62 -0
  133. package/dist/runtime/server/instagram-embed-asset.js +2 -1
  134. package/dist/runtime/server/instagram-embed-image.js +2 -1
  135. package/dist/runtime/server/instagram-embed.js +22 -13
  136. package/dist/runtime/server/proxy-handler.js +161 -117
  137. package/dist/runtime/server/utils/privacy.d.ts +45 -1
  138. package/dist/runtime/server/utils/privacy.js +103 -40
  139. package/dist/runtime/server/x-embed.js +3 -2
  140. package/dist/runtime/types.d.ts +30 -24
  141. package/dist/runtime/utils/pure.d.ts +0 -4
  142. package/dist/runtime/utils/pure.js +0 -67
  143. package/dist/runtime/utils.d.ts +3 -3
  144. package/dist/runtime/utils.js +12 -7
  145. package/dist/shared/scripts.Crpn87WB.mjs +318 -0
  146. package/dist/stats.d.mts +39 -0
  147. package/dist/stats.d.ts +39 -0
  148. package/dist/stats.mjs +772 -0
  149. package/dist/types-source.d.mts +19 -0
  150. package/dist/types-source.d.ts +19 -0
  151. package/dist/types-source.mjs +975 -0
  152. package/package.json +42 -31
  153. package/dist/client/_nuxt/B8XOar-X.js +0 -162
  154. package/dist/client/_nuxt/builds/meta/133a46c5-a5c1-4a63-87d1-037947a5bcdb.json +0 -1
  155. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  156. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  157. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  158. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  159. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  160. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  161. package/dist/runtime/plugins/sw-register.client.d.ts +0 -2
  162. package/dist/runtime/plugins/sw-register.client.js +0 -12
  163. package/dist/runtime/server/sw-handler.js +0 -25
  164. package/dist/runtime/sw/proxy-sw.template.d.ts +0 -1
  165. package/dist/runtime/sw/proxy-sw.template.js +0 -54
@@ -1,4 +1,4 @@
1
- import { type InjectionKey, type ShallowRef } from 'vue';
1
+ import type { InjectionKey, ShallowRef } from 'vue';
2
2
  export interface MarkerClustererInstance {
3
3
  render: () => void;
4
4
  setMap: (map: google.maps.Map | null) => void;
@@ -1,10 +1,6 @@
1
- <template>
2
- <slot v-if="markerClusterer" />
3
- </template>
4
-
5
1
  <script>
6
- import { inject, onUnmounted, provide, shallowRef } from "vue";
7
2
  import { whenever } from "@vueuse/core";
3
+ import { inject, onUnmounted, provide, shallowRef } from "vue";
8
4
  import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
9
5
  export const MARKER_CLUSTERER_INJECTION_KEY = /* @__PURE__ */ Symbol("marker-clusterer");
10
6
  </script>
@@ -13,12 +9,12 @@ export const MARKER_CLUSTERER_INJECTION_KEY = /* @__PURE__ */ Symbol("marker-clu
13
9
  const props = defineProps({
14
10
  options: { type: Object, required: false }
15
11
  });
12
+ const emit = defineEmits([]);
16
13
  const markerClustererEvents = [
17
14
  "click",
18
15
  "clusteringbegin",
19
16
  "clusteringend"
20
17
  ];
21
- const emit = defineEmits([]);
22
18
  const mapContext = inject(MAP_INJECTION_KEY, void 0);
23
19
  const markerClusterer = shallowRef(void 0);
24
20
  whenever(() => mapContext?.map.value, async (map) => {
@@ -60,3 +56,7 @@ function setupMarkerClustererEventListeners(clusterer) {
60
56
  });
61
57
  }
62
58
  </script>
59
+
60
+ <template>
61
+ <slot v-if="markerClusterer" />
62
+ </template>
@@ -1,4 +1,4 @@
1
- import { type InjectionKey, type ShallowRef } from 'vue';
1
+ import type { InjectionKey, ShallowRef } from 'vue';
2
2
  export interface MarkerClustererInstance {
3
3
  render: () => void;
4
4
  setMap: (map: google.maps.Map | null) => void;
@@ -1,10 +1,6 @@
1
- <template>
2
-
3
- </template>
4
-
5
1
  <script setup>
6
- import { inject, onUnmounted, shallowRef } from "vue";
7
2
  import { whenever } from "@vueuse/core";
3
+ import { inject, onUnmounted, shallowRef } from "vue";
8
4
  import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
9
5
  import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./ScriptGoogleMapsAdvancedMarkerElement.vue";
10
6
  const props = defineProps({
@@ -41,3 +37,7 @@ onUnmounted(() => {
41
37
  pinElement.value = void 0;
42
38
  });
43
39
  </script>
40
+
41
+ <template>
42
+
43
+ </template>
@@ -1,14 +1,11 @@
1
- <template>
2
-
3
- </template>
4
-
5
1
  <script setup>
6
- import { inject, onUnmounted } from "vue";
7
2
  import { whenever } from "@vueuse/core";
3
+ import { inject, onUnmounted } from "vue";
8
4
  import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
9
5
  const props = defineProps({
10
6
  options: { type: Object, required: false }
11
7
  });
8
+ const emit = defineEmits([]);
12
9
  const eventsWithPolyMouseEventPayload = [
13
10
  "click",
14
11
  "contextmenu",
@@ -24,9 +21,8 @@ const eventsWithMapMouseEventPayload = [
24
21
  "dragend",
25
22
  "dragstart"
26
23
  ];
27
- const emit = defineEmits([]);
28
24
  const mapContext = inject(MAP_INJECTION_KEY, void 0);
29
- let polygon = void 0;
25
+ let polygon;
30
26
  whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
31
27
  polygon = new mapContext.mapsApi.value.Polygon({
32
28
  map: mapContext.map.value,
@@ -58,3 +54,7 @@ function setupPolygonEventListeners(polygon2) {
58
54
  });
59
55
  }
60
56
  </script>
57
+
58
+ <template>
59
+
60
+ </template>
@@ -1,14 +1,11 @@
1
- <template>
2
-
3
- </template>
4
-
5
1
  <script setup>
6
- import { inject, onUnmounted } from "vue";
7
2
  import { whenever } from "@vueuse/core";
3
+ import { inject, onUnmounted } from "vue";
8
4
  import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
9
5
  const props = defineProps({
10
6
  options: { type: Object, required: false }
11
7
  });
8
+ const emit = defineEmits([]);
12
9
  const eventsWithPolyMouseEventPayload = [
13
10
  "click",
14
11
  "contextmenu",
@@ -24,9 +21,8 @@ const eventsWithMapMouseEventPayload = [
24
21
  "dragend",
25
22
  "dragstart"
26
23
  ];
27
- const emit = defineEmits([]);
28
24
  const mapContext = inject(MAP_INJECTION_KEY, void 0);
29
- let polyline = void 0;
25
+ let polyline;
30
26
  whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
31
27
  polyline = new mapContext.mapsApi.value.Polyline({
32
28
  map: mapContext.map.value,
@@ -58,3 +54,7 @@ function setupPolylineEventListeners(polyline2) {
58
54
  });
59
55
  }
60
56
  </script>
57
+
58
+ <template>
59
+
60
+ </template>
@@ -1,14 +1,11 @@
1
- <template>
2
-
3
- </template>
4
-
5
1
  <script setup>
6
- import { inject, onUnmounted } from "vue";
7
2
  import { whenever } from "@vueuse/core";
3
+ import { inject, onUnmounted } from "vue";
8
4
  import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
9
5
  const props = defineProps({
10
6
  options: { type: Object, required: false }
11
7
  });
8
+ const emit = defineEmits([]);
12
9
  const eventsWithoutPayload = [
13
10
  "bounds_changed"
14
11
  ];
@@ -25,9 +22,8 @@ const eventsWithMapMouseEventPayload = [
25
22
  "mouseover",
26
23
  "mouseup"
27
24
  ];
28
- const emit = defineEmits([]);
29
25
  const mapContext = inject(MAP_INJECTION_KEY, void 0);
30
- let rectangle = void 0;
26
+ let rectangle;
31
27
  whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
32
28
  rectangle = new mapContext.mapsApi.value.Rectangle({
33
29
  map: mapContext.map.value,
@@ -59,3 +55,7 @@ function setupRectangleEventListeners(rectangle2) {
59
55
  });
60
56
  }
61
57
  </script>
58
+
59
+ <template>
60
+
61
+ </template>
@@ -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;
@@ -1,6 +1,6 @@
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
5
  const props = defineProps({
6
6
  postUrl: { type: String, required: true },
@@ -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>;
@@ -1,98 +1,66 @@
1
1
  <script setup>
2
- import { computed, onMounted, ref, shallowRef, watch } from "vue";
3
2
  import { defu } from "defu";
4
- import { useScriptPayPal } from "../registry/paypal";
3
+ import { computed, onBeforeUnmount, onMounted, ref, resolveComponent, shallowRef } from "vue";
5
4
  import { useScriptTriggerElement } from "../composables/useScriptTriggerElement";
6
- import { onBeforeUnmount, resolveComponent } from "vue";
7
- const el = ref(null);
8
- const rootEl = ref(null);
5
+ import { useScriptPayPal } from "../registry/paypal";
9
6
  const props = defineProps({
10
7
  rootAttrs: { type: Object, required: false },
11
8
  trigger: { type: [String, Array, Boolean], required: false, default: "visible" },
12
9
  clientId: { type: String, required: false, default: "test" },
13
- buttonOptions: { type: Object, required: false, default: () => ({}) },
14
- paypalScriptOptions: { type: Object, required: false, default: () => ({}) },
15
- disabled: { type: Boolean, required: false, default: false }
10
+ clientToken: { type: String, required: false },
11
+ components: { type: Array, required: false, default: () => ["paypal-payments"] },
12
+ pageType: { type: String, required: false },
13
+ locale: { type: String, required: false },
14
+ merchantId: { type: [String, Array], required: false },
15
+ partnerAttributionId: { type: String, required: false },
16
+ paypalScriptOptions: { type: Object, required: false, default: () => ({}) }
16
17
  });
18
+ const emit = defineEmits(["ready", "error"]);
19
+ const el = ref(null);
20
+ const rootEl = ref(null);
17
21
  const ready = ref(false);
22
+ const failed = ref(false);
23
+ const sdkInstance = shallowRef();
18
24
  const { onLoaded, status } = useScriptPayPal({
19
- clientId: props.clientId,
25
+ ...props.clientToken ? { clientToken: props.clientToken } : { clientId: props.clientId },
20
26
  ...props.paypalScriptOptions
21
27
  });
22
- const emit = defineEmits(["approve", "error", "cancel", "clickButtons", "shippingOptionsChange", "shippingAddressChange", "init"]);
23
- const initActions = shallowRef(null);
24
- const handleDisabled = () => {
25
- if (!initActions.value) return;
26
- if (props.disabled) {
27
- initActions.value.disable();
28
- } else {
29
- initActions.value.enable();
30
- }
31
- };
32
- const options = computed(() => {
33
- const _options = {
34
- onApprove: async (data, actions) => {
35
- emit("approve", data, actions);
36
- return props.buttonOptions?.onApprove?.(data, actions);
37
- },
38
- onError: (err) => {
39
- emit("error", err);
40
- return props.buttonOptions?.onError?.(err);
41
- },
42
- onCancel: (data, actions) => {
43
- emit("cancel", data, actions);
44
- return props.buttonOptions?.onCancel?.(data, actions);
45
- },
46
- onClick: (data, actions) => {
47
- emit("clickButtons", data, actions);
48
- return props.buttonOptions?.onClick?.(data, actions);
49
- },
50
- onShippingOptionsChange: async (data, actions) => {
51
- emit("shippingOptionsChange", data, actions);
52
- return props.buttonOptions?.onShippingOptionsChange?.(data, actions);
53
- },
54
- onShippingAddressChange: async (data, actions) => {
55
- emit("shippingAddressChange", data, actions);
56
- return props.buttonOptions?.onShippingAddressChange?.(data, actions);
57
- },
58
- onInit: (data, actions) => {
59
- initActions.value = actions;
60
- actions.disable();
61
- handleDisabled();
62
- emit("init", data, actions);
63
- return props.buttonOptions?.onInit?.(data, actions);
64
- }
65
- };
66
- return defu(_options, props.buttonOptions);
67
- });
68
- watch(() => props.disabled, handleDisabled);
69
- const buttonInst = shallowRef();
70
28
  onMounted(() => {
71
29
  onLoaded(async ({ paypal }) => {
72
- if (!el.value) return;
73
- buttonInst.value = paypal?.Buttons?.(options.value);
74
- await buttonInst.value?.render(el.value);
75
- ready.value = true;
76
- watch(() => options.value, async (_options) => {
77
- if (!el.value) return;
78
- await buttonInst.value?.updateProps(_options);
79
- });
30
+ if (!el.value)
31
+ return;
32
+ const instanceOptions = {
33
+ ...props.clientToken ? { clientToken: props.clientToken } : { clientId: props.clientId },
34
+ components: props.components,
35
+ ...props.pageType && { pageType: props.pageType },
36
+ ...props.locale && { locale: props.locale },
37
+ ...props.merchantId && { merchantId: props.merchantId },
38
+ ...props.partnerAttributionId && { partnerAttributionId: props.partnerAttributionId }
39
+ };
40
+ try {
41
+ sdkInstance.value = await paypal.createInstance(instanceOptions);
42
+ ready.value = true;
43
+ emit("ready", sdkInstance.value);
44
+ } catch (err) {
45
+ sdkInstance.value = void 0;
46
+ failed.value = true;
47
+ emit("error", err);
48
+ }
80
49
  });
81
50
  });
82
- async function destroy() {
83
- if (buttonInst.value) {
84
- await buttonInst.value?.close();
85
- }
86
- }
87
- onBeforeUnmount(async () => {
88
- await destroy();
51
+ onBeforeUnmount(() => {
52
+ sdkInstance.value = void 0;
53
+ });
54
+ defineExpose({
55
+ /** The PayPal SDK v6 instance for creating payment sessions, checking eligibility, etc. */
56
+ sdkInstance
89
57
  });
90
58
  const ScriptLoadingIndicator = resolveComponent("ScriptLoadingIndicator");
91
59
  const trigger = useScriptTriggerElement({ trigger: props.trigger, el: rootEl });
92
60
  const rootAttrs = computed(() => {
93
61
  return defu(props.rootAttrs, {
94
62
  "aria-busy": status.value === "loading",
95
- "aria-label": status.value === "awaitingLoad" ? "PayPal Script Placeholder" : status.value === "loading" ? "PayPal Buttons Loading" : "PayPal Buttons",
63
+ "aria-label": status.value === "awaitingLoad" ? "PayPal Script Placeholder" : status.value === "loading" ? "PayPal Loading" : "PayPal",
96
64
  "aria-live": "polite",
97
65
  "role": "application",
98
66
  ...trigger instanceof Promise ? trigger.ssrAttrs || {} : {}
@@ -101,16 +69,17 @@ const rootAttrs = computed(() => {
101
69
  </script>
102
70
 
103
71
  <template>
104
- <div v-bind="rootAttrs" id="test">
105
- <div v-show="ready" ref="el" />
106
- <slot v-if="!ready" name="placeholder">
72
+ <div ref="rootEl" v-bind="rootAttrs">
73
+ <div ref="el">
74
+ <slot v-if="ready" name="default" :sdk-instance="sdkInstance" />
75
+ </div>
76
+ <slot v-if="status !== 'error' && !ready && !failed" name="placeholder">
107
77
  placeholder
108
78
  </slot>
109
- <slot v-if="status !== 'awaitingLoad' && !ready" name="loading">
79
+ <slot v-if="status !== 'awaitingLoad' && status !== 'error' && !ready && !failed" name="loading">
110
80
  <ScriptLoadingIndicator color="black" />
111
81
  </slot>
112
82
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
113
- <slot v-else-if="status === 'error'" name="error" />
114
- <slot />
83
+ <slot v-else-if="status === 'error' || failed" name="error" />
115
84
  </div>
116
85
  </template>