@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.
- package/bin/cli.mjs +2 -0
- package/dist/cli.d.mts +2 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.mjs +50 -0
- package/dist/devtools-client/200.html +1 -0
- package/dist/devtools-client/404.html +1 -0
- package/dist/devtools-client/_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2 +0 -0
- package/dist/devtools-client/_fonts/4qBuU9MRVUlPZNPSF7Xom_sK8RBEnfYu-9VXFrdq8A8-8TDwLE1HAj1sQn7XxVWtM_7sIaPM-DTdO3Pf8U2DF1U.woff2 +0 -0
- package/dist/devtools-client/_fonts/6dYsbWUd_BpKJ7mdDihgOcya1gHXLpJBuMYXux3WMjE-q3fYNS8YbW5n7ZeXI2vSNgkRWW5VDPKAl51SNTjG2qk.woff2 +0 -0
- package/dist/devtools-client/_fonts/Lr-hqqZZsYmCt0ITUlr1CUrWim9fsKvoDFZliMxgNHY-iTa_Yt_PzhOY9TX7ZXdSlEPim6iRt92xhECwaxWxd5w.woff2 +0 -0
- package/dist/devtools-client/_fonts/OknHvWI6KtYn1JQBzX7eSpNDBQ8520F9TvSUJYkVf6A-xeZn9253svK_8Q2LD0XEruY_MnEsuCRO5LenPoggC0Y.woff2 +0 -0
- package/dist/devtools-client/_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2 +0 -0
- package/dist/devtools-client/_fonts/UA7OtwYHwGN_HjcVGTdmiQxUit7FlqkCwxVUWSeXVnQ-B4OXCFOL_tWrYODpQTc07aMaj0c2cewTOmBRWR9tD-A.woff2 +0 -0
- package/dist/devtools-client/_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2 +0 -0
- package/dist/devtools-client/_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2 +0 -0
- package/dist/devtools-client/_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2 +0 -0
- package/dist/devtools-client/_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2 +0 -0
- package/dist/devtools-client/_fonts/qxAYvKsXWeYv731eb-h5TRurcdIP_W44mpNdX-HABAk-zUDeMEFlNtNbrwvT9JxLEBg0TphGy70O6RfIoIX_ZwU.woff2 +0 -0
- package/dist/devtools-client/_nuxt/B8PEiB0p.js +1 -0
- package/dist/devtools-client/_nuxt/BgPDxVUn.js +1 -0
- package/dist/devtools-client/_nuxt/BmlapxLP.js +1 -0
- package/dist/devtools-client/_nuxt/CM2vefXI.js +188 -0
- package/dist/devtools-client/_nuxt/DAF5Qk9P.js +1 -0
- package/dist/devtools-client/_nuxt/Dx6HhVmj.js +1 -0
- package/dist/devtools-client/_nuxt/S8LiR9M1.js +1 -0
- package/dist/devtools-client/_nuxt/builds/latest.json +1 -0
- package/dist/devtools-client/_nuxt/builds/meta/5458a3f2-af35-479c-8852-bf6f92fed611.json +1 -0
- package/dist/devtools-client/_nuxt/entry.BKkVrcJj.css +1 -0
- package/dist/devtools-client/_nuxt/error-404.d44aGwWI.css +1 -0
- package/dist/devtools-client/_nuxt/error-500.NthMfIEt.css +1 -0
- package/dist/devtools-client/_nuxt/first-party.C8Ha4JLM.css +1 -0
- package/dist/devtools-client/_nuxt/index.DZD1lwyI.css +1 -0
- package/dist/devtools-client/_nuxt/registry.B9lnjF_b.css +1 -0
- package/dist/devtools-client/_nuxt/vBkR1GJq.js +1 -0
- package/dist/devtools-client/_nuxt/wDzz0qaB.js +1 -0
- package/dist/devtools-client/docs/index.html +1 -0
- package/dist/devtools-client/first-party/index.html +1 -0
- package/dist/devtools-client/index.html +1 -0
- package/dist/devtools-client/registry/index.html +1 -0
- package/dist/module.d.mts +89 -80
- package/dist/module.d.ts +185 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +1056 -756
- package/dist/registry.d.mts +92 -4
- package/dist/registry.d.ts +94 -0
- package/dist/registry.mjs +668 -326
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +77 -165
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +148 -227
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +77 -165
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +6 -55
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +12 -83
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +6 -55
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +24 -38
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +60 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +11 -8
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +57 -57
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +11 -8
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +24 -42
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +71 -74
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +24 -42
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +19 -20
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +85 -38
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +19 -20
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +98 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +263 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +98 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +10 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +9 -41
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +10 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +23 -38
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +23 -38
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +24 -38
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.d.vue.ts +200 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue +170 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue.d.ts +200 -0
- package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
- package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
- package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +10 -0
- package/dist/runtime/components/GoogleMaps/injectionKeys.js +2 -0
- package/dist/runtime/components/GoogleMaps/types.d.ts +42 -0
- package/dist/runtime/components/GoogleMaps/types.js +1 -0
- package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +98 -0
- package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +126 -0
- package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +83 -0
- package/dist/runtime/components/ScriptBlueskyEmbed.vue +91 -0
- package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +83 -0
- package/dist/runtime/components/ScriptCarbonAds.d.vue.ts +4 -7
- package/dist/runtime/components/ScriptCarbonAds.vue +1 -0
- package/dist/runtime/components/ScriptCarbonAds.vue.d.ts +4 -7
- package/dist/runtime/components/ScriptCrisp.d.vue.ts +7 -11
- package/dist/runtime/components/ScriptCrisp.vue +2 -1
- package/dist/runtime/components/ScriptCrisp.vue.d.ts +7 -11
- package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +4 -7
- package/dist/runtime/components/ScriptGoogleAdsense.vue +2 -1
- package/dist/runtime/components/ScriptGoogleAdsense.vue.d.ts +4 -7
- package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
- package/dist/runtime/components/ScriptGravatar.vue +46 -0
- package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
- package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +12 -15
- package/dist/runtime/components/ScriptInstagramEmbed.vue +11 -3
- package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +12 -15
- package/dist/runtime/components/ScriptIntercom.d.vue.ts +7 -11
- package/dist/runtime/components/ScriptIntercom.vue +5 -3
- package/dist/runtime/components/ScriptIntercom.vue.d.ts +7 -11
- package/dist/runtime/components/ScriptLemonSqueezy.d.vue.ts +2 -3
- package/dist/runtime/components/ScriptLemonSqueezy.vue +1 -0
- package/dist/runtime/components/ScriptLemonSqueezy.vue.d.ts +2 -3
- package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -37
- package/dist/runtime/components/ScriptPayPalButtons.vue +49 -79
- package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -37
- package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -28
- package/dist/runtime/components/ScriptPayPalMessages.vue +47 -50
- package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -28
- package/dist/runtime/components/ScriptStripePricingTable.d.vue.ts +5 -9
- package/dist/runtime/components/ScriptStripePricingTable.vue +3 -2
- package/dist/runtime/components/ScriptStripePricingTable.vue.d.ts +5 -9
- package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +17 -11
- package/dist/runtime/components/ScriptVimeoPlayer.vue +14 -10
- package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +17 -11
- package/dist/runtime/components/ScriptXEmbed.d.vue.ts +10 -14
- package/dist/runtime/components/ScriptXEmbed.vue +21 -12
- package/dist/runtime/components/ScriptXEmbed.vue.d.ts +10 -14
- package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +10 -15
- package/dist/runtime/components/ScriptYouTubePlayer.vue +12 -5
- package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +10 -15
- package/dist/runtime/composables/useScript.js +159 -8
- package/dist/runtime/composables/useScriptEventPage.js +2 -2
- package/dist/runtime/composables/useScriptProxyToken.d.ts +12 -0
- package/dist/runtime/composables/useScriptProxyToken.js +4 -0
- package/dist/runtime/composables/useScriptProxyUrl.d.ts +12 -0
- package/dist/runtime/composables/useScriptProxyUrl.js +27 -0
- package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
- package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
- package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
- package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
- package/dist/runtime/devtools-standalone-bridge.client.d.ts +8 -0
- package/dist/runtime/devtools-standalone-bridge.client.js +50 -0
- package/dist/runtime/plugins/proxy-token.server.d.ts +10 -0
- package/dist/runtime/plugins/proxy-token.server.js +17 -0
- package/dist/runtime/registry/bing-uet.d.ts +198 -0
- package/dist/runtime/registry/bing-uet.js +43 -0
- package/dist/runtime/registry/bluesky-embed.d.ts +112 -0
- package/dist/runtime/registry/bluesky-embed.js +68 -0
- package/dist/runtime/registry/clarity.d.ts +16 -17
- package/dist/runtime/registry/clarity.js +33 -31
- package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
- package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
- package/dist/runtime/registry/crisp.d.ts +10 -40
- package/dist/runtime/registry/crisp.js +2 -33
- package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
- package/dist/runtime/registry/databuddy-analytics.js +20 -45
- package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
- package/dist/runtime/registry/fathom-analytics.js +3 -25
- package/dist/runtime/registry/google-adsense.d.ts +3 -11
- package/dist/runtime/registry/google-adsense.js +2 -11
- package/dist/runtime/registry/google-analytics.d.ts +9 -7
- package/dist/runtime/registry/google-analytics.js +15 -9
- package/dist/runtime/registry/google-maps.d.ts +3 -9
- package/dist/runtime/registry/google-maps.js +2 -8
- package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
- package/dist/runtime/registry/google-recaptcha.js +4 -12
- package/dist/runtime/registry/google-sign-in.d.ts +2 -13
- package/dist/runtime/registry/google-sign-in.js +2 -22
- package/dist/runtime/registry/google-tag-manager.d.ts +8 -29
- package/dist/runtime/registry/google-tag-manager.js +14 -28
- package/dist/runtime/registry/gravatar.d.ts +26 -0
- package/dist/runtime/registry/gravatar.js +33 -0
- package/dist/runtime/registry/hotjar.d.ts +4 -6
- package/dist/runtime/registry/hotjar.js +2 -5
- package/dist/runtime/registry/instagram-embed.d.ts +3 -18
- package/dist/runtime/registry/instagram-embed.js +4 -19
- package/dist/runtime/registry/intercom.d.ts +5 -13
- package/dist/runtime/registry/intercom.js +2 -12
- package/dist/runtime/registry/matomo-analytics.d.ts +12 -15
- package/dist/runtime/registry/matomo-analytics.js +31 -13
- package/dist/runtime/registry/meta-pixel.d.ts +12 -8
- package/dist/runtime/registry/meta-pixel.js +12 -5
- package/dist/runtime/registry/mixpanel-analytics.d.ts +32 -0
- package/dist/runtime/registry/mixpanel-analytics.js +58 -0
- package/dist/runtime/registry/npm.d.ts +3 -7
- package/dist/runtime/registry/npm.js +2 -9
- package/dist/runtime/registry/paypal.d.ts +4 -25
- package/dist/runtime/registry/paypal.js +3 -66
- package/dist/runtime/registry/plausible-analytics.js +19 -14
- package/dist/runtime/registry/posthog.d.ts +18 -14
- package/dist/runtime/registry/posthog.js +18 -16
- package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
- package/dist/runtime/registry/reddit-pixel.js +2 -4
- package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
- package/dist/runtime/registry/rybbit-analytics.js +10 -20
- package/dist/runtime/registry/schemas.d.ts +1047 -0
- package/dist/runtime/registry/schemas.js +1004 -0
- package/dist/runtime/registry/segment.d.ts +2 -5
- package/dist/runtime/registry/segment.js +2 -5
- package/dist/runtime/registry/snapchat-pixel.d.ts +5 -34
- package/dist/runtime/registry/snapchat-pixel.js +2 -20
- package/dist/runtime/registry/stripe.d.ts +3 -4
- package/dist/runtime/registry/stripe.js +2 -4
- package/dist/runtime/registry/tiktok-pixel.d.ts +20 -9
- package/dist/runtime/registry/tiktok-pixel.js +24 -7
- package/dist/runtime/registry/umami-analytics.d.ts +2 -31
- package/dist/runtime/registry/umami-analytics.js +2 -36
- package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
- package/dist/runtime/registry/vercel-analytics.js +84 -0
- package/dist/runtime/registry/vimeo-player.d.ts +2 -2
- package/dist/runtime/registry/vimeo-player.js +1 -1
- package/dist/runtime/registry/x-embed.d.ts +3 -21
- package/dist/runtime/registry/x-embed.js +2 -21
- package/dist/runtime/registry/x-pixel.d.ts +4 -7
- package/dist/runtime/registry/x-pixel.js +2 -5
- package/dist/runtime/registry/youtube-player.d.ts +7 -7
- package/dist/runtime/registry/youtube-player.js +1 -1
- package/dist/runtime/server/bluesky-embed-image.d.ts +2 -0
- package/dist/runtime/server/bluesky-embed-image.js +7 -0
- package/dist/runtime/server/bluesky-embed.d.ts +2 -0
- package/dist/runtime/server/bluesky-embed.js +78 -0
- package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
- package/dist/runtime/server/google-maps-geocode-proxy.js +38 -0
- package/dist/runtime/server/google-static-maps-proxy.d.ts +1 -1
- package/dist/runtime/server/google-static-maps-proxy.js +18 -23
- package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
- package/dist/runtime/server/gravatar-proxy.js +46 -0
- package/dist/runtime/server/instagram-embed-asset.d.ts +1 -1
- package/dist/runtime/server/instagram-embed-asset.js +8 -41
- package/dist/runtime/server/instagram-embed-image.d.ts +1 -1
- package/dist/runtime/server/instagram-embed-image.js +6 -53
- package/dist/runtime/server/instagram-embed.d.ts +1 -0
- package/dist/runtime/server/instagram-embed.js +82 -40
- package/dist/runtime/server/proxy-handler.js +102 -85
- package/dist/runtime/server/utils/cached-upstream.d.ts +55 -0
- package/dist/runtime/server/utils/cached-upstream.js +65 -0
- package/dist/runtime/server/utils/embed-rewriters.d.ts +19 -0
- package/dist/runtime/server/utils/embed-rewriters.js +41 -0
- package/dist/runtime/server/utils/image-proxy.d.ts +14 -0
- package/dist/runtime/server/utils/image-proxy.js +73 -0
- package/dist/runtime/server/utils/instagram-embed.d.ts +16 -0
- package/dist/runtime/server/utils/instagram-embed.js +153 -0
- package/dist/runtime/server/utils/privacy.d.ts +1 -10
- package/dist/runtime/server/utils/privacy.js +60 -40
- package/dist/runtime/server/utils/proxy-url.d.ts +9 -0
- package/dist/runtime/server/utils/proxy-url.js +21 -0
- package/dist/runtime/server/utils/sign-constants.d.ts +16 -0
- package/dist/runtime/server/utils/sign-constants.js +5 -0
- package/dist/runtime/server/utils/sign.d.ts +101 -0
- package/dist/runtime/server/utils/sign.js +91 -0
- package/dist/runtime/server/utils/withSigning.d.ts +23 -0
- package/dist/runtime/server/utils/withSigning.js +19 -0
- package/dist/runtime/server/x-embed-image.d.ts +1 -1
- package/dist/runtime/server/x-embed-image.js +5 -49
- package/dist/runtime/server/x-embed.js +26 -6
- package/dist/runtime/types.d.ts +311 -55
- package/dist/runtime/types.js +1 -2
- package/dist/runtime/utils/pure.d.ts +1 -1
- package/dist/runtime/utils.d.ts +6 -4
- package/dist/runtime/utils.js +31 -14
- package/dist/stats.d.mts +202 -0
- package/dist/stats.d.ts +202 -0
- package/dist/stats.mjs +3835 -0
- package/dist/types-source.d.mts +17 -0
- package/dist/types-source.d.ts +17 -0
- package/dist/types-source.mjs +3787 -0
- package/dist/types.d.mts +4 -2
- package/package.json +41 -63
- package/README.md +0 -86
- package/dist/client/200.html +0 -1
- package/dist/client/404.html +0 -1
- package/dist/client/_nuxt/BJa0m50V.js +0 -1
- package/dist/client/_nuxt/BPQ3VLAy.js +0 -1
- package/dist/client/_nuxt/Ci5iXYuB.js +0 -1
- package/dist/client/_nuxt/DaI2y8Uz.js +0 -162
- package/dist/client/_nuxt/builds/latest.json +0 -1
- package/dist/client/_nuxt/builds/meta/9b4fb16a-3c62-48b0-8295-126cb077b5d3.json +0 -1
- package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
- package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
- package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
- package/dist/client/_nuxt/vPLZfVXe.js +0 -1
- package/dist/client/index.html +0 -1
- package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
- package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
- package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
- package/dist/runtime/validation/mock.d.ts +0 -42
- package/dist/runtime/validation/mock.js +0 -21
- package/dist/runtime/validation/valibot.d.ts +0 -1
- package/dist/runtime/validation/valibot.js +0 -1
- /package/dist/{client → devtools-client}/_nuxt/CVO1_9PV.js +0 -0
- /package/dist/{client → devtools-client}/_nuxt/Cp-IABpG.js +0 -0
- /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,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>
|