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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/client/200.html +1 -1
  2. package/dist/client/404.html +1 -1
  3. package/dist/client/_nuxt/{DMlY-BNa.js → B7aPLMNo.js} +1 -1
  4. package/dist/client/_nuxt/BNNMZFwZ.js +162 -0
  5. package/dist/client/_nuxt/{__ZZTkMj.js → Bh9fd9qr.js} +1 -1
  6. package/dist/client/_nuxt/{9LJPrOyI.js → UTi7FhVv.js} +1 -1
  7. package/dist/client/_nuxt/builds/latest.json +1 -1
  8. package/dist/client/_nuxt/builds/meta/7b372941-1db0-4ea4-80d2-a41f53088a98.json +1 -0
  9. package/dist/client/_nuxt/error-404.DMdWw4vT.css +1 -0
  10. package/dist/client/_nuxt/error-500.CROTF27X.css +1 -0
  11. package/dist/client/index.html +1 -1
  12. package/dist/module.d.mts +2 -2
  13. package/dist/module.d.ts +2 -2
  14. package/dist/module.json +1 -1
  15. package/dist/module.mjs +75 -51
  16. package/dist/registry.mjs +65 -4
  17. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +3 -3
  18. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +14 -1
  19. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +3 -3
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +2 -2
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +2 -2
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +2 -2
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +2 -2
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +2 -2
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +2 -2
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +2 -2
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +2 -2
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +2 -2
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +2 -2
  30. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +87 -0
  31. package/dist/runtime/components/ScriptBlueskyEmbed.vue +85 -0
  32. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +87 -0
  33. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +2 -2
  34. package/dist/runtime/components/ScriptInstagramEmbed.vue +4 -1
  35. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +2 -2
  36. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +2 -2
  37. package/dist/runtime/components/ScriptXEmbed.vue +5 -2
  38. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +2 -2
  39. package/dist/runtime/registry/bluesky-embed.d.ts +116 -0
  40. package/dist/runtime/registry/bluesky-embed.js +72 -0
  41. package/dist/runtime/registry/gravatar.js +2 -2
  42. package/dist/runtime/registry/schemas.d.ts +20 -3
  43. package/dist/runtime/registry/schemas.js +20 -3
  44. package/dist/runtime/registry/x-embed.js +1 -1
  45. package/dist/runtime/server/bluesky-embed-image.d.ts +2 -0
  46. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  47. package/dist/runtime/server/bluesky-embed.d.ts +16 -0
  48. package/dist/runtime/server/bluesky-embed.js +59 -0
  49. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  50. package/dist/runtime/server/google-maps-geocode-proxy.js +34 -0
  51. package/dist/runtime/server/google-static-maps-proxy.js +1 -12
  52. package/dist/runtime/server/gravatar-proxy.js +1 -16
  53. package/dist/runtime/server/instagram-embed-asset.js +8 -42
  54. package/dist/runtime/server/instagram-embed-image.js +6 -54
  55. package/dist/runtime/server/instagram-embed.d.ts +16 -0
  56. package/dist/runtime/server/instagram-embed.js +171 -42
  57. package/dist/runtime/server/utils/image-proxy.d.ts +12 -0
  58. package/dist/runtime/server/utils/image-proxy.js +70 -0
  59. package/dist/runtime/server/x-embed-image.js +5 -49
  60. package/dist/runtime/types.d.ts +16 -0
  61. package/dist/runtime/utils.d.ts +1 -0
  62. package/dist/runtime/utils.js +11 -2
  63. package/dist/stats.mjs +1 -1
  64. package/dist/types-source.mjs +18 -6
  65. package/package.json +10 -9
  66. package/dist/client/_nuxt/DFEfk2pB.js +0 -162
  67. package/dist/client/_nuxt/builds/meta/8212d4fa-7985-421b-815a-03a886e667d4.json +0 -1
  68. package/dist/client/_nuxt/error-404.CHeaW3dp.css +0 -1
  69. package/dist/client/_nuxt/error-500.DvOvWme_.css +0 -1
