@nuxt/scripts 1.3.8 → 1.3.9
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/dist/devtools-client/200.html +1 -1
- package/dist/devtools-client/404.html +1 -1
- package/dist/devtools-client/_nuxt/builds/latest.json +1 -1
- package/dist/devtools-client/_nuxt/builds/meta/1dc91393-e14b-458a-ae2f-e484d40bb9cc.json +1 -0
- package/dist/devtools-client/docs/index.html +1 -1
- package/dist/devtools-client/first-party/index.html +1 -1
- package/dist/devtools-client/index.html +1 -1
- package/dist/devtools-client/registry/index.html +1 -1
- package/dist/module.json +1 -1
- package/dist/runtime/components/ScriptCarbonAds.vue +5 -2
- package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +2 -1
- package/dist/runtime/components/ScriptGoogleAdsense.vue +2 -0
- package/dist/runtime/components/ScriptGoogleAdsense.vue.d.ts +2 -1
- package/dist/runtime/server/proxy-handler.d.ts +0 -4
- package/dist/runtime/server/proxy-handler.js +109 -38
- package/dist/runtime/server/utils/network-dispatcher.platform.d.ts +2 -2
- package/dist/runtime/server/utils/network-dispatcher.platform.js +4 -1
- package/dist/types-source.mjs +7 -2
- package/package.json +1 -1
- package/dist/devtools-client/_nuxt/builds/meta/0859565b-d57a-4d27-9ba8-d3b4167514d4.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"1dc91393-e14b-458a-ae2f-e484d40bb9cc",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1788930263755,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"1dc91393-e14b-458a-ae2f-e484d40bb9cc",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1788930263755,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"1dc91393-e14b-458a-ae2f-e484d40bb9cc","timestamp":1788930257434}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"1dc91393-e14b-458a-ae2f-e484d40bb9cc","timestamp":1788930257434,"prerendered":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"1dc91393-e14b-458a-ae2f-e484d40bb9cc",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1788930263753,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"1dc91393-e14b-458a-ae2f-e484d40bb9cc",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1788930263754,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"1dc91393-e14b-458a-ae2f-e484d40bb9cc",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1788930263755,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/Dl7W1ViV.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.9HJPJ6Hp.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dl7W1ViV.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B551Pnuh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BKdLzFmX.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CH5oUfNi.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CP7c-Js6.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_v3_O0R.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CC0GKROJ.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B8_EBdhg.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxN78VhB.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BDNMzG2s.js"><script type="module" src="/__nuxt-scripts/_nuxt/Dl7W1ViV.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DMbpbO54.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/qhed-kSA.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgS3c2Ky.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/VbXTXTou.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZCL-v6S.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.Bq2JQbJs.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DTP8MRtW.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.5E_FOzlc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KxC4Q3ev.js"><script>"use strict";(()=>{const o=window,e=document.documentElement,c=["dark","light"],s=getStorageValue("localStorage","nuxt-color-mode")||"system";let r=s==="system"?f():s;const l=e.getAttribute("data-color-mode-forced");l&&(r=l),i(r),o["__NUXT_COLOR_MODE__"]={preference:s,value:r,getColorScheme:f,addColorScheme:i,removeColorScheme:d};function i(t){const a=""+t+"",n="";e.classList?e.classList.add(a):e.className+=" "+a,n&&e.setAttribute("data-"+n,t)}function d(t){const a=""+t+"",n="";e.classList?e.classList.remove(a):e.className=e.className.replace(new RegExp(a,"g"),""),n&&e.removeAttribute("data-"+n)}function u(t){return o.matchMedia("(prefers-color-scheme"+t+")")}function f(){if(o.matchMedia&&u("").media!=="not all"){for(const t of c)if(u(":"+t).matches)return t}return"light"}})();function getStorageValue(o,e){switch(o){case"localStorage":try{return window.localStorage.getItem(e)}catch{return null}case"sessionStorage":try{return window.sessionStorage.getItem(e)}catch{return null}case"cookie":try{return getCookie(e)}catch{return null}default:return null}}function getCookie(o){const c=("; "+window.document.cookie).split("; "+o+"=");if(c.length===2){const s=c.pop();return s?s.split(";").shift():null}}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildId:"1dc91393-e14b-458a-ae2f-e484d40bb9cc",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1788930263754,false]</script></body></html>
|
package/dist/module.json
CHANGED
|
@@ -11,7 +11,7 @@ const props = defineProps({
|
|
|
11
11
|
const emit = defineEmits(["error", "ready"]);
|
|
12
12
|
defineSlots();
|
|
13
13
|
const attrId = `_carbonads_js`;
|
|
14
|
-
const carbonadsEl = ref(
|
|
14
|
+
const carbonadsEl = ref(null);
|
|
15
15
|
const status = ref("awaitingLoad");
|
|
16
16
|
let scriptEl;
|
|
17
17
|
function loadCarbon() {
|
|
@@ -39,6 +39,7 @@ function loadCarbon() {
|
|
|
39
39
|
emit("ready", script);
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
|
+
document.getElementById(attrId)?.remove();
|
|
42
43
|
carbonadsEl.value.appendChild(script);
|
|
43
44
|
}
|
|
44
45
|
const trigger = useScriptTriggerElement({ trigger: props.trigger, el: carbonadsEl });
|
|
@@ -61,7 +62,9 @@ onBeforeUnmount(() => {
|
|
|
61
62
|
if (scriptEl) {
|
|
62
63
|
scriptEl.onload = null;
|
|
63
64
|
scriptEl.onerror = null;
|
|
64
|
-
|
|
65
|
+
const owner = document.getElementById(attrId);
|
|
66
|
+
if (!owner || owner === scriptEl)
|
|
67
|
+
document.head.appendChild(scriptEl);
|
|
65
68
|
scriptEl = void 0;
|
|
66
69
|
}
|
|
67
70
|
});
|
|
@@ -3,7 +3,8 @@ type __VLS_Props = {
|
|
|
3
3
|
dataAdClient: string;
|
|
4
4
|
dataAdSlot: string;
|
|
5
5
|
dataAdFormat?: 'auto' | 'rectangle' | 'vertical' | 'horizontal' | 'fluid' | 'autorelaxed';
|
|
6
|
-
dataAdLayout?: 'in-article' | '
|
|
6
|
+
dataAdLayout?: 'in-article' | 'image-top' | 'image-side' | 'text-only';
|
|
7
|
+
dataAdLayoutKey?: string;
|
|
7
8
|
dataFullWidthResponsive?: boolean;
|
|
8
9
|
/**
|
|
9
10
|
* Defines the trigger event to load the script.
|
|
@@ -9,6 +9,7 @@ const props = defineProps({
|
|
|
9
9
|
dataAdSlot: { type: String, required: true },
|
|
10
10
|
dataAdFormat: { type: String, required: false, default: void 0 },
|
|
11
11
|
dataAdLayout: { type: String, required: false },
|
|
12
|
+
dataAdLayoutKey: { type: String, required: false },
|
|
12
13
|
dataFullWidthResponsive: { type: Boolean, required: false, default: true },
|
|
13
14
|
trigger: { type: [String, Array, Boolean], required: false }
|
|
14
15
|
});
|
|
@@ -61,6 +62,7 @@ const rootAttrs = computed(() => {
|
|
|
61
62
|
:data-ad-slot="dataAdSlot"
|
|
62
63
|
:data-ad-format="dataAdFormat"
|
|
63
64
|
:data-ad-layout="dataAdLayout"
|
|
65
|
+
:data-ad-layout-key="dataAdLayoutKey"
|
|
64
66
|
:data-full-width-responsive="dataFullWidthResponsive"
|
|
65
67
|
v-bind="rootAttrs"
|
|
66
68
|
/>
|
|
@@ -3,7 +3,8 @@ type __VLS_Props = {
|
|
|
3
3
|
dataAdClient: string;
|
|
4
4
|
dataAdSlot: string;
|
|
5
5
|
dataAdFormat?: 'auto' | 'rectangle' | 'vertical' | 'horizontal' | 'fluid' | 'autorelaxed';
|
|
6
|
-
dataAdLayout?: 'in-article' | '
|
|
6
|
+
dataAdLayout?: 'in-article' | 'image-top' | 'image-side' | 'text-only';
|
|
7
|
+
dataAdLayoutKey?: string;
|
|
7
8
|
dataFullWidthResponsive?: boolean;
|
|
8
9
|
/**
|
|
9
10
|
* Defines the trigger event to load the script.
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
export declare const SKIP_REQUEST_HEADERS: Set<string>;
|
|
2
2
|
export declare function withResponseBodyIdleTimeout(body: ReadableStream<Uint8Array>, timeoutMs: number, onTimeout: () => void): ReadableStream<Uint8Array>;
|
|
3
|
-
/**
|
|
4
|
-
* Privacy-aware proxy handler for first-party script collection endpoints.
|
|
5
|
-
* Routes requests to third-party analytics while protecting user privacy.
|
|
6
|
-
*/
|
|
7
3
|
declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void | null>>;
|
|
8
4
|
export default _default;
|
|
@@ -15,6 +15,9 @@ const COMPRESSION_RE = /gzip|deflate|br|compress|base64/i;
|
|
|
15
15
|
const CLIENT_HINT_VERSION_RE = /;v="(\d+)\.[^"]*"/g;
|
|
16
16
|
const MAX_TRANSFORM_BODY_SIZE = 2 * 1024 * 1024;
|
|
17
17
|
const UPSTREAM_TIMEOUT_MS = 15e3;
|
|
18
|
+
const MAX_UPSTREAM_REDIRECTS = 5;
|
|
19
|
+
const REDIRECT_STATUSES = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
|
|
20
|
+
const REQUEST_BODY_HEADERS = ["content-encoding", "content-language", "content-length", "content-location", "content-type"];
|
|
18
21
|
const SKIP_RESPONSE_HEADERS = /* @__PURE__ */ new Set([
|
|
19
22
|
"alt-svc",
|
|
20
23
|
"clear-site-data",
|
|
@@ -46,7 +49,7 @@ export const SKIP_REQUEST_HEADERS = /* @__PURE__ */ new Set([
|
|
|
46
49
|
"transfer-encoding",
|
|
47
50
|
"upgrade"
|
|
48
51
|
]);
|
|
49
|
-
async function
|
|
52
|
+
async function readBodyBytes(event) {
|
|
50
53
|
const contentLength = Number(getHeaders(event)["content-length"] || 0);
|
|
51
54
|
if (Number.isFinite(contentLength) && contentLength > MAX_TRANSFORM_BODY_SIZE) {
|
|
52
55
|
throw createError({ statusCode: 413, statusMessage: "Proxy request body too large" });
|
|
@@ -83,7 +86,7 @@ async function readTransformBody(event) {
|
|
|
83
86
|
body.set(chunk, offset);
|
|
84
87
|
offset += chunk.byteLength;
|
|
85
88
|
}
|
|
86
|
-
return
|
|
89
|
+
return body;
|
|
87
90
|
}
|
|
88
91
|
export function withResponseBodyIdleTimeout(body, timeoutMs, onTimeout) {
|
|
89
92
|
const reader = body.getReader();
|
|
@@ -145,6 +148,64 @@ function stripQueryFingerprinting(query, privacy) {
|
|
|
145
148
|
}
|
|
146
149
|
return { queryString: params.toString(), stripped };
|
|
147
150
|
}
|
|
151
|
+
function isUpstreamRedirect(status) {
|
|
152
|
+
return REDIRECT_STATUSES.has(status);
|
|
153
|
+
}
|
|
154
|
+
function upstreamFetchError(err, timedOut) {
|
|
155
|
+
const blockedPrivateNetwork = isPrivateNetworkResolutionError(err);
|
|
156
|
+
return createError({
|
|
157
|
+
statusCode: blockedPrivateNetwork ? 403 : timedOut ? 504 : 502,
|
|
158
|
+
statusMessage: blockedPrivateNetwork ? "Local network targets are not allowed" : timedOut ? "Gateway Timeout" : "Bad Gateway",
|
|
159
|
+
message: "Proxy upstream request failed",
|
|
160
|
+
cause: err,
|
|
161
|
+
data: {
|
|
162
|
+
errorName: err?.name,
|
|
163
|
+
errorCode: timedOut ? "TIMEOUT" : err?.code
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
function resolveProxyRedirect(response, state, redirectCount, urlAllowed) {
|
|
168
|
+
const location = response.headers.get("location");
|
|
169
|
+
if (!location) {
|
|
170
|
+
throw createError({
|
|
171
|
+
statusCode: 502,
|
|
172
|
+
statusMessage: "Invalid upstream redirect",
|
|
173
|
+
message: "Upstream redirect has no Location header"
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
if (redirectCount >= MAX_UPSTREAM_REDIRECTS) {
|
|
177
|
+
throw createError({
|
|
178
|
+
statusCode: 502,
|
|
179
|
+
statusMessage: "Too many upstream redirects",
|
|
180
|
+
message: "Upstream redirect limit exceeded"
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
let nextUrl;
|
|
184
|
+
try {
|
|
185
|
+
nextUrl = new URL(location, state.url);
|
|
186
|
+
} catch (cause) {
|
|
187
|
+
throw createError({
|
|
188
|
+
statusCode: 502,
|
|
189
|
+
statusMessage: "Invalid upstream redirect",
|
|
190
|
+
message: "Upstream redirect URL is invalid",
|
|
191
|
+
cause
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
if (!urlAllowed(nextUrl)) {
|
|
195
|
+
throw createError({
|
|
196
|
+
statusCode: 502,
|
|
197
|
+
statusMessage: "Unsafe upstream redirect",
|
|
198
|
+
message: `Upstream redirect target is not allowed: ${nextUrl.origin}`
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
const switchToGet = response.status === 303 && state.method !== "GET" && state.method !== "HEAD" || (response.status === 301 || response.status === 302) && state.method === "POST";
|
|
202
|
+
if (!switchToGet)
|
|
203
|
+
return { ...state, url: nextUrl };
|
|
204
|
+
const headers = { ...state.headers };
|
|
205
|
+
for (const header of REQUEST_BODY_HEADERS)
|
|
206
|
+
delete headers[header];
|
|
207
|
+
return { url: nextUrl, method: "GET", body: void 0, headers };
|
|
208
|
+
}
|
|
148
209
|
export default defineEventHandler(async (event) => {
|
|
149
210
|
const config = useRuntimeConfig();
|
|
150
211
|
const proxyConfig = config["nuxt-scripts-proxy"];
|
|
@@ -282,12 +343,14 @@ export default defineEventHandler(async (event) => {
|
|
|
282
343
|
}
|
|
283
344
|
let body;
|
|
284
345
|
let rawBody;
|
|
346
|
+
let rawBodyBytes;
|
|
285
347
|
let passthroughBody = false;
|
|
286
348
|
if (isWriteMethod) {
|
|
349
|
+
rawBodyBytes = await readBodyBytes(event);
|
|
287
350
|
if (!shouldTransformBody) {
|
|
288
351
|
passthroughBody = true;
|
|
289
352
|
} else if (transformableBodyType === "form") {
|
|
290
|
-
const formBody =
|
|
353
|
+
const formBody = rawBodyBytes === void 0 ? void 0 : new TextDecoder().decode(rawBodyBytes);
|
|
291
354
|
rawBody = formBody;
|
|
292
355
|
if (formBody != null) {
|
|
293
356
|
const params = new URLSearchParams(formBody);
|
|
@@ -315,7 +378,7 @@ export default defineEventHandler(async (event) => {
|
|
|
315
378
|
body = transformed.toString();
|
|
316
379
|
}
|
|
317
380
|
} else {
|
|
318
|
-
const jsonBody =
|
|
381
|
+
const jsonBody = rawBodyBytes === void 0 ? void 0 : new TextDecoder().decode(rawBodyBytes);
|
|
319
382
|
if (jsonBody !== void 0) {
|
|
320
383
|
try {
|
|
321
384
|
rawBody = JSON.parse(jsonBody);
|
|
@@ -365,55 +428,63 @@ export default defineEventHandler(async (event) => {
|
|
|
365
428
|
controller.abort();
|
|
366
429
|
}, UPSTREAM_TIMEOUT_MS);
|
|
367
430
|
let fetchBody;
|
|
368
|
-
if (passthroughBody
|
|
369
|
-
|
|
431
|
+
if (passthroughBody) {
|
|
432
|
+
if (rawBodyBytes && rawBodyBytes.byteLength > 0)
|
|
433
|
+
fetchBody = rawBodyBytes;
|
|
370
434
|
} else if (body !== void 0) {
|
|
371
435
|
fetchBody = transformableBodyType === "json" ? JSON.stringify(body) : String(body);
|
|
372
436
|
}
|
|
437
|
+
const hopAllowed = (url) => url.protocol === "https:" && !url.username && !url.password && (!url.port || url.port === "443") && isPublicNetworkHostname(url.hostname) && Object.keys(domainPrivacy).some((configDomain) => matchDomain(url.hostname, configDomain));
|
|
373
438
|
let response;
|
|
374
439
|
let network;
|
|
375
440
|
try {
|
|
376
441
|
network = await createPublicNetworkDispatcher();
|
|
377
|
-
|
|
442
|
+
let state = {
|
|
443
|
+
url: new URL(targetUrl),
|
|
378
444
|
method: method || "GET",
|
|
379
|
-
headers,
|
|
380
445
|
body: fetchBody,
|
|
381
|
-
|
|
382
|
-
// Don't send cookies to third parties
|
|
383
|
-
signal: controller.signal,
|
|
384
|
-
redirect: "manual",
|
|
385
|
-
duplex: fetchBody instanceof ReadableStream ? "half" : void 0
|
|
446
|
+
headers
|
|
386
447
|
};
|
|
387
|
-
|
|
448
|
+
for (let redirectCount = 0; ; redirectCount++) {
|
|
449
|
+
let hop;
|
|
450
|
+
try {
|
|
451
|
+
hop = await network.fetch(state.url.toString(), {
|
|
452
|
+
method: state.method,
|
|
453
|
+
headers: state.headers,
|
|
454
|
+
body: state.body,
|
|
455
|
+
credentials: "omit",
|
|
456
|
+
// Don't send cookies to third parties
|
|
457
|
+
signal: controller.signal,
|
|
458
|
+
redirect: "manual"
|
|
459
|
+
});
|
|
460
|
+
} catch (err) {
|
|
461
|
+
log("[proxy] Upstream error:", err);
|
|
462
|
+
throw upstreamFetchError(err, timedOut);
|
|
463
|
+
}
|
|
464
|
+
log("[proxy] Response:", hop.status, hop.statusText);
|
|
465
|
+
if (!isUpstreamRedirect(hop.status)) {
|
|
466
|
+
response = hop;
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
let next;
|
|
470
|
+
try {
|
|
471
|
+
next = resolveProxyRedirect(hop, state, redirectCount, hopAllowed);
|
|
472
|
+
} catch (err) {
|
|
473
|
+
await hop.body?.cancel(err).catch((cancelError) => Object.assign(err, { cleanupError: cancelError }));
|
|
474
|
+
throw err;
|
|
475
|
+
}
|
|
476
|
+
const redirectDiscarded = new Error("Upstream redirect response body discarded");
|
|
477
|
+
await hop.body?.cancel(redirectDiscarded).catch((cancelError) => Object.assign(redirectDiscarded, { cause: cancelError }));
|
|
478
|
+
log("[proxy] Following redirect:", next.url.toString());
|
|
479
|
+
state = next;
|
|
480
|
+
}
|
|
388
481
|
clearTimeout(timeoutId);
|
|
389
482
|
} catch (err) {
|
|
390
483
|
clearTimeout(timeoutId);
|
|
391
484
|
await closePublicNetworkDispatcher(network, err);
|
|
392
|
-
|
|
393
|
-
const blockedPrivateNetwork = isPrivateNetworkResolutionError(err);
|
|
394
|
-
throw createError({
|
|
395
|
-
statusCode: blockedPrivateNetwork ? 403 : timedOut ? 504 : 502,
|
|
396
|
-
statusMessage: blockedPrivateNetwork ? "Local network targets are not allowed" : timedOut ? "Gateway Timeout" : "Bad Gateway",
|
|
397
|
-
message: "Proxy upstream request failed",
|
|
398
|
-
cause: err,
|
|
399
|
-
data: {
|
|
400
|
-
errorName: err?.name,
|
|
401
|
-
errorCode: timedOut ? "TIMEOUT" : err?.code
|
|
402
|
-
}
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
log("[proxy] Response:", response.status, response.statusText);
|
|
406
|
-
if (response.status >= 300 && response.status < 400 && response.status !== 304) {
|
|
407
|
-
clearTimeout(timeoutId);
|
|
408
|
-
const redirectError = createError({
|
|
409
|
-
statusCode: 502,
|
|
410
|
-
statusMessage: "Unsafe upstream redirect",
|
|
411
|
-
message: "Proxy upstream returned a redirect that was not followed"
|
|
412
|
-
});
|
|
413
|
-
await response.body?.cancel(redirectError).catch((cancelError) => Object.assign(redirectError, { cleanupError: cancelError }));
|
|
414
|
-
await closePublicNetworkDispatcher(network, redirectError);
|
|
415
|
-
throw redirectError;
|
|
485
|
+
throw err;
|
|
416
486
|
}
|
|
487
|
+
log("[proxy] Upstream settled:", response.status);
|
|
417
488
|
const responseConnectionHeaders = new Set(
|
|
418
489
|
(response.headers.get("connection") || "").split(",").map((header) => header.trim().toLowerCase()).filter(Boolean)
|
|
419
490
|
);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const createNetworkDispatcher:
|
|
1
|
+
import type { PublicNetworkDispatcher } from './network-host.js';
|
|
2
|
+
export declare const createNetworkDispatcher: () => Promise<PublicNetworkDispatcher>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export const createNetworkDispatcher = async () => ({
|
|
2
|
-
fetch:
|
|
2
|
+
// workerd's native fetch throws `TypeError: Illegal invocation` when a
|
|
3
|
+
// detached reference is called as a method (e.g. `dispatcher.fetch(...)`),
|
|
4
|
+
// so pin the receiver before handing the function to callers.
|
|
5
|
+
fetch: globalThis.fetch.bind(globalThis),
|
|
3
6
|
close: async () => {
|
|
4
7
|
}
|
|
5
8
|
});
|
package/dist/types-source.mjs
CHANGED
|
@@ -263,7 +263,7 @@ const types = {
|
|
|
263
263
|
{
|
|
264
264
|
name: "ScriptGoogleAdsenseProps",
|
|
265
265
|
kind: "interface",
|
|
266
|
-
code: "interface ScriptGoogleAdsenseProps {\n dataAdClient: string\n dataAdSlot: string\n dataAdFormat?: 'auto' | 'rectangle' | 'vertical' | 'horizontal' | 'fluid' | 'autorelaxed'\n dataAdLayout?: 'in-article' | '
|
|
266
|
+
code: "interface ScriptGoogleAdsenseProps {\n dataAdClient: string\n dataAdSlot: string\n dataAdFormat?: 'auto' | 'rectangle' | 'vertical' | 'horizontal' | 'fluid' | 'autorelaxed'\n dataAdLayout?: 'in-article' | 'image-top' | 'image-side' | 'text-only'\n dataAdLayoutKey?: string\n dataFullWidthResponsive?: boolean\n /**\n * Defines the trigger event to load the script.\n */\n trigger?: ElementScriptTrigger\n}"
|
|
267
267
|
},
|
|
268
268
|
{
|
|
269
269
|
name: "ScriptGoogleAdsenseEvents",
|
|
@@ -3442,7 +3442,12 @@ const schemaFields = {
|
|
|
3442
3442
|
},
|
|
3443
3443
|
{
|
|
3444
3444
|
name: "dataAdLayout",
|
|
3445
|
-
type: "'in-article' | '
|
|
3445
|
+
type: "'in-article' | 'image-top' | 'image-side' | 'text-only'",
|
|
3446
|
+
required: false
|
|
3447
|
+
},
|
|
3448
|
+
{
|
|
3449
|
+
name: "dataAdLayoutKey",
|
|
3450
|
+
type: "string",
|
|
3446
3451
|
required: false
|
|
3447
3452
|
},
|
|
3448
3453
|
{
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"0859565b-d57a-4d27-9ba8-d3b4167514d4","timestamp":1787322407182,"prerendered":[]}
|