@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
|
@@ -1,9 +1,111 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveTrigger } from "#build/nuxt-scripts-trigger-resolver";
|
|
2
2
|
import { useScript as _useScript } from "@unhead/vue/scripts";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { defu } from "defu";
|
|
4
|
+
import { injectHead, onNuxtReady, useHead, useNuxtApp, useRuntimeConfig } from "nuxt/app";
|
|
5
|
+
import { markRaw, ref } from "vue";
|
|
5
6
|
import { logger } from "../logger.js";
|
|
6
|
-
|
|
7
|
+
function resolveProxyPrefix() {
|
|
8
|
+
const devtoolsConfig = useRuntimeConfig().public["nuxt-scripts-devtools"];
|
|
9
|
+
return devtoolsConfig?.proxyPrefix || "/_scripts/p";
|
|
10
|
+
}
|
|
11
|
+
function toNetworkRequest(entry, proxyPrefix) {
|
|
12
|
+
const isProxied = entry.name.includes(`${proxyPrefix}/`);
|
|
13
|
+
return {
|
|
14
|
+
url: entry.name,
|
|
15
|
+
startTime: entry.startTime,
|
|
16
|
+
duration: entry.duration,
|
|
17
|
+
transferSize: entry.transferSize,
|
|
18
|
+
encodedBodySize: entry.encodedBodySize,
|
|
19
|
+
decodedBodySize: entry.decodedBodySize,
|
|
20
|
+
initiatorType: entry.initiatorType,
|
|
21
|
+
dns: entry.domainLookupEnd - entry.domainLookupStart,
|
|
22
|
+
connect: entry.connectEnd - entry.connectStart,
|
|
23
|
+
ssl: entry.secureConnectionStart > 0 ? entry.connectEnd - entry.secureConnectionStart : 0,
|
|
24
|
+
ttfb: entry.responseStart - entry.requestStart,
|
|
25
|
+
download: entry.responseEnd - entry.responseStart,
|
|
26
|
+
isProxied
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function createDomainMatcher(domains, proxyPrefix, scriptSrc) {
|
|
30
|
+
const localHostname = window.location.hostname;
|
|
31
|
+
const scriptUrl = (() => {
|
|
32
|
+
if (!scriptSrc)
|
|
33
|
+
return "";
|
|
34
|
+
try {
|
|
35
|
+
return new URL(scriptSrc, window.location.origin).href;
|
|
36
|
+
} catch {
|
|
37
|
+
return "";
|
|
38
|
+
}
|
|
39
|
+
})();
|
|
40
|
+
return function matchesScript(entry) {
|
|
41
|
+
try {
|
|
42
|
+
const entryUrl = new URL(entry.name, window.location.origin);
|
|
43
|
+
if (scriptUrl && entryUrl.href === scriptUrl)
|
|
44
|
+
return true;
|
|
45
|
+
if (entryUrl.hostname !== localHostname && domains.has(entryUrl.hostname))
|
|
46
|
+
return true;
|
|
47
|
+
const proxyPath = `${proxyPrefix}/`;
|
|
48
|
+
const proxyIdx = entryUrl.pathname.indexOf(proxyPath);
|
|
49
|
+
if (proxyIdx !== -1) {
|
|
50
|
+
const afterPrefix = entryUrl.pathname.slice(proxyIdx + proxyPath.length);
|
|
51
|
+
const proxyDomain = afterPrefix.split("/")[0];
|
|
52
|
+
if (proxyDomain && domains.has(proxyDomain))
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function observeNetworkRequests(payload, domains, onUpdate, scriptSrc) {
|
|
61
|
+
if (typeof PerformanceObserver === "undefined")
|
|
62
|
+
return () => {
|
|
63
|
+
};
|
|
64
|
+
const proxyPrefix = resolveProxyPrefix();
|
|
65
|
+
const matchesScript = createDomainMatcher(domains, proxyPrefix, scriptSrc);
|
|
66
|
+
const seen = /* @__PURE__ */ new Set();
|
|
67
|
+
function entryKey(entry) {
|
|
68
|
+
return `${entry.name}@${entry.startTime}`;
|
|
69
|
+
}
|
|
70
|
+
function processEntry(entry) {
|
|
71
|
+
const key = entryKey(entry);
|
|
72
|
+
if (seen.has(key))
|
|
73
|
+
return false;
|
|
74
|
+
if (!matchesScript(entry))
|
|
75
|
+
return false;
|
|
76
|
+
seen.add(key);
|
|
77
|
+
payload.networkRequests.push(toNetworkRequest(entry, proxyPrefix));
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
for (const entry of performance.getEntriesByType("resource"))
|
|
81
|
+
processEntry(entry);
|
|
82
|
+
const observer = new PerformanceObserver((list) => {
|
|
83
|
+
let added = false;
|
|
84
|
+
for (const entry of list.getEntries()) {
|
|
85
|
+
if (processEntry(entry))
|
|
86
|
+
added = true;
|
|
87
|
+
}
|
|
88
|
+
if (added)
|
|
89
|
+
onUpdate();
|
|
90
|
+
});
|
|
91
|
+
observer.observe({ type: "resource", buffered: false });
|
|
92
|
+
return () => observer.disconnect();
|
|
93
|
+
}
|
|
94
|
+
function extractExternalHostname(src) {
|
|
95
|
+
if (!src)
|
|
96
|
+
return "";
|
|
97
|
+
try {
|
|
98
|
+
const hostname = new URL(src, window.location.origin).hostname;
|
|
99
|
+
return hostname === window.location.hostname ? "" : hostname;
|
|
100
|
+
} catch {
|
|
101
|
+
return "";
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function ensureScripts(nuxtApp) {
|
|
105
|
+
if (!nuxtApp.$scripts) {
|
|
106
|
+
nuxtApp.$scripts = {};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
7
109
|
function useNuxtScriptRuntimeConfig() {
|
|
8
110
|
return useRuntimeConfig().public["nuxt-scripts"];
|
|
9
111
|
}
|
|
@@ -22,16 +124,44 @@ export function useScript(input, options) {
|
|
|
22
124
|
script: [{ src, type: "text/partytown" }]
|
|
23
125
|
});
|
|
24
126
|
const nuxtApp2 = useNuxtApp();
|
|
25
|
-
nuxtApp2
|
|
127
|
+
ensureScripts(nuxtApp2);
|
|
26
128
|
const status = ref("loaded");
|
|
129
|
+
let disconnectObserver = () => {
|
|
130
|
+
};
|
|
27
131
|
const stub = {
|
|
28
132
|
id: src,
|
|
29
133
|
status,
|
|
30
134
|
load: () => Promise.resolve({}),
|
|
31
|
-
remove: () =>
|
|
135
|
+
remove: () => {
|
|
136
|
+
disconnectObserver();
|
|
137
|
+
return false;
|
|
138
|
+
},
|
|
32
139
|
entry: void 0
|
|
33
140
|
};
|
|
34
141
|
nuxtApp2.$scripts[src] = stub;
|
|
142
|
+
if (import.meta.dev && import.meta.client) {
|
|
143
|
+
let syncScripts = function() {
|
|
144
|
+
nuxtApp2._scripts[src] = payload;
|
|
145
|
+
nuxtApp2.hooks.callHook("scripts:updated", { scripts: nuxtApp2._scripts });
|
|
146
|
+
};
|
|
147
|
+
nuxtApp2._scripts = nuxtApp2._scripts || {};
|
|
148
|
+
const scriptHostname = extractExternalHostname(src);
|
|
149
|
+
const domains = /* @__PURE__ */ new Set([
|
|
150
|
+
...scriptHostname ? [scriptHostname] : [],
|
|
151
|
+
...options.devtools?.domains || []
|
|
152
|
+
]);
|
|
153
|
+
const payload = {
|
|
154
|
+
...options.devtools,
|
|
155
|
+
src,
|
|
156
|
+
$script: stub,
|
|
157
|
+
events: [
|
|
158
|
+
{ type: "status", status: "loaded", at: Date.now() }
|
|
159
|
+
],
|
|
160
|
+
networkRequests: []
|
|
161
|
+
};
|
|
162
|
+
disconnectObserver = observeNetworkRequests(payload, domains, syncScripts, src);
|
|
163
|
+
syncScripts();
|
|
164
|
+
}
|
|
35
165
|
return stub;
|
|
36
166
|
}
|
|
37
167
|
if (import.meta.dev && options.bundle === "unsupported") {
|
|
@@ -50,7 +180,7 @@ export function useScript(input, options) {
|
|
|
50
180
|
if (!options.head) {
|
|
51
181
|
throw new Error("useScript() has been called without Nuxt context.");
|
|
52
182
|
}
|
|
53
|
-
nuxtApp
|
|
183
|
+
ensureScripts(nuxtApp);
|
|
54
184
|
const exists = !!nuxtApp.$scripts?.[id];
|
|
55
185
|
const err = options._validate?.();
|
|
56
186
|
if (import.meta.dev && import.meta.client && err) {
|
|
@@ -109,7 +239,8 @@ export function useScript(input, options) {
|
|
|
109
239
|
...options.devtools,
|
|
110
240
|
src: input.src,
|
|
111
241
|
$script: null,
|
|
112
|
-
events: []
|
|
242
|
+
events: [],
|
|
243
|
+
networkRequests: []
|
|
113
244
|
};
|
|
114
245
|
nuxtApp._scripts = nuxtApp._scripts || {};
|
|
115
246
|
if (!nuxtApp._scripts[instance.id]) {
|
|
@@ -149,8 +280,28 @@ export function useScript(input, options) {
|
|
|
149
280
|
trigger: options?.trigger,
|
|
150
281
|
at: Date.now()
|
|
151
282
|
});
|
|
283
|
+
const scriptHostname = extractExternalHostname(input.src);
|
|
284
|
+
const domains = /* @__PURE__ */ new Set([
|
|
285
|
+
...scriptHostname ? [scriptHostname] : [],
|
|
286
|
+
...options.devtools?.domains || []
|
|
287
|
+
]);
|
|
288
|
+
let disconnectObserver = observeNetworkRequests(payload, domains, syncScripts, input.src);
|
|
289
|
+
const _origRemove = instance.remove;
|
|
290
|
+
const _origReload = instance.reload;
|
|
291
|
+
instance.remove = () => {
|
|
292
|
+
disconnectObserver();
|
|
293
|
+
return _origRemove();
|
|
294
|
+
};
|
|
295
|
+
instance.reload = async () => {
|
|
296
|
+
disconnectObserver();
|
|
297
|
+
const result = await _origReload();
|
|
298
|
+
disconnectObserver = observeNetworkRequests(payload, domains, syncScripts, input.src);
|
|
299
|
+
return result;
|
|
300
|
+
};
|
|
152
301
|
syncScripts();
|
|
153
302
|
}
|
|
154
303
|
}
|
|
304
|
+
markRaw(instance);
|
|
305
|
+
instance.toJSON = () => ({ id: instance.id, status: instance.status.value });
|
|
155
306
|
return instance;
|
|
156
307
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useNuxtApp, useRoute
|
|
2
|
-
import {
|
|
1
|
+
import { injectHead, useNuxtApp, useRoute } from "nuxt/app";
|
|
2
|
+
import { onScopeDispose, ref } from "vue";
|
|
3
3
|
export function useScriptEventPage(onChange) {
|
|
4
4
|
const nuxt = useNuxtApp();
|
|
5
5
|
const route = useRoute();
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ScriptProxyToken {
|
|
2
|
+
token: string;
|
|
3
|
+
ts: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Shared `useState` holding the proxy page token emitted during SSR.
|
|
7
|
+
*
|
|
8
|
+
* Populated by the `nuxt-scripts:proxy-token` server plugin when
|
|
9
|
+
* `runtimeConfig['nuxt-scripts'].proxySecret` is set, and hydrated to the
|
|
10
|
+
* client via the Nuxt payload. Stays null when signing is disabled.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useScriptProxyToken(): import("vue").Ref<ScriptProxyToken | null, ScriptProxyToken | null>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build proxy URLs that the server's `withSigning` middleware accepts.
|
|
3
|
+
*
|
|
4
|
+
* Attaches the page token emitted during SSR (`_pt` + `_ts`) when one is
|
|
5
|
+
* available, so client-driven proxy calls (e.g. reactive fetches, dynamic
|
|
6
|
+
* image helpers exposed in slot props) authenticate without needing a
|
|
7
|
+
* server round-trip to sign each URL.
|
|
8
|
+
*
|
|
9
|
+
* When no token is present (signing disabled or no secret), emits plain
|
|
10
|
+
* `?url=...` URLs, matching the pre-signing behavior.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useScriptProxyUrl(): (path: string, query?: Record<string, unknown>) => string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PAGE_TOKEN_PARAM, PAGE_TOKEN_TS_PARAM } from "../server/utils/sign-constants.js";
|
|
2
|
+
import { useScriptProxyToken } from "./useScriptProxyToken.js";
|
|
3
|
+
export function useScriptProxyUrl() {
|
|
4
|
+
const token = useScriptProxyToken();
|
|
5
|
+
return (path, query = {}) => {
|
|
6
|
+
const parts = [];
|
|
7
|
+
for (const [key, value] of Object.entries(query)) {
|
|
8
|
+
if (value === void 0 || value === null)
|
|
9
|
+
continue;
|
|
10
|
+
const encodedKey = encodeURIComponent(key);
|
|
11
|
+
if (Array.isArray(value)) {
|
|
12
|
+
for (const item of value) {
|
|
13
|
+
if (item === void 0 || item === null)
|
|
14
|
+
continue;
|
|
15
|
+
parts.push(`${encodedKey}=${encodeURIComponent(String(item))}`);
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
parts.push(`${encodedKey}=${encodeURIComponent(String(value))}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (token.value) {
|
|
22
|
+
parts.push(`${PAGE_TOKEN_PARAM}=${encodeURIComponent(token.value.token)}`);
|
|
23
|
+
parts.push(`${PAGE_TOKEN_TS_PARAM}=${token.value.ts}`);
|
|
24
|
+
}
|
|
25
|
+
return parts.length ? `${path}?${parts.join("&")}` : path;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
1
2
|
import type { ConsentScriptTriggerOptions } from '../types.js';
|
|
2
3
|
interface UseConsentScriptTriggerApi extends Promise<void> {
|
|
3
4
|
/**
|
|
4
5
|
* A function that can be called to accept the consent and load the script.
|
|
5
6
|
*/
|
|
6
7
|
accept: () => void;
|
|
8
|
+
/**
|
|
9
|
+
* A function that can be called to revoke consent and signal the script should be unloaded.
|
|
10
|
+
*/
|
|
11
|
+
revoke: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* Reactive reference to the consent state
|
|
14
|
+
*/
|
|
15
|
+
consented: Ref<boolean>;
|
|
7
16
|
}
|
|
8
17
|
/**
|
|
9
18
|
* Load a script once consent has been provided either through a resolvable `consent` or calling the `accept` method.
|
|
19
|
+
* Supports revoking consent via the reactive `consented` ref. Consumers should watch `consented` to react to revocation.
|
|
10
20
|
* @param options
|
|
11
21
|
*/
|
|
12
22
|
export declare function useScriptTriggerConsent(options?: ConsentScriptTriggerOptions): UseConsentScriptTriggerApi;
|
|
@@ -1,14 +1,37 @@
|
|
|
1
|
+
import { onNuxtReady, requestIdleCallback, tryUseNuxtApp } from "nuxt/app";
|
|
1
2
|
import { isRef, ref, toValue, watch } from "vue";
|
|
2
|
-
import { tryUseNuxtApp, onNuxtReady, requestIdleCallback } from "nuxt/app";
|
|
3
3
|
export function useScriptTriggerConsent(options) {
|
|
4
|
-
if (import.meta.server)
|
|
5
|
-
|
|
4
|
+
if (import.meta.server) {
|
|
5
|
+
const p = new Promise(() => {
|
|
6
6
|
});
|
|
7
|
+
p.accept = () => {
|
|
8
|
+
};
|
|
9
|
+
p.revoke = () => {
|
|
10
|
+
};
|
|
11
|
+
p.consented = ref(false);
|
|
12
|
+
return p;
|
|
13
|
+
}
|
|
7
14
|
const consented = ref(false);
|
|
8
15
|
const nuxtApp = tryUseNuxtApp();
|
|
16
|
+
if (options?.consent) {
|
|
17
|
+
if (isRef(options?.consent)) {
|
|
18
|
+
watch(options.consent, (_val) => {
|
|
19
|
+
const val = toValue(_val);
|
|
20
|
+
consented.value = Boolean(val);
|
|
21
|
+
}, { immediate: true });
|
|
22
|
+
} else if (typeof options?.consent === "boolean") {
|
|
23
|
+
consented.value = options?.consent;
|
|
24
|
+
} else if (options?.consent instanceof Promise) {
|
|
25
|
+
options.consent.then((res) => {
|
|
26
|
+
consented.value = typeof res === "boolean" ? res : true;
|
|
27
|
+
}).catch(() => {
|
|
28
|
+
consented.value = false;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
9
32
|
const promise = new Promise((resolve) => {
|
|
10
|
-
watch(consented, (
|
|
11
|
-
if (
|
|
33
|
+
watch(consented, (newValue, oldValue) => {
|
|
34
|
+
if (newValue && !oldValue) {
|
|
12
35
|
const runner = nuxtApp?.runWithContext || ((cb) => cb());
|
|
13
36
|
if (options?.postConsentTrigger instanceof Promise) {
|
|
14
37
|
options.postConsentTrigger.then(() => runner(resolve));
|
|
@@ -32,24 +55,14 @@ export function useScriptTriggerConsent(options) {
|
|
|
32
55
|
}
|
|
33
56
|
runner(resolve);
|
|
34
57
|
}
|
|
35
|
-
});
|
|
36
|
-
if (options?.consent) {
|
|
37
|
-
if (isRef(options?.consent)) {
|
|
38
|
-
watch(options.consent, (_val) => {
|
|
39
|
-
const val = toValue(_val);
|
|
40
|
-
consented.value = Boolean(val);
|
|
41
|
-
}, { immediate: true });
|
|
42
|
-
} else if (typeof options?.consent === "boolean") {
|
|
43
|
-
consented.value = options?.consent;
|
|
44
|
-
} else if (options?.consent instanceof Promise) {
|
|
45
|
-
options?.consent.then((res) => {
|
|
46
|
-
consented.value = typeof res === "boolean" ? res : true;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
58
|
+
}, { immediate: true });
|
|
50
59
|
});
|
|
51
60
|
promise.accept = () => {
|
|
52
61
|
consented.value = true;
|
|
53
62
|
};
|
|
63
|
+
promise.revoke = () => {
|
|
64
|
+
consented.value = false;
|
|
65
|
+
};
|
|
66
|
+
promise.consented = consented;
|
|
54
67
|
return promise;
|
|
55
68
|
}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
useEventListener,
|
|
3
3
|
useIntersectionObserver
|
|
4
4
|
} from "@vueuse/core";
|
|
5
|
-
import {
|
|
5
|
+
import { tryOnMounted, tryOnScopeDispose } from "@vueuse/shared";
|
|
6
6
|
import { watch } from "vue";
|
|
7
7
|
function useElementVisibilityPromise(element) {
|
|
8
8
|
let observer;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { tryOnScopeDispose } from "@vueuse/shared";
|
|
2
1
|
import { useTimeoutFn } from "@vueuse/core";
|
|
2
|
+
import { tryOnScopeDispose } from "@vueuse/shared";
|
|
3
3
|
import { onNuxtReady } from "nuxt/app";
|
|
4
4
|
export function useScriptTriggerIdleTimeout(options) {
|
|
5
5
|
if (import.meta.server) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev-only client plugin that bridges script state to the standalone devtools API.
|
|
3
|
+
* When `_standaloneDevtools` is enabled, this plugin listens for `scripts:updated`
|
|
4
|
+
* and POSTs a serializable snapshot of script state to `/__nuxt-scripts-api/state`.
|
|
5
|
+
* Also syncs the current route path so standalone devtools can show which page the user is on.
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: import("nuxt/app").Plugin<Record<string, unknown>> & import("nuxt/app").ObjectPlugin<Record<string, unknown>>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { defineNuxtPlugin, useNuxtApp, useRuntimeConfig } from "nuxt/app";
|
|
2
|
+
export default defineNuxtPlugin(() => {
|
|
3
|
+
const nuxtApp = useNuxtApp();
|
|
4
|
+
const config = useRuntimeConfig();
|
|
5
|
+
const version = config.public["nuxt-scripts"]?.version;
|
|
6
|
+
const firstPartyData = config.public["nuxt-scripts-devtools"] || null;
|
|
7
|
+
let lastScripts = {};
|
|
8
|
+
function pushState(scripts) {
|
|
9
|
+
if (scripts)
|
|
10
|
+
lastScripts = scripts;
|
|
11
|
+
const route = nuxtApp.$router?.currentRoute?.value;
|
|
12
|
+
if (route?.path?.startsWith("/__nuxt-scripts"))
|
|
13
|
+
return;
|
|
14
|
+
fetch("/__nuxt-scripts-api/state", {
|
|
15
|
+
method: "POST",
|
|
16
|
+
headers: { "Content-Type": "application/json" },
|
|
17
|
+
body: JSON.stringify({
|
|
18
|
+
scripts: serializeScripts(lastScripts),
|
|
19
|
+
version,
|
|
20
|
+
firstPartyData,
|
|
21
|
+
route: route ? { path: route.path, fullPath: route.fullPath, query: route.query } : null
|
|
22
|
+
})
|
|
23
|
+
}).catch(() => {
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
nuxtApp.hooks.hook("scripts:updated", (ctx) => {
|
|
27
|
+
pushState(ctx.scripts);
|
|
28
|
+
});
|
|
29
|
+
nuxtApp.$router?.afterEach(() => {
|
|
30
|
+
pushState();
|
|
31
|
+
});
|
|
32
|
+
pushState(nuxtApp._scripts || {});
|
|
33
|
+
});
|
|
34
|
+
function serializeScripts(scripts) {
|
|
35
|
+
const result = {};
|
|
36
|
+
for (const [key, script] of Object.entries(scripts)) {
|
|
37
|
+
result[key] = {
|
|
38
|
+
src: script.src,
|
|
39
|
+
key: script.key,
|
|
40
|
+
registryKey: script.registryKey,
|
|
41
|
+
registryMeta: script.registryMeta,
|
|
42
|
+
loadedFrom: script.loadedFrom && script.loadedFrom !== "unknown" ? script.loadedFrom : void 0,
|
|
43
|
+
events: script.events,
|
|
44
|
+
networkRequests: script.networkRequests,
|
|
45
|
+
// Serialize $script status as a plain string (methods won't transfer)
|
|
46
|
+
$script: script.$script ? { status: typeof script.$script.status === "object" ? script.$script.status.value : script.$script.status } : { status: "unknown" }
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emit a per-request proxy page token into the SSR payload.
|
|
3
|
+
*
|
|
4
|
+
* The token authorizes client-side proxy calls (`/embed/x-image?url=...`,
|
|
5
|
+
* `/embed/bluesky?url=...`, etc.) without needing each URL to be signed
|
|
6
|
+
* ahead of time. It stays null when no proxy secret is configured, in
|
|
7
|
+
* which case `withSigning` passes requests through unchecked.
|
|
8
|
+
*/
|
|
9
|
+
declare const _default: import("nuxt/app").Plugin<Record<string, unknown>> & import("nuxt/app").ObjectPlugin<Record<string, unknown>>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineNuxtPlugin, useRuntimeConfig } from "nuxt/app";
|
|
2
|
+
import { useScriptProxyToken } from "../composables/useScriptProxyToken.js";
|
|
3
|
+
import { generateProxyToken } from "../server/utils/sign.js";
|
|
4
|
+
export default defineNuxtPlugin({
|
|
5
|
+
name: "nuxt-scripts:proxy-token",
|
|
6
|
+
enforce: "pre",
|
|
7
|
+
setup() {
|
|
8
|
+
const secret = useRuntimeConfig()["nuxt-scripts"]?.proxySecret;
|
|
9
|
+
if (!secret)
|
|
10
|
+
return;
|
|
11
|
+
const ts = Math.floor(Date.now() / 1e3);
|
|
12
|
+
useScriptProxyToken().value = {
|
|
13
|
+
token: generateProxyToken(secret, ts),
|
|
14
|
+
ts
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
});
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { RegistryScriptInput, UseScriptContext } from '#nuxt-scripts/types';
|
|
2
|
+
import { BingUetOptions } from './schemas.js';
|
|
3
|
+
export { BingUetOptions };
|
|
4
|
+
export type BingUetInput = RegistryScriptInput<typeof BingUetOptions, true, false>;
|
|
5
|
+
export type BingUetConsentStatus = 'granted' | 'denied';
|
|
6
|
+
export interface BingUetConsentOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Controls storage of advertising identifiers. Currently the only field UET honors.
|
|
9
|
+
*/
|
|
10
|
+
ad_storage?: BingUetConsentStatus;
|
|
11
|
+
}
|
|
12
|
+
export type BingUetEventName = 'page_view' | 'screen_view' | 'login' | 'sign_up' | 'subscribe' | 'start_trial' | 'lead' | 'generate_lead' | 'submit_lead_form' | 'contact' | 'search' | 'view_search_results' | 'select_content' | 'share' | 'exception' | 'find_location' | 'book_appointment' | 'get_route' | 'view_item' | 'view_item_list' | 'view_promotion' | 'add_to_cart' | 'remove_from_cart' | 'add_to_wishlist' | 'add_payment_info' | 'begin_checkout' | 'checkout_progress' | 'set_checkout_option' | 'purchase' | 'refund' | (string & {});
|
|
13
|
+
export interface BingUetItem {
|
|
14
|
+
id?: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
brand?: string;
|
|
17
|
+
category?: string;
|
|
18
|
+
variant?: string;
|
|
19
|
+
price?: number;
|
|
20
|
+
quantity?: number;
|
|
21
|
+
list_name?: string;
|
|
22
|
+
list_position?: number;
|
|
23
|
+
creative_name?: string;
|
|
24
|
+
creative_slot?: string;
|
|
25
|
+
location_id?: string;
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
}
|
|
28
|
+
export interface BingUetPromotion {
|
|
29
|
+
id?: string;
|
|
30
|
+
name?: string;
|
|
31
|
+
creative_name?: string;
|
|
32
|
+
creative_slot?: string;
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}
|
|
35
|
+
export interface BingUetEventParams {
|
|
36
|
+
/** Event category (beacon shortcut). */
|
|
37
|
+
ec?: string;
|
|
38
|
+
/** Event action (beacon shortcut). */
|
|
39
|
+
ea?: string;
|
|
40
|
+
/** Event label (beacon shortcut). */
|
|
41
|
+
el?: string;
|
|
42
|
+
/** Event value, numeric (beacon shortcut). */
|
|
43
|
+
ev?: number;
|
|
44
|
+
/** Goal category / goal completion. */
|
|
45
|
+
gc?: string;
|
|
46
|
+
/** Goal value. */
|
|
47
|
+
gv?: number;
|
|
48
|
+
/** Long-form alias for `ec`. */
|
|
49
|
+
event_category?: string;
|
|
50
|
+
/** Long-form alias for `ea`. */
|
|
51
|
+
event_action?: string;
|
|
52
|
+
/** Long-form alias for `el`. */
|
|
53
|
+
event_label?: string;
|
|
54
|
+
/** Long-form alias for `ev`. */
|
|
55
|
+
event_value?: number;
|
|
56
|
+
/** Unique event identifier (dedup). */
|
|
57
|
+
event_id?: string;
|
|
58
|
+
/** Variable revenue amount. */
|
|
59
|
+
revenue_value?: number;
|
|
60
|
+
/** ISO 4217 currency code (e.g. "USD"). */
|
|
61
|
+
currency?: string;
|
|
62
|
+
/** Unique order/transaction ID (dedup). */
|
|
63
|
+
transaction_id?: string;
|
|
64
|
+
/** Ecommerce items. */
|
|
65
|
+
items?: BingUetItem[];
|
|
66
|
+
/** Promotions associated with the event. */
|
|
67
|
+
promotions?: BingUetPromotion[];
|
|
68
|
+
/** Sign-up/login method (e.g. "Google"). */
|
|
69
|
+
method?: string;
|
|
70
|
+
coupon?: string;
|
|
71
|
+
tax?: number;
|
|
72
|
+
shipping?: number;
|
|
73
|
+
affiliation?: string;
|
|
74
|
+
/** Search query. */
|
|
75
|
+
search_term?: string;
|
|
76
|
+
content_type?: string;
|
|
77
|
+
content_id?: string;
|
|
78
|
+
checkout_step?: number;
|
|
79
|
+
checkout_option?: string;
|
|
80
|
+
description?: string;
|
|
81
|
+
name?: string;
|
|
82
|
+
screen_name?: string;
|
|
83
|
+
/** Whether an exception is fatal. */
|
|
84
|
+
fatal?: boolean;
|
|
85
|
+
/** Flags a new customer conversion. */
|
|
86
|
+
new_customer?: boolean | number;
|
|
87
|
+
/** Retail vertical: product ID. */
|
|
88
|
+
ecomm_prodid?: string | string[];
|
|
89
|
+
/** Retail vertical: page type. */
|
|
90
|
+
ecomm_pagetype?: 'home' | 'searchresults' | 'category' | 'product' | 'cart' | 'purchase' | 'other' | (string & {});
|
|
91
|
+
ecomm_totalvalue?: number;
|
|
92
|
+
ecomm_category?: string | string[];
|
|
93
|
+
ecomm_query?: string;
|
|
94
|
+
/** Override page path. */
|
|
95
|
+
page_path?: string;
|
|
96
|
+
/** Override page title. */
|
|
97
|
+
page_title?: string;
|
|
98
|
+
/** Override full page URL. */
|
|
99
|
+
page_location?: string;
|
|
100
|
+
[key: string]: any;
|
|
101
|
+
}
|
|
102
|
+
export interface BingUetEnhancedConversionsPid {
|
|
103
|
+
/** SHA-256 hashed email (lowercase, trimmed). Alias: `email`. */
|
|
104
|
+
em?: string;
|
|
105
|
+
/** SHA-256 hashed phone (E.164 digits only). Alias: `phone_number`. */
|
|
106
|
+
ph?: string;
|
|
107
|
+
/** Long-form alias for `em`. */
|
|
108
|
+
email?: string;
|
|
109
|
+
/** Long-form alias for `ph`. */
|
|
110
|
+
phone_number?: string;
|
|
111
|
+
[key: string]: any;
|
|
112
|
+
}
|
|
113
|
+
export interface BingUetSetParams {
|
|
114
|
+
/** Partner identifiers for enhanced conversions. */
|
|
115
|
+
pid?: BingUetEnhancedConversionsPid;
|
|
116
|
+
page_path?: string;
|
|
117
|
+
page_title?: string;
|
|
118
|
+
page_location?: string;
|
|
119
|
+
[key: string]: any;
|
|
120
|
+
}
|
|
121
|
+
export interface BingUetTcfConfig {
|
|
122
|
+
/** Enable TCF v2.0 auto-consent handling (Microsoft vendorId 1126). */
|
|
123
|
+
enabled?: boolean;
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
}
|
|
126
|
+
export interface BingUetConstructorOptions {
|
|
127
|
+
/** UET tag ID. */
|
|
128
|
+
ti: string;
|
|
129
|
+
/** Alternate tag ID field (same effect as `ti`). */
|
|
130
|
+
tagId?: string;
|
|
131
|
+
/** Auto-fire pageLoad on SPA route changes. */
|
|
132
|
+
enableAutoSpaTracking?: boolean;
|
|
133
|
+
/** Enable TCF v2.0 auto-consent handling. */
|
|
134
|
+
enableAutoConsent?: boolean;
|
|
135
|
+
/** Suppress automatic page_view on load. */
|
|
136
|
+
disableAutoPageView?: boolean;
|
|
137
|
+
/** Disable the UET container entirely. */
|
|
138
|
+
disableContainer?: boolean;
|
|
139
|
+
/** Disable writing the UET visitor ID cookie. */
|
|
140
|
+
disableUetVid?: boolean;
|
|
141
|
+
/** Disable visibility (tab focus/blur) events. */
|
|
142
|
+
disableVisibilityEvents?: boolean;
|
|
143
|
+
/** Defer loading the beacon. */
|
|
144
|
+
deferLoad?: boolean;
|
|
145
|
+
/** Strip query strings from reported URLs. */
|
|
146
|
+
removeQueryFromUrls?: boolean;
|
|
147
|
+
/** Store conversion tracking cookies. */
|
|
148
|
+
storeConvTrackCookies?: boolean;
|
|
149
|
+
/** Cookie domain. */
|
|
150
|
+
cookieDomain?: string;
|
|
151
|
+
/** Cookie flags (e.g. "SameSite=None; Secure"). */
|
|
152
|
+
cookieFlags?: string;
|
|
153
|
+
/** Enable MS DNS cookie. */
|
|
154
|
+
msDnsCookie?: boolean;
|
|
155
|
+
/** UID cookie name. */
|
|
156
|
+
uidCookie?: string;
|
|
157
|
+
/** Error beacon verbosity level. */
|
|
158
|
+
errorBeaconLevel?: number;
|
|
159
|
+
/** Microsoft Clarity project ID for integration. */
|
|
160
|
+
clarityProjectId?: string;
|
|
161
|
+
/** When true, reads `window.enhanced_conversion_data` for gtag-style enhanced conversions. */
|
|
162
|
+
gtagPid?: boolean;
|
|
163
|
+
/** Beacon protocol version. */
|
|
164
|
+
Ver?: 1 | 2;
|
|
165
|
+
/** Associated advertiser ID. */
|
|
166
|
+
advertiserId?: string;
|
|
167
|
+
/** Source tag for GTM integration. */
|
|
168
|
+
gtmTagSource?: string;
|
|
169
|
+
/** Queue reference, typically `window.uetq`. */
|
|
170
|
+
q?: any[];
|
|
171
|
+
[key: string]: any;
|
|
172
|
+
}
|
|
173
|
+
export interface BingUetQueue {
|
|
174
|
+
push: {
|
|
175
|
+
(event: BingUetEventParams): void;
|
|
176
|
+
(command: 'pageLoad'): void;
|
|
177
|
+
(command: 'event', eventName: BingUetEventName, eventParams?: BingUetEventParams): void;
|
|
178
|
+
(command: 'consent', action: 'default' | 'update', consentParams: BingUetConsentOptions): void;
|
|
179
|
+
(command: 'set', params: BingUetSetParams): void;
|
|
180
|
+
(command: 'config', target: 'tcf', params: BingUetTcfConfig): void;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
export interface BingUetApi {
|
|
184
|
+
uetq: BingUetQueue;
|
|
185
|
+
}
|
|
186
|
+
declare global {
|
|
187
|
+
interface Window {
|
|
188
|
+
UET: new (options: BingUetConstructorOptions) => BingUetQueue;
|
|
189
|
+
uetq: any[] | BingUetQueue;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
export interface BingUetConsent {
|
|
193
|
+
/** Push `['consent','update', state]` with the `ad_storage` signal. */
|
|
194
|
+
update: (state: BingUetConsentOptions) => void;
|
|
195
|
+
}
|
|
196
|
+
export declare function useScriptBingUet<T extends BingUetApi>(_options?: BingUetInput & {
|
|
197
|
+
onBeforeUetStart?: (uetq: BingUetQueue) => void;
|
|
198
|
+
}): UseScriptContext<T, BingUetConsent>;
|