@@ -1 +1 @@
1
- import{u as a,f as s,h as u,i as r,g as h}from"./DFEfk2pB.js";function i(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(u()){const n=r(h);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function d(t,e={}){const n=e.head||i(e.nuxt);return a(t,{head:n,...e})}export{d as u};
1
+ import{u as a,f as s,h as u,i as r,g as h}from"./BNNMZFwZ.js";function i(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(u()){const n=r(h);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function d(t,e={}){const n=e.head||i(e.nuxt);return a(t,{head:n,...e})}export{d as u};
@@ -1 +1 @@
1
- import{_ as s,c as a,o as i,a as t,t as n,b as u,w as c,d as l,e as d}from"./DFEfk2pB.js";import{u as f}from"./__ZZTkMj.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=d;return i(),a("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[u(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:c(()=>[l(n(e.backHome),1)]),_:1})])])])}}},N=s(y,[["__scopeId","data-v-df3b570e"]]);export{N as default};
1
+ import{_ as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,e as d}from"./BNNMZFwZ.js";import{u as f}from"./Bh9fd9qr.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=d;return a(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[u(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:c(()=>[l(n(e.backHome),1)]),_:1})])])])}}},N=s(y,[["__scopeId","data-v-428a09fd"]]);export{N as default};
@@ -1 +1 @@
1
- {"id":"8212d4fa-7985-421b-815a-03a886e667d4","timestamp":1773156783796}
1
+ {"id":"7b372941-1db0-4ea4-80d2-a41f53088a98","timestamp":1773401752787}
@@ -0,0 +1 @@
1
+ {"id":"7b372941-1db0-4ea4-80d2-a41f53088a98","timestamp":1773401752787,"prerendered":[]}
@@ -0,0 +1 @@
1
+ .grid[data-v-428a09fd]{display:grid}.mb-2[data-v-428a09fd]{margin-bottom:.5rem}.mb-4[data-v-428a09fd]{margin-bottom:1rem}.max-w-520px[data-v-428a09fd]{max-width:520px}.min-h-screen[data-v-428a09fd]{min-height:100vh}.w-full[data-v-428a09fd]{width:100%}.flex[data-v-428a09fd]{display:flex}.place-content-center[data-v-428a09fd]{place-content:center}.items-center[data-v-428a09fd]{align-items:center}.justify-center[data-v-428a09fd]{justify-content:center}.overflow-hidden[data-v-428a09fd]{overflow:hidden}.bg-white[data-v-428a09fd]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-428a09fd]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-428a09fd]{text-align:center}.text-\[80px\][data-v-428a09fd]{font-size:80px}.text-2xl[data-v-428a09fd]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-428a09fd]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-428a09fd]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-428a09fd]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-428a09fd]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-428a09fd]{font-weight:500}.font-semibold[data-v-428a09fd]{font-weight:600}.leading-none[data-v-428a09fd]{line-height:1}.tracking-wide[data-v-428a09fd]{letter-spacing:.025em}.font-sans[data-v-428a09fd]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-428a09fd]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-428a09fd]{text-decoration-line:underline}.underline-offset-3[data-v-428a09fd]{text-underline-offset:3px}.antialiased[data-v-428a09fd]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-428a09fd]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-428a09fd]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-428a09fd]{font-size:110px}.sm\:text-3xl[data-v-428a09fd]{font-size:1.875rem;line-height:2.25rem}}
@@ -0,0 +1 @@
1
+ .grid[data-v-95a1915b]{display:grid}.mb-2[data-v-95a1915b]{margin-bottom:.5rem}.mb-4[data-v-95a1915b]{margin-bottom:1rem}.max-w-520px[data-v-95a1915b]{max-width:520px}.min-h-screen[data-v-95a1915b]{min-height:100vh}.place-content-center[data-v-95a1915b]{place-content:center}.overflow-hidden[data-v-95a1915b]{overflow:hidden}.bg-white[data-v-95a1915b]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-95a1915b]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-95a1915b]{text-align:center}.text-\[80px\][data-v-95a1915b]{font-size:80px}.text-2xl[data-v-95a1915b]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-95a1915b]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-95a1915b]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-95a1915b]{font-weight:600}.leading-none[data-v-95a1915b]{line-height:1}.tracking-wide[data-v-95a1915b]{letter-spacing:.025em}.font-sans[data-v-95a1915b]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-95a1915b]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-95a1915b]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-95a1915b]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-95a1915b]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-95a1915b]{font-size:110px}.sm\:text-3xl[data-v-95a1915b]{font-size:1.875rem;line-height:2.25rem}}
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.CACgbLJl.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DFEfk2pB.js"><script type="module" src="/__nuxt-scripts/_nuxt/DFEfk2pB.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{"nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"},googleStaticMapsProxy:""}},app:{baseURL:"/__nuxt-scripts",buildId:"8212d4fa-7985-421b-815a-03a886e667d4",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773156788889,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.CACgbLJl.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BNNMZFwZ.js"><script type="module" src="/__nuxt-scripts/_nuxt/BNNMZFwZ.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{"nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"},googleStaticMapsProxy:"",endpoints:{}}},app:{baseURL:"/__nuxt-scripts",buildId:"7b372941-1db0-4ea4-80d2-a41f53088a98",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773401757607,false]</script></body></html>
package/dist/module.d.mts CHANGED
@@ -24,7 +24,7 @@ interface FirstPartyOptions {
24
24
  * Path prefix for serving bundled scripts.
25
25
  *
26
26
  * This is where the downloaded and rewritten script files are served from.
27
- * @default '/_scripts'
27
+ * @default '/_scripts/assets'
28
28
  * @example '/_analytics'
29
29
  */
30
30
  prefix?: string;
@@ -33,7 +33,7 @@ interface FirstPartyOptions {
33
33
  *
34
34
  * Analytics collection requests are proxied through these paths.
35
35
  * For example, Google Analytics collection goes to `/_scripts/c/ga/g/collect`.
36
- * @default '/_proxy'
36
+ * @default '/_scripts/c'
37
37
  * @example '/_tracking'
38
38
  */
39
39
  collectPrefix?: string;
package/dist/module.d.ts CHANGED
@@ -24,7 +24,7 @@ interface FirstPartyOptions {
24
24
  * Path prefix for serving bundled scripts.
25
25
  *
26
26
  * This is where the downloaded and rewritten script files are served from.
27
- * @default '/_scripts'
27
+ * @default '/_scripts/assets'
28
28
  * @example '/_analytics'
29
29
  */
30
30
  prefix?: string;
@@ -33,7 +33,7 @@ interface FirstPartyOptions {
33
33
  *
34
34
  * Analytics collection requests are proxied through these paths.
35
35
  * For example, Google Analytics collection goes to `/_scripts/c/ga/g/collect`.
36
- * @default '/_proxy'
36
+ * @default '/_scripts/c'
37
37
  * @example '/_tracking'
38
38
  */
39
39
  collectPrefix?: string;
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.16"
6
6
  },
7
- "version": "1.0.0-beta.20",
7
+ "version": "1.0.0-beta.22",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -32,7 +32,7 @@ function bundleStorage() {
32
32
  });
33
33
  }
34
34
  function setupPublicAssetStrategy(options = {}) {
35
- const assetsBaseURL = options.prefix || "/_scripts";
35
+ const assetsBaseURL = options.prefix || "/_scripts/assets";
36
36
  const nuxt = useNuxt();
37
37
  const storage = bundleStorage();
38
38
  addDevServerHandler({
@@ -156,18 +156,28 @@ const AUTO_INJECT_DEFS = [
156
156
  function autoInjectProxyEndpoints(registry, runtimeConfig, collectPrefix) {
157
157
  for (const def of AUTO_INJECT_DEFS) {
158
158
  const entry = registry[def.registryKey];
159
- if (!entry || typeof entry !== "object")
159
+ if (!entry)
160
160
  continue;
161
- const config = Array.isArray(entry) ? entry[0] : entry;
162
- if (!config || config[def.configField])
163
- continue;
164
- config[def.configField] = def.computeValue(collectPrefix, config);
165
161
  const rtScripts = runtimeConfig.public?.scripts;
166
162
  const rtEntry = rtScripts?.[def.registryKey];
167
- if (rtEntry && typeof rtEntry === "object") {
168
- const rtConfig = Array.isArray(rtEntry) ? rtEntry[0] : rtEntry;
163
+ const rtConfig = rtEntry && typeof rtEntry === "object" ? Array.isArray(rtEntry) ? rtEntry[0] : rtEntry : void 0;
164
+ let config;
165
+ if (entry === true || entry === "mock") {
166
+ if (!rtConfig)
167
+ continue;
168
+ config = rtConfig;
169
+ } else if (typeof entry === "object") {
170
+ config = Array.isArray(entry) ? entry[0] : entry;
171
+ }
172
+ if (!config || config[def.configField])
173
+ continue;
174
+ const value = def.computeValue(collectPrefix, config);
175
+ if (typeof entry === "object") {
176
+ config[def.configField] = value;
169
177
  if (rtConfig)
170
- rtConfig[def.configField] = config[def.configField];
178
+ rtConfig[def.configField] = value;
179
+ } else {
180
+ config[def.configField] = value;
171
181
  }
172
182
  }
173
183
  }
@@ -237,9 +247,9 @@ function generateInterceptPluginContents(interceptRules) {
237
247
  function resolveFirstPartyConfig(config) {
238
248
  const enabled = !!config.firstParty;
239
249
  const prefix = typeof config.firstParty === "object" ? config.firstParty.prefix : void 0;
240
- const collectPrefix = typeof config.firstParty === "object" ? config.firstParty.collectPrefix || "/_proxy" : "/_proxy";
250
+ const collectPrefix = typeof config.firstParty === "object" ? config.firstParty.collectPrefix || "/_scripts/c" : "/_scripts/c";
241
251
  const privacy = typeof config.firstParty === "object" ? config.firstParty.privacy : void 0;
242
- const assetsPrefix = prefix || config.assets?.prefix || "/_scripts";
252
+ const assetsPrefix = prefix || config.assets?.prefix || "/_scripts/assets";
243
253
  return { enabled, prefix, collectPrefix, privacy, assetsPrefix };
244
254
  }
245
255
  async function setupFirstPartyHandlers(firstParty, resolvePath) {
@@ -262,11 +272,22 @@ function finalizeFirstParty(opts) {
262
272
  const { firstParty, interceptRules, registryScriptsWithImport, nuxtOptions } = opts;
263
273
  const proxyConfigs = getAllProxyConfigs(firstParty.collectPrefix);
264
274
  const registryKeys = Object.keys(opts.registry || {});
275
+ const scriptByKey = /* @__PURE__ */ new Map();
276
+ for (const script of registryScriptsWithImport) {
277
+ if (script.registryKey) {
278
+ scriptByKey.set(script.registryKey, script);
279
+ }
280
+ }
265
281
  const neededRoutes = {};
266
282
  const routePrivacyOverrides = {};
267
283
  const unsupportedScripts = [];
284
+ const unmatchedScripts = [];
268
285
  for (const key of registryKeys) {
269
- const script = registryScriptsWithImport.find((s) => s.import.name.toLowerCase() === `usescript${key.toLowerCase()}`);
286
+ const script = scriptByKey.get(key) || registryScriptsWithImport.find((s) => s.import.name.toLowerCase() === `usescript${key.toLowerCase()}`);
287
+ if (!script) {
288
+ unmatchedScripts.push(key);
289
+ continue;
290
+ }
270
291
  const proxyKey = script?.proxy || void 0;
271
292
  if (proxyKey) {
272
293
  const proxyConfig = proxyConfigs[proxyKey];
@@ -283,6 +304,12 @@ function finalizeFirstParty(opts) {
283
304
  if (opts.registry) {
284
305
  autoInjectProxyEndpoints(opts.registry, nuxtOptions.runtimeConfig, firstParty.collectPrefix);
285
306
  }
307
+ if (unmatchedScripts.length) {
308
+ logger.warn(
309
+ `First-party mode: could not find registry scripts for: ${unmatchedScripts.join(", ")}.
310
+ These scripts will not have proxy routes registered. Check that the registry key matches a known script.`
311
+ );
312
+ }
286
313
  if (unsupportedScripts.length && nuxtOptions.dev) {
287
314
  logger.warn(
288
315
  `First-party mode is enabled but these scripts don't support it yet: ${unsupportedScripts.join(", ")}.
@@ -695,7 +722,7 @@ async function isCacheExpired(storage, filename, cacheMaxAge = SEVEN_DAYS_IN_MS)
695
722
  }
696
723
  return Date.now() - meta.timestamp > cacheMaxAge;
697
724
  }
698
- function normalizeScriptData(src, assetsBaseURL = "/_scripts") {
725
+ function normalizeScriptData(src, assetsBaseURL = "/_scripts/assets") {
699
726
  if (hasProtocol(src, { acceptRelative: true })) {
700
727
  src = src.replace(PROTOCOL_RELATIVE_RE, "https://");
701
728
  const url = parseURL(src);
@@ -1357,17 +1384,18 @@ const module$1 = defineNuxtModule({
1357
1384
  if (unheadVersion?.startsWith("1")) {
1358
1385
  logger.error(`Nuxt Scripts requires Unhead >= 2, you are using v${unheadVersion}. Please run \`nuxi upgrade --clean\` to upgrade...`);
1359
1386
  }
1387
+ const googleMapsEnabled = config.googleStaticMapsProxy?.enabled || !!config.registry?.googleMaps;
1360
1388
  nuxt.options.runtimeConfig["nuxt-scripts"] = {
1361
1389
  version,
1362
1390
  // Private proxy config with API key (server-side only)
1363
- googleStaticMapsProxy: config.googleStaticMapsProxy?.enabled ? { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } : void 0
1391
+ googleStaticMapsProxy: googleMapsEnabled ? { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } : void 0
1364
1392
  };
1365
1393
  nuxt.options.runtimeConfig.public["nuxt-scripts"] = {
1366
1394
  // expose for devtools
1367
1395
  version: nuxt.options.dev ? version : void 0,
1368
1396
  defaultScriptOptions: config.defaultScriptOptions,
1369
1397
  // Only expose enabled and cacheMaxAge to client, not apiKey
1370
- googleStaticMapsProxy: config.googleStaticMapsProxy?.enabled ? { enabled: true, cacheMaxAge: config.googleStaticMapsProxy.cacheMaxAge } : void 0
1398
+ googleStaticMapsProxy: googleMapsEnabled ? { enabled: true, cacheMaxAge: config.googleStaticMapsProxy?.cacheMaxAge ?? 3600 } : void 0
1371
1399
  };
1372
1400
  if (config.registry) {
1373
1401
  nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {};
@@ -1526,43 +1554,39 @@ const module$1 = defineNuxtModule({
1526
1554
  await p?.();
1527
1555
  });
1528
1556
  });
1529
- if (config.googleStaticMapsProxy?.enabled) {
1530
- addServerHandler({
1531
- route: "/_scripts/google-static-maps-proxy",
1532
- handler: await resolvePath("./runtime/server/google-static-maps-proxy")
1533
- });
1534
- }
1535
- if (config.registry?.gravatar) {
1536
- const gravatarConfig = typeof config.registry.gravatar === "object" && !Array.isArray(config.registry.gravatar) ? config.registry.gravatar : {};
1537
- nuxt.options.runtimeConfig.public["nuxt-scripts"] = defu(
1538
- { gravatarProxy: { cacheMaxAge: gravatarConfig.cacheMaxAge ?? 3600 } },
1539
- nuxt.options.runtimeConfig.public["nuxt-scripts"]
1540
- );
1541
- addServerHandler({
1542
- route: "/_scripts/gravatar-proxy",
1543
- handler: await resolvePath("./runtime/server/gravatar-proxy")
1544
- });
1557
+ const enabledEndpoints = {};
1558
+ for (const script of scripts) {
1559
+ if (!script.serverHandlers?.length || !script.registryKey)
1560
+ continue;
1561
+ const isEnabled = script.registryKey === "googleMaps" ? config.googleStaticMapsProxy?.enabled || config.registry?.googleMaps : config.registry?.[script.registryKey];
1562
+ if (!isEnabled)
1563
+ continue;
1564
+ enabledEndpoints[script.registryKey] = true;
1565
+ for (const handler of script.serverHandlers) {
1566
+ addServerHandler({
1567
+ route: handler.route,
1568
+ handler: handler.handler,
1569
+ middleware: handler.middleware
1570
+ });
1571
+ }
1572
+ if (script.registryKey === "gravatar") {
1573
+ const gravatarConfig = typeof config.registry?.gravatar === "object" && !Array.isArray(config.registry.gravatar) ? config.registry.gravatar : {};
1574
+ nuxt.options.runtimeConfig.public["nuxt-scripts"] = defu(
1575
+ { gravatarProxy: { cacheMaxAge: gravatarConfig.cacheMaxAge ?? 3600 } },
1576
+ nuxt.options.runtimeConfig.public["nuxt-scripts"]
1577
+ );
1578
+ }
1579
+ if (script.registryKey === "googleMaps") {
1580
+ nuxt.options.runtimeConfig["nuxt-scripts"] = defu(
1581
+ { googleMapsGeocodeProxy: { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } },
1582
+ nuxt.options.runtimeConfig["nuxt-scripts"]
1583
+ );
1584
+ }
1545
1585
  }
1546
- addServerHandler({
1547
- route: "/api/_scripts/x-embed",
1548
- handler: await resolvePath("./runtime/server/x-embed")
1549
- });
1550
- addServerHandler({
1551
- route: "/api/_scripts/x-embed-image",
1552
- handler: await resolvePath("./runtime/server/x-embed-image")
1553
- });
1554
- addServerHandler({
1555
- route: "/api/_scripts/instagram-embed",
1556
- handler: await resolvePath("./runtime/server/instagram-embed")
1557
- });
1558
- addServerHandler({
1559
- route: "/api/_scripts/instagram-embed-image",
1560
- handler: await resolvePath("./runtime/server/instagram-embed-image")
1561
- });
1562
- addServerHandler({
1563
- route: "/api/_scripts/instagram-embed-asset",
1564
- handler: await resolvePath("./runtime/server/instagram-embed-asset")
1565
- });
1586
+ nuxt.options.runtimeConfig.public["nuxt-scripts"] = defu(
1587
+ { endpoints: enabledEndpoints },
1588
+ nuxt.options.runtimeConfig.public["nuxt-scripts"]
1589
+ );
1566
1590
  if (nuxt.options.dev) {
1567
1591
  setupDevToolsUI(config, resolvePath);
1568
1592
  }
package/dist/registry.mjs CHANGED
@@ -4,6 +4,7 @@ async function registry(resolve) {
4
4
  resolve = resolve || ((s) => Promise.resolve(s));
5
5
  return [
6
6
  {
7
+ registryKey: "plausibleAnalytics",
7
8
  label: "Plausible Analytics",
8
9
  proxy: "plausible",
9
10
  category: "analytics",
@@ -20,6 +21,7 @@ async function registry(resolve) {
20
21
  }
21
22
  },
22
23
  {
24
+ registryKey: "cloudflareWebAnalytics",
23
25
  label: "Cloudflare Web Analytics",
24
26
  proxy: "cloudflareWebAnalytics",
25
27
  src: "https://static.cloudflareinsights.com/beacon.min.js",
@@ -31,6 +33,7 @@ async function registry(resolve) {
31
33
  }
32
34
  },
33
35
  {
36
+ registryKey: "vercelAnalytics",
34
37
  label: "Vercel Analytics",
35
38
  src: "https://va.vercel-scripts.com/v1/script.js",
36
39
  proxy: "vercelAnalytics",
@@ -42,6 +45,7 @@ async function registry(resolve) {
42
45
  }
43
46
  },
44
47
  {
48
+ registryKey: "posthog",
45
49
  label: "PostHog",
46
50
  src: false,
47
51
  proxy: "posthog",
@@ -54,6 +58,7 @@ async function registry(resolve) {
54
58
  }
55
59
  },
56
60
  {
61
+ registryKey: "fathomAnalytics",
57
62
  label: "Fathom Analytics",
58
63
  proxy: "fathom",
59
64
  src: "https://cdn.usefathom.com/script.js",
@@ -65,6 +70,7 @@ async function registry(resolve) {
65
70
  }
66
71
  },
67
72
  {
73
+ registryKey: "matomoAnalytics",
68
74
  label: "Matomo Analytics",
69
75
  scriptBundling: false,
70
76
  // breaks script
@@ -76,6 +82,7 @@ async function registry(resolve) {
76
82
  }
77
83
  },
78
84
  {
85
+ registryKey: "rybbitAnalytics",
79
86
  label: "Rybbit Analytics",
80
87
  proxy: "rybbit",
81
88
  scriptBundling: false,
@@ -91,6 +98,7 @@ async function registry(resolve) {
91
98
  }
92
99
  },
93
100
  {
101
+ registryKey: "databuddyAnalytics",
94
102
  label: "Databuddy Analytics",
95
103
  proxy: "databuddy",
96
104
  scriptBundling: () => "https://cdn.databuddy.cc/databuddy.js",
@@ -102,6 +110,7 @@ async function registry(resolve) {
102
110
  }
103
111
  },
104
112
  {
113
+ registryKey: "segment",
105
114
  label: "Segment",
106
115
  proxy: "segment",
107
116
  scriptBundling: (options) => {
@@ -115,6 +124,7 @@ async function registry(resolve) {
115
124
  }
116
125
  },
117
126
  {
127
+ registryKey: "metaPixel",
118
128
  label: "Meta Pixel",
119
129
  proxy: "metaPixel",
120
130
  src: "https://connect.facebook.net/en_US/fbevents.js",
@@ -126,6 +136,7 @@ async function registry(resolve) {
126
136
  }
127
137
  },
128
138
  {
139
+ registryKey: "xPixel",
129
140
  label: "X Pixel",
130
141
  proxy: "xPixel",
131
142
  src: "https://static.ads-twitter.com/uwt.js",
@@ -140,6 +151,7 @@ async function registry(resolve) {
140
151
  }
141
152
  },
142
153
  {
154
+ registryKey: "tiktokPixel",
143
155
  label: "TikTok Pixel",
144
156
  proxy: "tiktokPixel",
145
157
  category: "ad",
@@ -155,6 +167,7 @@ async function registry(resolve) {
155
167
  }
156
168
  },
157
169
  {
170
+ registryKey: "snapchatPixel",
158
171
  label: "Snapchat Pixel",
159
172
  proxy: "snapchatPixel",
160
173
  src: "https://sc-static.net/scevent.min.js",
@@ -166,6 +179,7 @@ async function registry(resolve) {
166
179
  }
167
180
  },
168
181
  {
182
+ registryKey: "redditPixel",
169
183
  label: "Reddit Pixel",
170
184
  proxy: "redditPixel",
171
185
  src: "https://www.redditstatic.com/ads/pixel.js",
@@ -178,6 +192,7 @@ async function registry(resolve) {
178
192
  },
179
193
  // ad
180
194
  {
195
+ registryKey: "googleAdsense",
181
196
  label: "Google Adsense",
182
197
  proxy: "googleAnalytics",
183
198
  scriptBundling: (options) => {
@@ -196,6 +211,7 @@ async function registry(resolve) {
196
211
  }
197
212
  },
198
213
  {
214
+ registryKey: "carbonAds",
199
215
  label: "Carbon Ads",
200
216
  scriptBundling: false,
201
217
  category: "ad",
@@ -203,6 +219,7 @@ async function registry(resolve) {
203
219
  },
204
220
  // support
205
221
  {
222
+ registryKey: "intercom",
206
223
  label: "Intercom",
207
224
  proxy: "intercom",
208
225
  scriptBundling(options) {
@@ -219,6 +236,7 @@ async function registry(resolve) {
219
236
  }
220
237
  },
221
238
  {
239
+ registryKey: "hotjar",
222
240
  label: "Hotjar",
223
241
  proxy: "hotjar",
224
242
  scriptBundling(options) {
@@ -237,6 +255,7 @@ async function registry(resolve) {
237
255
  }
238
256
  },
239
257
  {
258
+ registryKey: "clarity",
240
259
  label: "Clarity",
241
260
  proxy: "clarity",
242
261
  scriptBundling(options) {
@@ -254,6 +273,7 @@ async function registry(resolve) {
254
273
  },
255
274
  // payments
256
275
  {
276
+ registryKey: "stripe",
257
277
  label: "Stripe",
258
278
  scriptBundling: false,
259
279
  category: "payments",
@@ -264,6 +284,7 @@ async function registry(resolve) {
264
284
  }
265
285
  },
266
286
  {
287
+ registryKey: "lemonSqueezy",
267
288
  label: "Lemon Squeezy",
268
289
  src: false,
269
290
  // should not be bundled
@@ -275,6 +296,7 @@ async function registry(resolve) {
275
296
  }
276
297
  },
277
298
  {
299
+ registryKey: "paypal",
278
300
  label: "PayPal",
279
301
  src: false,
280
302
  // should not be bundled
@@ -287,6 +309,7 @@ async function registry(resolve) {
287
309
  },
288
310
  // video
289
311
  {
312
+ registryKey: "vimeoPlayer",
290
313
  label: "Vimeo Player",
291
314
  category: "video",
292
315
  logo: `<svg xmlns="http://www.w3.org/2000/svg" width="36.74" height="32" viewBox="0 0 256 223"><path fill="#32B8E8" d="M255.876 51.662c-1.139 24.968-18.545 59.157-52.209 102.55c-34.806 45.327-64.254 67.989-88.343 67.989c-14.918 0-27.551-13.799-37.863-41.406c-6.892-25.306-13.775-50.61-20.664-75.915c-7.663-27.592-15.878-41.406-24.661-41.406c-1.915 0-8.617 4.038-20.091 12.081L0 60.008a3257.325 3257.325 0 0 0 37.36-33.38C54.21 12.038 66.86 4.366 75.29 3.59c19.925-1.917 32.187 11.728 36.79 40.938c4.974 31.514 8.415 51.116 10.35 58.788c5.742 26.145 12.06 39.201 18.965 39.201c5.358 0 13.407-8.478 24.138-25.436c10.722-16.963 16.464-29.868 17.24-38.733c1.525-14.638-4.22-21.975-17.24-21.975c-6.128 0-12.447 1.413-18.946 4.206c12.58-41.29 36.618-61.343 72.1-60.199c26.304.773 38.705 17.867 37.19 51.282"/></svg>`,
@@ -296,6 +319,7 @@ async function registry(resolve) {
296
319
  }
297
320
  },
298
321
  {
322
+ registryKey: "youtubePlayer",
299
323
  label: "YouTube Player",
300
324
  category: "video",
301
325
  logo: `<svg xmlns="http://www.w3.org/2000/svg" width="45.52" height="32" viewBox="0 0 256 180"><path fill="red" d="M250.346 28.075A32.18 32.18 0 0 0 227.69 5.418C207.824 0 127.87 0 127.87 0S47.912.164 28.046 5.582A32.18 32.18 0 0 0 5.39 28.24c-6.009 35.298-8.34 89.084.165 122.97a32.18 32.18 0 0 0 22.656 22.657c19.866 5.418 99.822 5.418 99.822 5.418s79.955 0 99.82-5.418a32.18 32.18 0 0 0 22.657-22.657c6.338-35.348 8.291-89.1-.164-123.134"/><path fill="#FFF" d="m102.421 128.06l66.328-38.418l-66.328-38.418z"/></svg>`,
@@ -305,29 +329,56 @@ async function registry(resolve) {
305
329
  }
306
330
  },
307
331
  {
332
+ registryKey: "googleMaps",
308
333
  label: "Google Maps",
309
334
  category: "content",
310
335
  logo: `<svg xmlns="http://www.w3.org/2000/svg" width="22.33" height="32" viewBox="0 0 256 367"><path fill="#34A853" d="M70.585 271.865a370.712 370.712 0 0 1 28.911 42.642c7.374 13.982 10.448 23.463 15.837 40.31c3.305 9.308 6.292 12.086 12.714 12.086c6.998 0 10.173-4.726 12.626-12.035c5.094-15.91 9.091-28.052 15.397-39.525c12.374-22.15 27.75-41.833 42.858-60.75c4.09-5.354 30.534-36.545 42.439-61.156c0 0 14.632-27.035 14.632-64.792c0-35.318-14.43-59.813-14.43-59.813l-41.545 11.126l-25.23 66.451l-6.242 9.163l-1.248 1.66l-1.66 2.078l-2.914 3.319l-4.164 4.163l-22.467 18.304l-56.17 32.432z"/><path fill="#FBBC04" d="M12.612 188.892c13.709 31.313 40.145 58.839 58.031 82.995l95.001-112.534s-13.384 17.504-37.662 17.504c-27.043 0-48.89-21.595-48.89-48.825c0-18.673 11.234-31.501 11.234-31.501l-64.489 17.28z"/><path fill="#4285F4" d="M166.705 5.787c31.552 10.173 58.558 31.53 74.893 63.023l-75.925 90.478s11.234-13.06 11.234-31.617c0-27.864-23.463-48.68-48.81-48.68c-23.969 0-37.735 17.475-37.735 17.475v-57z"/><path fill="#1A73E8" d="M30.015 45.765C48.86 23.218 82.02 0 127.736 0c22.18 0 38.89 5.823 38.89 5.823L90.29 96.516H36.205z"/><path fill="#EA4335" d="M12.612 188.892S0 164.194 0 128.414c0-33.817 13.146-63.377 30.015-82.649l60.318 50.759z"/></svg>`,
311
336
  import: {
312
337
  name: "useScriptGoogleMaps",
313
338
  from: await resolve("./runtime/registry/google-maps")
314
- }
339
+ },
340
+ serverHandlers: [
341
+ { route: "/_scripts/proxy/google-static-maps", handler: await resolve("./runtime/server/google-static-maps-proxy") },
342
+ { route: "/_scripts/proxy/google-maps-geocode", handler: await resolve("./runtime/server/google-maps-geocode-proxy") }
343
+ ]
344
+ },
345
+ {
346
+ registryKey: "blueskyEmbed",
347
+ label: "Bluesky Embed",
348
+ category: "content",
349
+ logo: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 568 501"><path fill="#1185FE" d="M123.121 33.664C188.241 82.553 258.281 181.68 284 234.873c25.719-53.192 95.759-152.32 160.879-201.21C491.866-1.611 568-28.906 568 57.947c0 17.346-9.945 145.713-15.778 166.555c-20.275 72.453-94.155 90.933-159.875 79.748c114.875 19.831 144.097 85.561 81.022 151.291C363.929 569.326 289.18 462.062 284 449.7c-.36-.86-.36-.86 0 0c-5.18 12.362-79.929 119.626-189.369 5.84c-63.075-65.729-33.853-131.46 81.022-151.29c-65.72 11.184-139.6-7.296-159.875-79.749C9.945 203.659 0 75.291 0 57.946C0-28.906 76.134-1.612 123.121 33.664"/></svg>`,
350
+ serverHandlers: [
351
+ { route: "/_scripts/embed/bluesky", handler: await resolve("./runtime/server/bluesky-embed") },
352
+ { route: "/_scripts/embed/bluesky-image", handler: await resolve("./runtime/server/bluesky-embed-image") }
353
+ ]
315
354
  },
316
355
  {
356
+ registryKey: "instagramEmbed",
317
357
  label: "Instagram Embed",
318
358
  category: "content",
319
- logo: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><g fill="none"><rect width="256" height="256" fill="url(#skillIconsInstagram0)" rx="60"/><rect width="256" height="256" fill="url(#skillIconsInstagram1)" rx="60"/><path fill="#fff" d="M128.009 28c-27.158 0-30.567.119-41.233.604c-10.646.488-17.913 2.173-24.271 4.646c-6.578 2.554-12.157 5.971-17.716 11.531c-5.563 5.559-8.98 11.138-11.542 17.713c-2.48 6.36-4.167 13.63-4.646 24.271c-.477 10.667-.602 14.077-.602 41.236s.12 30.557.604 41.223c.49 10.646 2.175 17.913 4.646 24.271c2.556 6.578 5.973 12.157 11.533 17.716c5.557 5.563 11.136 8.988 17.709 11.542c6.363 2.473 13.631 4.158 24.275 4.646c10.668.485 14.073.604 41.23.604c27.161 0 30.559-.119 41.225-.604c10.646-.488 17.921-2.173 24.284-4.646c6.575-2.554 12.146-5.979 17.702-11.542c5.563-5.559 8.98-11.138 11.542-17.716c2.458-6.358 4.145-13.625 4.646-24.271c.48-10.666.604-14.066.604-41.223s-.124-30.569-.604-41.236c-.501-10.646-2.188-17.911-4.646-24.271c-2.562-6.575-5.979-12.154-11.542-17.713c-5.559-5.56-11.13-8.977-17.716-11.531c-6.375-2.473-13.646-4.158-24.292-4.646C158.57 28.119 155.164 28 128.009 28m-8.868 18.021h8.868c26.695 0 29.855.103 40.41.582c9.751.446 15.042 2.079 18.567 3.454c4.667 1.813 7.992 3.979 11.492 7.48c3.5 3.5 5.666 6.829 7.483 11.496c1.375 3.525 3.012 8.813 3.454 18.563c.479 10.558.588 13.719.588 40.413s-.109 29.854-.588 40.412c-.446 9.75-2.079 15.042-3.454 18.563c-1.813 4.667-3.983 7.992-7.483 11.492a30.94 30.94 0 0 1-11.492 7.479c-3.521 1.379-8.812 3.013-18.567 3.458c-10.554.48-13.711.589-40.41.589c-26.702 0-29.859-.109-40.413-.589c-9.75-.449-15.046-2.079-18.571-3.458c-4.667-1.813-8-3.979-11.5-7.479s-5.666-6.825-7.483-11.496c-1.375-3.521-3.012-8.813-3.454-18.563c-.479-10.558-.583-13.715-.583-40.42c0-26.704.104-29.856.583-40.413c.446-9.75 2.079-15.042 3.454-18.567c1.813-4.667 3.983-7.996 11.5-11.5a30.804 30.804 0 0 1 11.496-7.479c3.525-1.375 8.821-3.013 18.571-3.458c9.238-.421 12.82-.546 31.505-.563zm62.496 16.604c-6.625 0-12 5.37-12 12c0 6.625 5.375 12 12 12c6.625 0 12-5.375 12-12s-5.375-12-12-12m-53.628 14.021c-28.272 0-51.196 22.924-51.196 51.196s22.924 51.2 51.196 51.2c28.271 0 51.2-22.929 51.2-51.2c0-28.272-22.929-51.196-51.2-51.196m0 18.021c18.334 0 33.183 14.846 33.183 33.175c0 18.334-14.849 33.184-33.183 33.184c-18.33 0-33.175-14.85-33.175-33.184c0-18.329 14.845-33.175 33.175-33.175"/><defs><radialGradient id="skillIconsInstagram0" cx="0" cy="0" r="1" gradientTransform="matrix(0 -253.715 235.975 0 68 275.717)" gradientUnits="userSpaceOnUse"><stop stop-color="#FD5"/><stop offset=".1" stop-color="#FD5"/><stop offset=".5" stop-color="#FF543E"/><stop offset="1" stop-color="#C837AB"/></radialGradient><radialGradient id="skillIconsInstagram1" cx="0" cy="0" r="1" gradientTransform="matrix(22.25952 111.2976 -458.39518 91.75449 -42.881 18.441)" gradientUnits="userSpaceOnUse"><stop stop-color="#3771C8"/><stop offset=".128" stop-color="#3771C8"/><stop offset="1" stop-color="#60F" stop-opacity="0"/></radialGradient></defs></g></svg>`
359
+ logo: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><g fill="none"><rect width="256" height="256" fill="url(#skillIconsInstagram0)" rx="60"/><rect width="256" height="256" fill="url(#skillIconsInstagram1)" rx="60"/><path fill="#fff" d="M128.009 28c-27.158 0-30.567.119-41.233.604c-10.646.488-17.913 2.173-24.271 4.646c-6.578 2.554-12.157 5.971-17.716 11.531c-5.563 5.559-8.98 11.138-11.542 17.713c-2.48 6.36-4.167 13.63-4.646 24.271c-.477 10.667-.602 14.077-.602 41.236s.12 30.557.604 41.223c.49 10.646 2.175 17.913 4.646 24.271c2.556 6.578 5.973 12.157 11.533 17.716c5.557 5.563 11.136 8.988 17.709 11.542c6.363 2.473 13.631 4.158 24.275 4.646c10.668.485 14.073.604 41.23.604c27.161 0 30.559-.119 41.225-.604c10.646-.488 17.921-2.173 24.284-4.646c6.575-2.554 12.146-5.979 17.702-11.542c5.563-5.559 8.98-11.138 11.542-17.716c2.458-6.358 4.145-13.625 4.646-24.271c.48-10.666.604-14.066.604-41.223s-.124-30.569-.604-41.236c-.501-10.646-2.188-17.911-4.646-24.271c-2.562-6.575-5.979-12.154-11.542-17.713c-5.559-5.56-11.13-8.977-17.716-11.531c-6.375-2.473-13.646-4.158-24.292-4.646C158.57 28.119 155.164 28 128.009 28m-8.868 18.021h8.868c26.695 0 29.855.103 40.41.582c9.751.446 15.042 2.079 18.567 3.454c4.667 1.813 7.992 3.979 11.492 7.48c3.5 3.5 5.666 6.829 7.483 11.496c1.375 3.525 3.012 8.813 3.454 18.563c.479 10.558.588 13.719.588 40.413s-.109 29.854-.588 40.412c-.446 9.75-2.079 15.042-3.454 18.563c-1.813 4.667-3.983 7.992-7.483 11.492a30.94 30.94 0 0 1-11.492 7.479c-3.521 1.379-8.812 3.013-18.567 3.458c-10.554.48-13.711.589-40.41.589c-26.702 0-29.859-.109-40.413-.589c-9.75-.449-15.046-2.079-18.571-3.458c-4.667-1.813-8-3.979-11.5-7.479s-5.666-6.825-7.483-11.496c-1.375-3.521-3.012-8.813-3.454-18.563c-.479-10.558-.583-13.715-.583-40.42c0-26.704.104-29.856.583-40.413c.446-9.75 2.079-15.042 3.454-18.567c1.813-4.667 3.983-7.996 11.5-11.5a30.804 30.804 0 0 1 11.496-7.479c3.525-1.375 8.821-3.013 18.571-3.458c9.238-.421 12.82-.546 31.505-.563zm62.496 16.604c-6.625 0-12 5.37-12 12c0 6.625 5.375 12 12 12c6.625 0 12-5.375 12-12s-5.375-12-12-12m-53.628 14.021c-28.272 0-51.196 22.924-51.196 51.196s22.924 51.2 51.196 51.2c28.271 0 51.2-22.929 51.2-51.2c0-28.272-22.929-51.196-51.2-51.196m0 18.021c18.334 0 33.183 14.846 33.183 33.175c0 18.334-14.849 33.184-33.183 33.184c-18.33 0-33.175-14.85-33.175-33.184c0-18.329 14.845-33.175 33.175-33.175"/><defs><radialGradient id="skillIconsInstagram0" cx="0" cy="0" r="1" gradientTransform="matrix(0 -253.715 235.975 0 68 275.717)" gradientUnits="userSpaceOnUse"><stop stop-color="#FD5"/><stop offset=".1" stop-color="#FD5"/><stop offset=".5" stop-color="#FF543E"/><stop offset="1" stop-color="#C837AB"/></radialGradient><radialGradient id="skillIconsInstagram1" cx="0" cy="0" r="1" gradientTransform="matrix(22.25952 111.2976 -458.39518 91.75449 -42.881 18.441)" gradientUnits="userSpaceOnUse"><stop stop-color="#3771C8"/><stop offset=".128" stop-color="#3771C8"/><stop offset="1" stop-color="#60F" stop-opacity="0"/></radialGradient></defs></g></svg>`,
360
+ serverHandlers: [
361
+ { route: "/_scripts/embed/instagram", handler: await resolve("./runtime/server/instagram-embed") },
362
+ { route: "/_scripts/embed/instagram-image", handler: await resolve("./runtime/server/instagram-embed-image") },
363
+ { route: "/_scripts/embed/instagram-asset", handler: await resolve("./runtime/server/instagram-embed-asset") }
364
+ ]
320
365
  },
321
366
  {
367
+ registryKey: "xEmbed",
322
368
  label: "X Embed",
323
369
  category: "content",
324
370
  logo: {
325
371
  light: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="#000" d="M18.205 2.25h3.308l-7.227 8.26l8.502 11.24H16.13l-5.214-6.817L4.95 21.75H1.64l7.73-8.835L1.215 2.25H8.04l4.713 6.231zm-1.161 17.52h1.833L7.045 4.126H5.078z"/></svg>`,
326
372
  dark: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="#fff" d="M18.205 2.25h3.308l-7.227 8.26l8.502 11.24H16.13l-5.214-6.817L4.95 21.75H1.64l7.73-8.835L1.215 2.25H8.04l4.713 6.231zm-1.161 17.52h1.833L7.045 4.126H5.078z"/></svg>`
327
- }
373
+ },
374
+ serverHandlers: [
375
+ { route: "/_scripts/embed/x", handler: await resolve("./runtime/server/x-embed") },
376
+ { route: "/_scripts/embed/x-image", handler: await resolve("./runtime/server/x-embed-image") }
377
+ ]
328
378
  },
329
379
  // chat
330
380
  {
381
+ registryKey: "crisp",
331
382
  label: "Crisp",
332
383
  proxy: "crisp",
333
384
  category: "support",
@@ -342,6 +393,7 @@ async function registry(resolve) {
342
393
  },
343
394
  // cdn
344
395
  {
396
+ registryKey: "npm",
345
397
  label: "NPM",
346
398
  scriptBundling(options) {
347
399
  return withBase(options?.file || "", `https://unpkg.com/${options?.packageName || ""}@${options?.version || "latest"}`);
@@ -355,6 +407,7 @@ async function registry(resolve) {
355
407
  }
356
408
  },
357
409
  {
410
+ registryKey: "googleRecaptcha",
358
411
  label: "Google reCAPTCHA",
359
412
  category: "utility",
360
413
  logo: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64"><path fill="#1c3aa9" d="M64 32a32 32 0 1 1-64 0 32 32 0 0 1 64 0"/><path fill="#4285f4" d="m32 14-2 18 2 2 18-2V14z"/><path fill="#efefef" d="M14 32v18h18l2-2-2-16-16-2z"/><path fill="#f1f1f1" d="M32 32h18v18H32z"/><path fill="#e1e1e1" d="M14 14h18v18H14z"/><path fill="#1c3aa9" d="M32 14v18H14V14z"/><path fill="#4285f4" d="M32 32v18h18V32z"/><path d="M14 32h18v18H14z" fill="#f1f1f1"/><path d="M32 14h18v18H32z" fill="#fff"/></svg>`,
@@ -371,6 +424,7 @@ async function registry(resolve) {
371
424
  }
372
425
  },
373
426
  {
427
+ registryKey: "googleSignIn",
374
428
  label: "Google Sign-In",
375
429
  src: "https://accounts.google.com/gsi/client",
376
430
  scriptBundling: false,
@@ -383,6 +437,7 @@ async function registry(resolve) {
383
437
  }
384
438
  },
385
439
  {
440
+ registryKey: "googleTagManager",
386
441
  label: "Google Tag Manager",
387
442
  category: "tag-manager",
388
443
  proxy: "googleTagManager",
@@ -410,6 +465,7 @@ async function registry(resolve) {
410
465
  }
411
466
  },
412
467
  {
468
+ registryKey: "googleAnalytics",
413
469
  label: "Google Analytics",
414
470
  category: "analytics",
415
471
  proxy: "googleAnalytics",
@@ -426,6 +482,7 @@ async function registry(resolve) {
426
482
  }
427
483
  },
428
484
  {
485
+ registryKey: "umamiAnalytics",
429
486
  label: "Umami Analytics",
430
487
  proxy: "umami",
431
488
  scriptBundling: () => "https://cloud.umami.is/script.js",
@@ -437,6 +494,7 @@ async function registry(resolve) {
437
494
  }
438
495
  },
439
496
  {
497
+ registryKey: "gravatar",
440
498
  label: "Gravatar",
441
499
  proxy: "gravatar",
442
500
  src: "https://secure.gravatar.com/js/gprofiles.js",
@@ -445,7 +503,10 @@ async function registry(resolve) {
445
503
  import: {
446
504
  name: "useScriptGravatar",
447
505
  from: await resolve("./runtime/registry/gravatar")
448
- }
506
+ },
507
+ serverHandlers: [
508
+ { route: "/_scripts/proxy/gravatar", handler: await resolve("./runtime/server/gravatar-proxy") }
509
+ ]
449
510
  }
450
511
  ];
451
512
  }