@void/platform 1.3.0 → 1.5.0

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.
@@ -1,13 +1,13 @@
1
- var so=Object.defineProperty;var s=(e,t)=>so(e,"name",{value:t,configurable:!0});function xt(e,t){let r=e.get(t);return r!==void 0&&(e.delete(t),e.set(t,r)),r}s(xt,"lruGet");function Dt(e,t,r){if(e.size>=256){let n=e.keys().next();n.done||e.delete(n.value)}e.set(t,r)}s(Dt,"lruSet");function io(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95}s(io,"isNameChar");function Ct(e,t){return e==="seg"?t!==47:t!==10&&t!==13&&t!==8232&&t!==8233}s(Ct,"accepts");function Ne(e,t){if(!t)return;let r=e[e.length-1];r?.kind==="text"?r.text+=t:e.push({kind:"text",text:t})}s(Ne,"pushText");function Cr(e){let t=[],r=[],n=!1,o=0;for(;o<e.length;){let i=e[o];if(i===":"){let a=o+1;for(;a<e.length&&io(e.charCodeAt(a));)a++;if(a===o+1){Ne(t,":"),o++;continue}let l=e.slice(o+1,a);r.push(l);let u=e[a]==="*";t.push({kind:u?"any":"seg",name:l}),o=u?a+1:a}else if(i==="*")n?t.push({kind:"any"}):(r.push("splat"),t.push({kind:"any",name:"splat"}),n=!0),o++;else{let a=o+1;for(;a<e.length&&e[a]!==":"&&e[a]!=="*";)a++;Ne(t,e.slice(o,a)),o=a}}return{tokens:t,paramNames:r}}s(Cr,"parseCapture");function Dr(e,t){let r=t.split("*");Ne(e,r[0]);for(let n=1;n<r.length;n++)e.push({kind:"any"}),Ne(e,r[n])}s(Dr,"parseStars");function ao(e){let t=[],r=e.split("/");for(let n=0;n<r.length;n++){let o=r[n];n>0&&Ne(t,"/");let i=o.slice(1,-4);o[0]!==":"||o.length<2?Dr(t,o):o.length>5&&o.endsWith("{.+}")&&!i.includes("{")&&!i.includes("}")?t.push({kind:"plus"}):t.push({kind:"seg"})}return t}s(ao,"parseSegments");function Ot(e){let t=[];for(let n of e)n.kind==="any"&&t[t.length-1]?.kind==="any"||t.push(n);let r=new Int32Array(t.length+1);return t.forEach((n,o)=>{let i=n.kind==="text"?n.text.length:n.kind==="any"?0:1;r[o+1]=r[o]+i}),{steps:t,starts:r,minLength:r[t.length]}}s(Ot,"prepare");function vt(e,t,r,n,o){let i=0;if(e.kind==="text"){for(let u=o.length-1;u>=0;u--){let d=n[u]===1&&t.startsWith(e.text,r+u)?1:0;o[u]=d,i|=d}return i===1}let a=e.kind,l=0;for(let u=o.length-1;u>=0;u--){let d=a==="any"?n[u]===1||l===1&&Ct(a,t.charCodeAt(r+u)):(n[u]===1||l===1)&&Ct(a,t.charCodeAt(r+u));o[u]=d?1:0,l=o[u],i|=l}return i===1}s(vt,"stepBack");function kt(e){let t=new Uint8Array(e);return t[e-1]=1,t}s(kt,"endRow");function Or({steps:e,minLength:t},r){let n=e[0],o=e[e.length-1];return r.length<t||n?.kind==="text"&&!r.startsWith(n.text)||o?.kind==="text"&&!r.endsWith(o.text)}s(Or,"quickReject");function Lt(e,t){if(Or(e,t))return!1;let{steps:r,starts:n,minLength:o}=e,i=kt(t.length-o+1),a=new Uint8Array(i.length),l=r[0]?.kind==="text"?1:0;for(let u=r.length-1;u>=l;u--){if(!vt(r[u],t,n[u],i,a))return!1;let d=i;i=a,a=d}return i[0]===1}s(Lt,"matches");function co(e,t,r,n,o){if(e.kind==="text")return r+e.text.length;let i=e.kind==="any"?0:1,a=o.length-1-n+i,l=0;for(;l<a&&Ct(e.kind,t.charCodeAt(r+l));)l++;for(;l>i&&o[n+l-i]!==1;)l--;return r+l}s(co,"greedyEnd");function lo(e,t,r){if(Or(e,t))return null;let{steps:n,starts:o,minLength:i}=e,a=n.length,l=t.length-i+1,u=a*l<=65536?1:Math.ceil(Math.sqrt(a)),d=new Map([[a,kt(l)]]),p=kt(l),f=new Uint8Array(l),g=n[0]?.kind==="text"?1:0;for(let h=a-1;h>=g;h--){if(!vt(n[h],t,o[h],p,f))return null;h%u===0&&d.set(h,f.slice());let R=p;p=f,f=R}if(p[0]!==1)return null;let c=Array.from({length:u},()=>new Uint8Array(l)),w=0,m=s(h=>h===w?d.get(h):c[h%u],"rowAt"),C=new Int32Array(r+1),I=0;for(let h=0;h<=r;h++){if(h+1>w){w=Math.min(a,Math.ceil((h+1)/u)*u);for(let R=w-1;R>h;R--)vt(n[R],t,o[R],m(R+1),c[R%u])}I=co(n[h],t,I,I-o[h],m(h+1)),C[h]=I}return C}s(lo,"greedyEnds");function uo(e){let t="";for(let r of e)r.kind==="text"?t+=r.text.replace(/[.+?^${}()|[\]\\:]/g,"\\$&"):r.kind==="seg"?t+=`(?<${r.name}>[^/]+)`:t+=r.name?`(?<${r.name}>.*)`:".*";return new RegExp(`^${t}$`)}s(uo,"toRegExp");var vr=new Map;function Lr(e){let t=xt(vr,e);if(t)return t;let{tokens:r,paramNames:n}=Cr(e),o,i=new Set;for(let p of n)i.has(p)?o??=`Duplicate capture group name "${p}"`:p.charCodeAt(0)>=48&&p.charCodeAt(0)<=57&&(o??=`Invalid capture group name "${p}"`),i.add(p);let a=Ot(r),l=-1;a.steps.forEach((p,f)=>{p.kind!=="text"&&p.name&&(l=f)});let u,d={...a,paramNames:n,error:o,lastNamed:l,get regex(){return u??=uo(Cr(e).tokens)}};return Dt(vr,e,d),d}s(Lr,"compile");function ot(e){let t=Lr(e);if(t.error)throw new SyntaxError(t.error);return t}s(ot,"compilePattern");function st(e,t){let r=Lr(e);if(r.error)return null;let{steps:n,lastNamed:o}=r,i=o===-1?void 0:lo(r,t,o);if(i===null||i===void 0&&!Lt(r,t))return null;let a=Object.create(null);for(let l of r.paramNames)a[l]="";for(let l=0;i&&l<=o;l++){let u=n[l];u.kind!=="text"&&u.name&&(a[u.name]=t.slice(l===0?0:i[l-1],i[l]))}return a}s(st,"matchPatternCaptures");var kr=new Map;function pe(e,t){let r=xt(kr,e);if(!r){let n=[];Dr(n,e),r=Ot(n),Dt(kr,e,r)}return Lt(r,t)}s(pe,"matchLiteralPattern");var xr=new Map;function q(e,t){let r=xt(xr,e);return r||(r=Ot(ao(e)),Dt(xr,e,r)),Lt(r,t)}s(q,"matchSegmentPattern");function it(e,t){let r=e.replace(/:([A-Za-z0-9_]+)\*?/g,(n,o)=>t[o]??n);return/^[/\\]{2}/.test(r)&&!/^[/\\]{2}/.test(e)?"/"+r.replace(/^[/\\]+/,""):r}s(it,"substituteParams");var po=new Set(["set-cookie"]);function fo(e){if(e.length<2||e[0]!=='"'||e[e.length-1]!=='"')return null;let t="";for(let r=1;r<e.length-1;r+=1){let n=e[r];if(n==="\\"){if(r+=1,r>=e.length-1)return null;t+=e[r]}else{if(n==='"')return null;t+=n}}return t}s(fo,"parseQuotedString");function Nt(e){let t=[],r=s(i=>{let a=i.trim();a.length>0&&t.push({raw:a,directive:fo(a)})},"pushMember"),n=0,o=!1;for(let i=0;i<e.length;i+=1){let a=e[i];o?a==="\\"?i+=1:a==='"'&&(o=!1):a==='"'?o=!0:a===","&&(r(e.slice(n,i)),n=i+1)}return r(e.slice(n)),t}s(Nt,"parseClearSiteData");function at(e){let t=[];for(let{raw:r,directive:n}of Nt(e)){let o=n?.toLowerCase();if(o==="*")return null;n===null||o==="cookies"||t.push(r)}return t.length>0?t.join(", "):null}s(at,"sanitizeClearSiteData");function Y(e,t,r,n){if(!r||r.length===0)return e;let o=[];for(let d of r)pe(d.pattern,t)&&o.push(...d.headers);if(o.length===0)return e;let i=new Response(e.body,e),a=n?.cookieIsolation!=="origin",l=a?e.headers.get("clear-site-data"):null,u=l===null?null:at(l);for(let[d,p]of o){let f=d.toLowerCase();if(!(a&&po.has(f))){if(a&&f==="clear-site-data"){let g=at(p);g!==null?i.headers.set(d,g):u!==null?i.headers.set(d,u):i.headers.delete(d);continue}i.headers.set(d,p)}}return i}s(Y,"applyHeaderRules");function oe(e,t,r){if(!t?.length)return null;for(let n of t){if(n.host&&n.host!==r)continue;try{ot(n.source)}catch(a){console.warn(`[dispatch] skipping routing rule with invalid source ${JSON.stringify(n.source)}: ${a instanceof Error?a.message:String(a)}`);continue}let o=st(n.source,e);if(!o)continue;let i=it(n.destination,o);return n.status===200?{type:"rewrite",destination:i}:{type:"redirect",destination:i,status:n.status}}return null}s(oe,"applyRoutingRules");function Ue(e,t){if(!t||t==="?")return e;let r=e.indexOf("#"),n=r===-1?e:e.slice(0,r),o=r===-1?"":e.slice(r),i=n.indexOf("?");if(i===-1)return n+t+o;if(i===n.length-1)return n.slice(0,i)+o;let a=new URLSearchParams(t),l=new URLSearchParams(n.slice(i+1));for(let[u,d]of a)l.has(u)||l.append(u,d);return n.slice(0,i)+"?"+l.toString()+o}s(Ue,"mergeQueryIntoLocation");function Ae(e){let t;try{t=decodeURIComponent(e)}catch{return e}if(t===e)return e;let r=Mr(t);if(r===null)return e;let n=Nr(e).replace(/%5B/g,"[").replace(/%5D/g,"]");return Nr(r)===n?t:e}s(Ae,"safeDecodePathname");function Nr(e){return e.replace(/%[0-9a-fA-F]{2}/g,t=>t.toUpperCase())}s(Nr,"normalizePercentCase");function Mr(e){try{let t=new URL("https://void.invalid/");return t.pathname=e,t.pathname}catch{return null}}s(Mr,"reencodePathname");function Ur(e,t,r){if(t[e])return{path:e,hash:t[e]};switch(r){case"auto-trailing-slash":{let n=e+".html";if(t[n])return{path:n,hash:t[n]};let o=(e.endsWith("/")?e:e+"/")+"index.html";if(t[o])return{path:o,hash:t[o]};break}case"force-trailing-slash":{if(!e.endsWith("/")&&e!=="/"){let o=e+"/index.html";if(t[o])return{path:o,hash:t[o],redirect:e+"/"}}let n=e+"index.html";if(t[n])return{path:n,hash:t[n]};break}case"drop-trailing-slash":{if(e==="/"){if(t["/index.html"])return{path:"/index.html",hash:t["/index.html"]};break}if(e.endsWith("/")){let o=e.slice(0,-1),i=o+".html";if(t[i])return{path:i,hash:t[i],redirect:o}}let n=e+".html";if(t[n])return{path:n,hash:t[n]};break}case"none":break}return null}s(Ur,"matchManifestEntry");function fe(e,t,r){let n=r.html_handling??"auto-trailing-slash",o=Ur(e,t,n);if(!o){let i=Ae(e);if(i!==e&&(o=Ur(i,t,n),o?.redirect!==void 0)){let a=Mr(o.redirect);a!==null&&(o={...o,redirect:a})}}if(o)return o;switch(r.not_found_handling??"none"){case"single-page-application":if(t["/index.html"])return{path:"/index.html",hash:t["/index.html"],spa:!0};break;case"404-page":if(t["/404.html"])return{path:"/404.html",hash:t["/404.html"],notFound:!0};break}return null}s(fe,"resolveStaticPath");var mo={html:"text/html; charset=utf-8",htm:"text/html; charset=utf-8",css:"text/css; charset=utf-8",js:"text/javascript; charset=utf-8",mjs:"text/javascript; charset=utf-8",json:"application/json; charset=utf-8",xml:"application/xml; charset=utf-8",svg:"image/svg+xml; charset=utf-8",txt:"text/plain; charset=utf-8",csv:"text/csv; charset=utf-8",md:"text/markdown; charset=utf-8",markdown:"text/markdown; charset=utf-8",yaml:"text/yaml; charset=utf-8",yml:"text/yaml; charset=utf-8",toml:"application/toml",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",ico:"image/x-icon",webp:"image/webp",avif:"image/avif",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",pdf:"application/pdf",wasm:"application/wasm",webmanifest:"application/manifest+json; charset=utf-8",map:"application/json; charset=utf-8",mp4:"video/mp4",webm:"video/webm",mp3:"audio/mpeg",ogg:"audio/ogg"};function Ut(e){let t=e.split(".").pop()?.toLowerCase()??"";return mo[t]??"application/octet-stream"}s(Ut,"getContentType");function Me(e,t){if(e!=="application/null")return!e||e==="application/octet-stream"?Ut(t):e}s(Me,"resolveAssetContentType");function Mt(e){let t=new Headers({"Cache-Control":"no-store"});return e.retryAt&&Number.isFinite(Date.parse(e.retryAt))&&t.set("Retry-After",String(Math.max(0,Math.ceil((Date.parse(e.retryAt)-Date.now())/1e3)))),Response.json(e,{status:429,headers:t})}s(Mt,"usageLimitResponse");var Hr="x-void-shared-cache-policy";var Ht=200;var go="public, max-age=0, must-revalidate";function Q(e){let t=new Response(e.body,e);return t.headers.set("Cache-Control",go),t.headers.delete(Hr),t}s(Q,"clientRevalidateResponse");function yo(e){return e.headers.get("content-type")?.toLowerCase().split(";",1)[0]?.trim()}s(yo,"mediaType");function j(e){return yo(e)==="text/event-stream"}s(j,"isEventStreamResponse");function He(e,t){if(typeof e!="string"||e.trim()==="")throw new Error(`${t} must be a non-empty string.`);return e}s(He,"requiredString");var se=1073741824,bo={free:{requestsPerMonth:3e6,cpuMsPerRequest:10,maxCpuMsPerRequest:10,subRequestsPerInvocation:50,deploysPerDay:100,d1StorageBytes:1*se,r2StorageBytes:5*se,kvStorageBytes:1*se,aiNeuronsPerMonth:1e5,retainedDeployments:1,sandboxRuntimeSecondsPerMonth:1,sandboxMaxConcurrentInstances:1,concurrentBuilds:1,buildTimeoutMinutes:10},solo:{requestsPerMonth:1e7,cpuMsPerRequest:30,maxCpuMsPerRequest:3e4,subRequestsPerInvocation:50,deploysPerDay:500,d1StorageBytes:5*se,r2StorageBytes:25*se,kvStorageBytes:5*se,aiNeuronsPerMonth:3e5,retainedDeployments:5,sandboxRuntimeSecondsPerMonth:108e3,sandboxMaxConcurrentInstances:2,concurrentBuilds:2,buildTimeoutMinutes:15},pro:{requestsPerMonth:1e8,cpuMsPerRequest:50,maxCpuMsPerRequest:3e4,subRequestsPerInvocation:1e3,deploysPerDay:3e3,d1StorageBytes:10*se,r2StorageBytes:100*se,kvStorageBytes:25*se,aiNeuronsPerMonth:5e5,retainedDeployments:25,sandboxRuntimeSecondsPerMonth:72e4,sandboxMaxConcurrentInstances:10,concurrentBuilds:3,buildTimeoutMinutes:15},sponsored:{requestsPerMonth:0,cpuMsPerRequest:50,maxCpuMsPerRequest:3e4,subRequestsPerInvocation:1e3,deploysPerDay:0,d1StorageBytes:0,r2StorageBytes:0,kvStorageBytes:0,aiNeuronsPerMonth:0,retainedDeployments:0,sandboxRuntimeSecondsPerMonth:0,sandboxMaxConcurrentInstances:0,concurrentBuilds:6,buildTimeoutMinutes:20},custom:{requestsPerMonth:0,cpuMsPerRequest:0,maxCpuMsPerRequest:0,subRequestsPerInvocation:0,deploysPerDay:0,d1StorageBytes:0,r2StorageBytes:0,kvStorageBytes:0,aiNeuronsPerMonth:0,retainedDeployments:0,sandboxRuntimeSecondsPerMonth:0,sandboxMaxConcurrentInstances:0,concurrentBuilds:0,buildTimeoutMinutes:0}};var Ro=["github","google","oidc","cloudflare-access"];var So={ai:!0,customDomains:!1,email:!1,githubActions:!1,githubOAuth:!0,googleOAuth:!1,managedBuilds:!1,sandbox:!1},Eo={apiHostname:null,dashboardHostname:null,proxyHostname:null};function $r(e){let t=e.trim().toLowerCase().replaceAll(/[^a-z0-9-]+/g,"-").replaceAll(/^-+|-+$/g,"").replaceAll(/-{2,}/g,"-");if(!t)throw new Error("The installation name must contain a letter or number.");if(t.length>40)throw new Error("The installation name must be 40 characters or fewer after normalization.");return t}s($r,"normalizeInstallationSlug");function me(e){let t=e.trim().toLowerCase();if(t.endsWith(".")&&(t=t.slice(0,-1)),t.length>253||!t.includes(".")||t.split(".").some(r=>!/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(r)))throw new Error(`Invalid domain: ${JSON.stringify(e)}.`);return t}s(me,"normalizeApplicationDomain");function _o(e){let t=e.trim(),r;try{r=new URL(t)}catch{throw new Error("The dashboard URL must be an HTTPS origin.")}if(!/^https:\/\/[^/?#]+\/?$/i.test(t)||/[\s\\]/.test(t)||r.protocol!=="https:"||r.username||r.password||r.pathname!=="/"||r.search||r.hash)throw new Error("The dashboard URL must be an HTTPS origin without credentials, a path, query, or fragment.");return r.hostname=me(r.hostname),r.origin}s(_o,"normalizePlatformDashboardUrl");function Io(e){let t=`void-${$r(e)}`,r=t.replaceAll("-","_");return{aiGateway:t,apiWorker:`${t}-api`,assetsBucket:`${t}-assets`,cronQueue:`${t}-cron-fires`,deploymentQueue:`${t}-deployments`,dashboardWorker:`${t}-dashboard`,dispatchNamespace:`${t}-users`,dispatchWorker:`${t}-dispatch`,emailGatewayWorker:`${t}-email-gateway`,hyperdrive:`${t}-database`,isrCacheKv:`${t}-isr-cache`,legacyAssetsKv:`${t}-legacy-assets`,logsDataset:`${r}_logs`,proxyWorker:`${t}-proxy`,requestsDataset:`${r}_requests`,routingKv:`${t}-routing`,tailWorker:`${t}-tail`,usageQueue:`${t}-usage-events`}}s(Io,"createPlatformResourceNames");function Po(e){if(!e.zoneName&&e.workersDev){if(e.dedicatedZone)throw new Error("workers.dev cannot use a dedicated-zone catch-all.");return[]}let t=me(e.baseDomain),r=me(e.zoneName);if(t!==r&&!t.endsWith(`.${r}`))throw new Error(`Application domain ${t} is not inside zone ${r}.`);let n=[{pattern:`*.${t}/*`,zoneName:r},{pattern:`*.${t}`,zoneName:r}];if(e.dedicatedZone){if(t!==r)throw new Error("A dedicated-zone catch-all requires the application domain to be the zone.");n.push({pattern:"*/*",zoneName:r},{pattern:"*",zoneName:r})}return n}s(Po,"createApplicationRoutes");function To(e){if(e.emailSharedZoneId===void 0!=(e.emailSenderDomain===void 0))throw new Error("Shared email configuration requires both emailSenderDomain and emailSharedZoneId.");let t=$r(e.installationSlug),r=me(e.application.baseDomain),n=e.application.workersDev;if(n&&(!/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(n.subdomain)||!/^[a-z0-9][a-z0-9-]{0,80}$/.test(n.installationId)))throw new Error("Invalid workers.dev installation identity.");let o=n&&e.application.zoneName===""?"":me(e.application.zoneName);if(!o&&r!==`${n.subdomain}.workers.dev`)throw new Error("workers.dev application domain must match its account subdomain.");let i={...Io(t),...e.resources},a={...So,...e.capabilities};if(a.managedBuilds&&!a.githubActions)throw new Error("Managed builds require the GitHub Actions capability.");if(e.appAccess!==void 0&&!["public","platform","custom"].includes(e.appAccess))throw new Error("appAccess must be public, platform, or custom.");let l=e.authentication?.providers??["github"];if(l.some(f=>!Ro.includes(f))||new Set(l).size!==l.length)throw new Error("Authentication providers must be unique supported login kinds.");let u=e.authentication?.configurable===!0||e.authentication?.accessProtection===!0||l.some(f=>f==="oidc"||f==="cloudflare-access");if(l.length===0)throw new Error("At least one authentication provider is required.");if(l.includes("github")!==a.githubOAuth)throw new Error("The GitHub provider and githubOAuth capability must agree.");if(l.includes("google")!==a.googleOAuth)throw new Error("The Google provider and googleOAuth capability must agree.");let d=e.controlPlane?.dashboardUrl===void 0?void 0:_o(e.controlPlane.dashboardUrl),p={...e.appAccess!==void 0?{appAccess:e.appAccess}:{},application:{baseDomain:r,dedicatedZone:e.application.dedicatedZone??!1,zoneName:o,...n?{workersDev:{...n}}:{},...e.application.zoneId?{zoneId:He(e.application.zoneId,"application.zoneId")}:{}},authentication:{providers:[...l],...u?{configurable:!0}:{},...e.authentication?.accessProtection?{accessProtection:!0}:{}},capabilities:a,...e.emailSharedZoneId!==void 0?{emailSharedZoneId:He(e.emailSharedZoneId,"emailSharedZoneId")}:{},...e.emailSenderDomain!==void 0?{emailSenderDomain:me(e.emailSenderDomain)}:{},controlPlane:{...Eo,...e.controlPlane,...d!==void 0?{dashboardUrl:d,dashboardHostname:e.controlPlane?.dashboardHostname??new URL(d).hostname}:{}},displayName:He(e.displayName,"displayName").trim(),installationSlug:t,resources:i,schemaVersion:e.appAccess!==void 0?4:u?3:n?2:1};Po(p.application);for(let[f,g]of Object.entries(p.controlPlane))f!=="dashboardUrl"&&g!==null&&me(g);if(p.controlPlane.dashboardUrl){let f=new URL(p.controlPlane.dashboardUrl).hostname;if(p.controlPlane.dashboardHostname!==f)throw new Error("The dashboard URL and dashboard hostname must agree.")}for(let[f,g]of Object.entries(p.resources))He(g,`resources.${f}`);return p}s(To,"createPlatformDeploymentManifest");var Fr=2;function be(e){let t=e.SITE_DOMAIN??e.BASE_HOSTNAME??"void.app";return e.PLATFORM_APPLICATION?Co(JSON.parse(e.PLATFORM_APPLICATION)):{baseDomain:t,zoneName:t,dedicatedZone:!1}}s(be,"readPlatformApplication");function Co(e){return To({installationSlug:"runtime",displayName:"Runtime",application:e}).application}s(Co,"parsePlatformApplication");function Vr(e){return`workers-dev:${e}`}s(Vr,"platformWorkersDevAliasKey");var vo="__void/platform/application/v1";async function Kr(e){if(!e.PLATFORM_APPLICATION)return e;let t=await e.ROUTING.get(vo);if(!t)return e;let r=be(e),n=be({PLATFORM_APPLICATION:t});if(!r.workersDev||!n.workersDev||r.workersDev.installationId!==n.workersDev.installationId||r.workersDev.subdomain!==n.workersDev.subdomain)throw new Error("Application routing belongs to another platform installation.");return{...e,PLATFORM_APPLICATION:t,SITE_DOMAIN:n.baseDomain,BASE_HOSTNAME:n.baseDomain,...n.zoneId?{CF_ZONE_ID:n.zoneId}:{}}}s(Kr,"resolvePlatformApplicationEnvironment");function ko(e){return`void-${e.installationId.slice(-12)}-`}s(ko,"platformProjectIngressPrefix");function xo(e,t){if(!/^proj_[a-z0-9]{1,32}$/.test(e.id)||!/^[a-z0-9][a-z0-9-]*$/.test(e.slug))throw new Error("Invalid platform project identity.");let r=ko(t),n=`-${e.id.slice(5)}`;return`${r}${e.slug.slice(0,63-r.length-n.length).replace(/-+$/,"")}${n}`}s(xo,"platformProjectIngressName");function jr(e,t){return`${xo(e,t)}.${t.subdomain}.workers.dev`}s(jr,"platformProjectWorkersDevHostname");var $t="void-platform-health";function Wr(e){return e.zoneName?`${$t}.${e.baseDomain}`:null}s(Wr,"platformHealthHostname");import{WorkerEntrypoint as ws}from"cloudflare:workers";var ct=new TextEncoder,lt=new TextDecoder,dt=new TextDecoder("utf-8",{fatal:!0}),ma=2**32;function Jr(...e){let t=e.reduce((o,{length:i})=>o+i,0),r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}s(Jr,"concat");var Do=/[^\x00-\x7f]/;function Re(e){if(typeof e=="string"&&e.length>=128){if(Do.test(e))throw new TypeError("non-ASCII string encountered in encode()");return ct.encode(e)}let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw new TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}s(Re,"encode");function zr(e,t=!1){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e,{alphabet:t?"base64url":"base64"});if(t){if(e.includes("+")||e.includes("/"))throw new TypeError("Invalid base64url");e=e.replace(/-/g,"+").replace(/_/g,"/")}let r=atob(e),n=new Uint8Array(r.length);for(let o=0;o<r.length;o++)n[o]=r.charCodeAt(o);return n}s(zr,"decodeBase64");var K=class extends Error{static{s(this,"JOSEError")}static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(t,r){super(t,r),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},ie=class extends K{static{s(this,"JWTClaimValidationFailed")}static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(t,r,n="unspecified",o="unspecified"){super(t,{cause:{claim:n,reason:o,payload:r}}),this.claim=n,this.reason=o,this.payload=r}},$e=class extends K{static{s(this,"JWTExpired")}static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(t,r,n="unspecified",o="unspecified"){super(t,{cause:{claim:n,reason:o,payload:r}}),this.claim=n,this.reason=o,this.payload=r}},ut=class extends K{static{s(this,"JOSEAlgNotAllowed")}static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},X=class extends K{static{s(this,"JOSENotSupported")}static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"};var F=class extends K{static{s(this,"JWSInvalid")}static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},Se=class extends K{static{s(this,"JWTInvalid")}static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"};var Fe=class extends K{static{s(this,"JWKSInvalid")}static code="ERR_JWKS_INVALID";code="ERR_JWKS_INVALID"},Ee=class extends K{static{s(this,"JWKSNoMatchingKey")}static code="ERR_JWKS_NO_MATCHING_KEY";code="ERR_JWKS_NO_MATCHING_KEY";constructor(t="no applicable key found in the JSON Web Key Set",r){super(t,r)}},pt=class extends K{static{s(this,"JWKSMultipleMatchingKeys")}[Symbol.asyncIterator]=async function*(){};static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(t="multiple matching keys found in the JSON Web Key Set",r){super(t,r)}},ft=class extends K{static{s(this,"JWKSTimeout")}static code="ERR_JWKS_TIMEOUT";code="ERR_JWKS_TIMEOUT";constructor(t="request timed out",r){super(t,r)}},mt=class extends K{static{s(this,"JWSSignatureVerificationFailed")}static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(t="signature verification failed",r){super(t,r)}};var Oo="The input to be decoded is not correctly encoded.";function Ve(e){try{return zr(typeof e=="string"?e:lt.decode(e),!0)}catch(t){throw new TypeError(Oo,{cause:t})}}s(Ve,"decode");function le(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}s(le,"isObject");function ht(e){return le(e)&&Array.isArray(e.keys)&&Array.from(e.keys).every(le)}s(ht,"isJwkSet");function Br(...e){let t=new Set;for(let r of e)if(r)for(let n of Object.keys(r)){if(t.has(n))return!1;t.add(n)}return!0}s(Br,"isDisjoint");function Ft(e,t,r){try{return Ve(e)}catch{throw new r(`Failed to base64url decode the ${t}`)}}s(Ft,"decodeBase64url");function Gr(e,t,r){try{return Re(e)}catch{throw new r(`The ${t} is not a valid base64url string`)}}s(Gr,"encodeBase64url");function qr(e,t,r){let n;try{n=JSON.parse(dt.decode(Ve(e)))}catch{throw new t(r)}if(!le(n))throw new t(r);return n}s(qr,"parseJoseHeader");var Yr={__proto__:null,b64:!0};function Qr(e,t){if(t!==void 0&&(!Array.isArray(t)||t.some(r=>typeof r!="string")))throw new TypeError(`"${e}" option must be an array of strings`);return t===void 0?void 0:new Set(t)}s(Qr,"validateAlgorithms");function Xr(e,t,r,n,o){if(o.crit!==void 0&&n?.crit===void 0)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!n||n.crit===void 0)return[];if(!Array.isArray(n.crit)||n.crit.length===0||n.crit.some(a=>typeof a!="string"||a.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let i=r===void 0?t:{__proto__:null,...r,...t};for(let a of n.crit){if(!(a in i))throw new X(`Extension Header Parameter "${a}" is not recognized`);if(!Object.hasOwn(o,a)||o[a]===void 0)throw new e(`Extension Header Parameter "${a}" is missing`);if(i[a]&&(!Object.hasOwn(n,a)||n[a]===void 0))throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`)}return n.crit}s(Xr,"validateCrit");function Zr(e,t){if(t.includes("b64")){let r=e.b64;if(typeof r!="boolean")throw new F('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return r}return!0}s(Zr,"validateB64");var Lo=s(e=>e[Symbol.toStringTag],"tag"),No=s((e,t,r)=>{let{alg:n}=e;if(t.use!==void 0){let o=r==="sign"||r==="verify"?"sig":"enc";if(t.use!==o)throw new TypeError(`Invalid key for this operation, its "use" must be "${o}" when present`)}if(t.alg!==void 0&&t.alg!==n)throw new TypeError(`Invalid key for this operation, its "alg" must be "${n}" when present`);if(Array.isArray(t.key_ops)){let o=r==="encrypt"||r==="decrypt"?e.ops?.[r==="encrypt"?0:1]:r;if(o&&!t.key_ops.includes(o))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${o}" when present`)}},"jwkMatchesOp");async function tn(e,t,r){let{alg:n,secret:o}=e,i=r==="decrypt"||r==="sign";if(o&&t instanceof Uint8Array)return t;let a,l;if(le(t)){if(a=Ko(t),typeof a.kty!="string")throw en(n,t,o);if(!(o?a.kty==="oct"&&typeof a.k=="string":a.kty!=="oct"&&(i?a.kty==="AKP"&&typeof a.priv=="string"||typeof a.d=="string":a.d===void 0&&a.priv===void 0)))throw new TypeError(o?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${i?"private":"public"} JWK`);if(No(e,a,r),a.kty==="oct")return Ve(a.k);if(!Object.isFrozen(t)){let{key_ops:p}=t;Array.isArray(p)&&Object.freeze(p),Object.freeze(t)}}else{if(!Ho(t))throw en(n,t,o);let p=o?"secret":i?"private":"public";if(t.type!==p&&(o||["secret","public","private"].includes(t.type)))throw new TypeError(`${Lo(t)} instances must be of type "${p}" for the ${n} algorithm`);if(rn(t))return t;if(l=t,l.type==="secret")return l.export()}Vt||=new WeakMap;let u=t,d=Vt.get(u);if(d?.[n])return d[n];if(d||Vt.set(u,d={}),l&&typeof l.toCryptoKey=="function"){let p=l.type==="public",f=Uo[l.asymmetricKeyDetails?.namedCurve],g=e.resolve?.({crv:f,asymmetricKeyType:l.asymmetricKeyType})??e.subtle;return d[n]=l.toCryptoKey(g,p,e.usages[p?0:1])}return a??=l.export({format:"jwk"}),a.alg=n,d[n]=await jt(e,a)}s(tn,"prepareKey");var Vt,Uo={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};var rn=s(e=>{if(e?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return e instanceof CryptoKey}catch{return!1}},"isCryptoKey"),Mo=s(e=>e?.[Symbol.toStringTag]==="KeyObject","isKeyObject"),Ho=s(e=>rn(e)||Mo(e),"isKeyLike");function $o(e,t,...r){if(r.length>2){let n=r.pop();e+=`one of type ${r.join(", ")}, or ${n}.`}else r.length===2?e+=`one of type ${r[0]} or ${r[1]}.`:e+=`of type ${r[0]}.`;return t==null?e+=` Received ${t}`:typeof t=="function"&&t.name?e+=` Received function ${t.name}`:typeof t=="object"&&t!=null&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}s($o,"message");function en(e,t,r){let n=["CryptoKey","KeyObject","JSON Web Key"];return r&&n.push("Uint8Array"),new TypeError($o(`Key for the ${e} algorithm must be `,t,...n))}s(en,"invalidKeyType");var gt=s((e,t="algorithm.name")=>new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`),"unusable");function Fo(e,t){if(t&&!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}s(Fo,"checkUsage");function nn(e,t){let{modulusLength:r}=t.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}s(nn,"checkModulusLength");function Vo(e,t,r){let n=e.algorithm;if(n.name!==t.name)throw gt(t.name);if(t.hash&&n.hash?.name!==t.hash)throw gt(t.hash,"algorithm.hash");if(t.namedCurve&&n.namedCurve!==t.namedCurve)throw gt(t.namedCurve,"algorithm.namedCurve");if(t.length!==void 0&&n.length!==t.length)throw gt(t.length,"algorithm.length");Fo(e,r)}s(Vo,"checkCryptoKey");function Kt(e){return{__proto__:null,...e}}s(Kt,"snapshotJwk");function Ko(e){let t=Kt(e);if(t.ext!==void 0&&typeof t.ext!="boolean")throw new TypeError('"ext" (Extractable) Parameter must be a boolean');if(t.key_ops!==void 0){let r=t.key_ops,n=Array.isArray(r)?[...r]:void 0;if(!n||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');t.key_ops=n}return t}s(Ko,"normalizeJwk");async function jt(e,t,r){if(!e.kty.includes(t.kty))throw new X('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let n=e.resolve?.({kty:t.kty,crv:t.crv})??e.subtle,o=!!(t.d||t.priv),i={...t,ext:r??t.ext};return i.kty!=="AKP"&&delete i.alg,delete i.use,crypto.subtle.importKey("jwk",i,n,i.ext??!o,t.key_ops??e.usages[o?1:0])}s(jt,"jwkToKey");async function on(e,t,r,n=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey("raw",e,t,n,[r])),Vo(e,t,r),e}s(on,"rawKey");function sn(e){let t={__proto__:null};for(let r in e)t[r]={...e[r],alg:r};return t}s(sn,"table");var Ke=[["verify"],["sign"]];function Wt(e){let t={name:"HMAC",hash:`SHA-${e}`};return{kty:["oct"],secret:!0,subtle:t,signing:t,usages:Ke}}s(Wt,"hmac");function _e(e,t){let r={name:t?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${e}`};return{kty:["RSA"],subtle:r,signing:t?{...r,saltLength:t}:r,usages:Ke,minRsaBits:2048}}s(_e,"rsa");function Jt(e,t){return{kty:["EC"],crv:e,subtle:{name:"ECDSA",namedCurve:e},signing:{name:"ECDSA",hash:`SHA-${t}`},usages:Ke}}s(Jt,"ecdsa");function an(){let e={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:e,signing:e,usages:Ke}}s(an,"eddsa");function zt(e){let t={name:`ML-DSA-${e}`};return{kty:["AKP"],subtle:t,signing:t,usages:Ke}}s(zt,"mldsa");var Bt=sn({HS256:Wt(256),HS384:Wt(384),HS512:Wt(512),RS256:_e(256),RS384:_e(384),RS512:_e(512),PS256:_e(256,32),PS384:_e(384,48),PS512:_e(512,64),ES256:Jt("P-256",256),ES384:Jt("P-384",384),ES512:Jt("P-521",512),EdDSA:an(),Ed25519:an(),"ML-DSA-44":zt(44),"ML-DSA-65":zt(65),"ML-DSA-87":zt(87)});function cn(e){let t=typeof e=="string"?Bt[e]:void 0;if(!t)throw new X(`alg ${e} is not supported either by JOSE or your javascript runtime`);return t}s(cn,"jwsAlgorithm");function ln(e){return[e&&Qr("algorithms",e.algorithms),e?.crit]}s(ln,"prepareVerify");function jo(e){return e===void 0?{}:qr(e,F,"JWS Protected Header is invalid")}s(jo,"parseProtectedHeader");function Wo(e){try{return Re(e)}catch{throw new F("JWS Compact Serialization payload must use only ASCII characters")}}s(Wo,"encodeCompactUnencodedPayload");async function Jo(e,t,r,n,o){let{protected:i,header:a,payload:l}=e,u=o??jo(i);if(!Br(u,a))throw new F("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let d={...u,...a},p=Zr(u,Xr(F,Yr,t[1],u,d)),{alg:f}=d;if(typeof f!="string"||!f)throw new F('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(t[0]&&!t[0].has(f))throw new ut('"alg" (Algorithm) Header Parameter value not allowed');if(p){if(typeof l!="string")throw new F("JWS Payload must be a string")}else if(typeof l!="string"&&!(l instanceof Uint8Array))throw new F("JWS Payload must be a string or an Uint8Array instance");let g=p||typeof l!="string"?l:n(l),c=!1;typeof r=="function"&&(r=await r(u,e),c=!0);let w=cn(f),m=Jr(i!==void 0?Re(i):new Uint8Array,Re("."),typeof g=="string"?t[2]??=Gr(g,"payload",F):g),C=Ft(e.signature,"signature",F),I=await tn(w,r,"verify"),h=await on(I,w.subtle,"verify");w.minRsaBits&&nn(w.alg,h);let R=!1;try{R=await crypto.subtle.verify(w.signing,h,C,m)}catch{}if(!R)throw new mt;let V={payload:typeof g=="string"?Ft(g,"payload",F):g};return i!==void 0&&(V.protectedHeader=u),a!==void 0&&(V.unprotectedHeader=a),c?[{...V,key:I},p]:[V,p]}s(Jo,"verifySignature");async function dn(e,t,r){if(e instanceof Uint8Array&&(e=lt.decode(e)),typeof e!="string")throw new F("Compact JWS must be a string or Uint8Array");let{0:n,1:o,2:i,length:a}=e.split(".");if(a!==3)throw new F("Invalid Compact JWS");return Jo({payload:o,protected:n,signature:i},t,r,Wo)}s(dn,"verifyCompact");var zo=s(e=>Math.floor(e.getTime()/1e3),"epoch"),Bo={s:1,m:60,h:3600,d:86400,w:604800,y:31557600},Go=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,Ie="check_failed";function Gt(){throw new TypeError("Invalid time period format")}s(Gt,"invalidDuration");function un(e){typeof e!="string"&&Gt();let t=Go.exec(e);(!t||t[4]&&t[1])&&Gt();let r=parseFloat(t[2]),n=Math.round(r*Bo[t[3][0].toLowerCase()]);return Number.isFinite(n)||Gt(),t[1]==="-"||t[4]==="ago"?-n:n}s(un,"secs");function qt(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}s(qt,"validateInput");var pn=s(e=>{let t=e.toLowerCase();return e.includes("/")?t:`application/${t}`},"normalizeTyp"),qo=s((e,t)=>typeof e=="string"?t.includes(e):Array.isArray(e)?t.some(r=>e.includes(r)):!1,"checkAudiencePresence");function Yt(e,t,r=!1){let n=e[t];if(!(n===void 0&&!r)){if(typeof n!="number")throw new ie(`"${t}" claim must be a number`,e,t,"invalid");return n}}s(Yt,"validateNumericDate");function Qt(e,t){throw new ie(`unexpected "${t}" claim value`,e,t,Ie)}s(Qt,"unexpectedClaim");function fn(e,t,r={}){let n;try{n=JSON.parse(dt.decode(t))}catch{}if(!le(n))throw new Se("JWT Claims Set must be a top-level JSON object");let{typ:o}=r;if(o!==void 0&&(typeof e.typ!="string"||pn(e.typ)!==pn(o)))throw new ie('unexpected "typ" JWT header value',n,"typ",Ie);let{requiredClaims:i=[],issuer:a,subject:l,audience:u,maxTokenAge:d}=r,p=[...i];d!==void 0&&p.push("iat"),u!==void 0&&p.push("aud"),l!==void 0&&p.push("sub"),a!==void 0&&p.push("iss");for(let h of new Set(p.reverse()))if(!Object.hasOwn(n,h))throw new ie(`missing required "${h}" claim`,n,h,"missing");a!==void 0&&!(Array.isArray(a)?a:[a]).includes(n.iss)&&Qt(n,"iss"),l!==void 0&&n.sub!==l&&Qt(n,"sub"),u!==void 0&&!qo(n.aud,typeof u=="string"?[u]:u)&&Qt(n,"aud");let{clockTolerance:f}=r,g=0;if(typeof f=="string")g=un(f);else if(f!==void 0){if(typeof f!="number")throw new TypeError("Invalid clockTolerance option type");g=f}qt("clockTolerance option",g);let{currentDate:c}=r,w=qt("currentDate option",zo(c===void 0?new Date:c)),m=Yt(n,"iat",d!==void 0),C=Yt(n,"nbf");if(C!==void 0&&C>w+g)throw new ie('"nbf" claim timestamp check failed',n,"nbf",Ie);let I=Yt(n,"exp");if(I!==void 0&&I<=w-g)throw new $e('"exp" claim timestamp check failed',n,"exp",Ie);if(d!==void 0){let h=w-m,R=qt("maxTokenAge option",typeof d=="number"?d:un(d));if(h-g>R)throw new $e('"iat" claim timestamp check failed (too far in the past)',n,"iat",Ie);if(h<-g)throw new ie('"iat" claim timestamp check failed (it should be in the past)',n,"iat",Ie)}return n}s(fn,"validateClaimsSet");async function Xt(e,t,r){let[n,o]=await dn(e,ln(r),t);if(!o)throw new Se("JWTs MUST NOT use unencoded payload");let i=fn(n.protectedHeader,n.payload,r);return{...n,payload:i}}s(Xt,"jwtVerify");function Yo(e,t,r,n){let{kty:o,key_ops:i,ext:a,kid:l,alg:u,use:d,crv:p}=e;return(a===void 0||typeof a=="boolean")&&(i===void 0||Array.isArray(i)&&i.every((f,g)=>typeof f=="string"&&i.indexOf(f)===g)&&i.includes("verify"))&&t.kty.includes(o)&&(n===void 0||typeof n=="string"&&n===l)&&(u===void 0?o!=="AKP":r===u)&&(d===void 0||d==="sig")&&(!t.crv||p===t.crv)}s(Yo,"isUsableJWK");async function mn(e,t,r){let n=e.get(t)||e.set(t,{}).get(t),{alg:o}=r;if(n[o]===void 0){let i=jt(r,t,!0).then(a=>{if(a.type!=="public")throw new Fe("JSON Web Key Set members must be public keys");return n[o]=a,a}).catch(a=>{throw n[o]===i&&delete n[o],a});n[o]=i}return n[o]}s(mn,"importWithAlgCache");function Zt(e){let t;try{t=structuredClone(e)}catch{}if(!ht(t))throw new Fe("JSON Web Key Set malformed");let r=t.keys.map(o=>{let i=Kt(o);return Array.isArray(i.key_ops)&&(i.key_ops=[...i.key_ops]),i}),n=new WeakMap;return Object.defineProperty(async(o,i)=>{let{alg:a,kid:l}={...o,...i?.header},u=typeof a=="string"?Bt[a]:void 0;if(!u||u.secret)throw new X('Unsupported "alg" value for a JSON Web Key Set');let d=t.keys.filter((g,c)=>Yo(r[c],u,a,l)),{0:p,length:f}=d;if(!f)throw new Ee;if(f!==1){let g=new pt;throw g[Symbol.asyncIterator]=async function*(){for(let c of d)try{yield await mn(n,c,u)}catch{}},g}return mn(n,p,u)},"jwks",{value:s(()=>structuredClone(t),"value")})}s(Zt,"createLocalJWKSet");function Qo(){return typeof WebSocketPair<"u"||typeof navigator<"u"&&!0||typeof EdgeRuntime<"u"&&EdgeRuntime==="vercel"}s(Qo,"isCloudflareWorkers");var er;(typeof navigator>"u"||!"Cloudflare-Workers"?.startsWith?.("Mozilla/5.0 "))&&(er="jose/v6.2.12");var yt=Symbol();async function Xo(e,t,r,n=fetch){let o=await n(e,{method:"GET",signal:r,redirect:"manual",headers:t}).catch(i=>{throw i.name==="TimeoutError"?new ft:i});if(o.status!==200)throw new K("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await o.json()}catch{throw new K("Failed to parse the JSON Web Key Set HTTP response as JSON")}}s(Xo,"fetchJwks");var gn=Symbol();function je(e,t){return Number.isFinite(e)&&Date.now()<e+t}s(je,"isFreshFor");function hn(e,t,r){if(Number.isNaN(e))throw new TypeError(`"${r}" option must not be NaN`);return typeof e=="number"?e:t}s(hn,"validateDuration");function tr(e,t){if(!(e instanceof URL))throw new TypeError("url must be an instance of URL");let r=new URL(e.href).href,n=t??{},o=n.timeoutDuration;if(typeof o=="number"&&(!Number.isInteger(o)||o<0))throw new TypeError('"timeoutDuration" option must be a non-negative integer');let i=typeof o=="number"?o:5e3,a=hn(n.cooldownDuration,3e4,"cooldownDuration"),l=hn(n.cacheMaxAge,6e5,"cacheMaxAge"),u=new Headers(n.headers);er&&!u.has("User-Agent")&&u.set("User-Agent",er),u.has("accept")||u.set("accept","application/json, application/jwk-set+json");let d=n[yt],p=n[gn],f,g,c=0,w=0,m;if(p&&typeof p=="object"){let{uat:I,jwks:h}=p;je(I,l)&&ht(h)&&(f=I,m=Zt(h))}let C=s(async()=>{if(g&&Qo()&&(g=void 0),!g){let I=++c,h=g=Xo(r,u,AbortSignal.timeout(i),d).then(R=>{let V=Zt(R);if(I<=w)return;m=V;let H=Date.now();p&&(p.uat=H,p.jwks=R),f=H,w=I}).finally(()=>{g===h&&(g=void 0)})}await g},"reload");return Object.defineProperties(async(I,h)=>{(!m||!je(f,l))&&await C();try{return await m(I,h)}catch(R){if(R instanceof Ee&&!je(f,a))return await C(),m(I,h);throw R}},{coolingDown:{get:s(()=>je(f,a),"get"),enumerable:!0},fresh:{get:s(()=>je(f,l),"get"),enumerable:!0},reload:{value:C,enumerable:!0},reloading:{get:s(()=>!!g,"get"),enumerable:!0},jwks:{value:s(()=>m?.jwks(),"value"),enumerable:!0}})}s(tr,"createRemoteJWKSet");function yn(e,t){let r=e.toLowerCase(),n=t.toLowerCase(),o=r.indexOf("*");if(o===-1)return r===n;let i=r.slice(0,o),a=r.slice(o+1);if(i.includes(".")||!a.startsWith(".")||a.includes("*")||!n.startsWith(i)||!n.endsWith(a))return!1;let l=n.slice(0,-a.length);return l.length>0&&!l.includes(".")}s(yn,"matchesHostname");function Zo(e,t){let r=t.audiences.find(n=>!n.hostname.includes("*")&&yn(n.hostname,e));return r?r.audience:t.audiences.find(n=>yn(n.hostname,e))?.audience??null}s(Zo,"resolveAccessAudience");var rr=class{constructor(t=(r,n)=>fetch(r,n)){this.request=t}request;static{s(this,"ProjectAccessVerifier")}keys=new Map;async verify(t,r,n){try{let o=Zo(t,n);if(!o||!r||r.length>32*1024)return!1;let i=n.teamDomain.replace(/\/+$/,""),a=new URL(i);if(a.protocol!=="https:"||!a.hostname.endsWith(".cloudflareaccess.com")||a.origin!==i)return!1;let l=this.keys.get(i);l||(this.keys.size>=16&&this.keys.delete(this.keys.keys().next().value),l=tr(new URL(`${i}/cdn-cgi/access/certs`),{timeoutDuration:1e4,[yt]:async(d,p)=>{let f=await this.request(d,{...p,redirect:"manual"});if(f.status>=300&&f.status<400)throw await f.body?.cancel(),new Error("Access key endpoint redirected.");return f}}),this.keys.set(i,l));let{payload:u}=await Xt(r,l,{issuer:i,audience:o,algorithms:["RS256"],requiredClaims:["iss","aud","iat","exp","type"]});return u.type==="app"&&typeof u.iat=="number"&&u.iat<=Date.now()/1e3+30}catch{return!1}}},wn=new rr;function We(e){return e.slice(e.lastIndexOf("/")+1).includes(".")}s(We,"hasExtension");function Z(e){return e==="/api"||e.startsWith("/api/")}s(Z,"isApiPath");function nr(e,t,r=!1){return Z(e)?"api":t&&(!We(e)||r)?"ssr":null}s(nr,"classifyDynamicRequestType");var or='system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';function sr(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}s(sr,"escapeHtml");function An(e,t,r=!1){let n=`${e}: ${t}`,o=`${e}: `;return`<!doctype html>
1
+ var io=Object.defineProperty;var s=(e,t)=>io(e,"name",{value:t,configurable:!0});function st(e){let t=new URL(e.url);if(!(t.protocol!=="http:"||t.hostname==="localhost"||t.hostname.endsWith(".localhost")||ao(t.hostname)||t.hostname==="[::1]"||t.pathname.startsWith("/.well-known/acme-challenge/")||t.pathname.startsWith("/.well-known/pki-validation/")))return t.protocol="https:",t.port="",Response.redirect(t.href,308)}s(st,"redirectToHttps");function ao(e){let t=e.split(".");return t.length===4&&t[0]==="127"&&t.every(r=>r!==""&&[...r].every(n=>n>="0"&&n<="9"))}s(ao,"isIpv4Loopback");function Dt(e,t){let r=e.get(t);return r!==void 0&&(e.delete(t),e.set(t,r)),r}s(Dt,"lruGet");function Ot(e,t,r){if(e.size>=256){let n=e.keys().next();n.done||e.delete(n.value)}e.set(t,r)}s(Ot,"lruSet");function co(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95}s(co,"isNameChar");function vt(e,t){return e==="seg"?t!==47:t!==10&&t!==13&&t!==8232&&t!==8233}s(vt,"accepts");function Ne(e,t){if(!t)return;let r=e[e.length-1];r?.kind==="text"?r.text+=t:e.push({kind:"text",text:t})}s(Ne,"pushText");function vr(e){let t=[],r=[],n=!1,o=0;for(;o<e.length;){let i=e[o];if(i===":"){let a=o+1;for(;a<e.length&&co(e.charCodeAt(a));)a++;if(a===o+1){Ne(t,":"),o++;continue}let l=e.slice(o+1,a);r.push(l);let u=e[a]==="*";t.push({kind:u?"any":"seg",name:l}),o=u?a+1:a}else if(i==="*")n?t.push({kind:"any"}):(r.push("splat"),t.push({kind:"any",name:"splat"}),n=!0),o++;else{let a=o+1;for(;a<e.length&&e[a]!==":"&&e[a]!=="*";)a++;Ne(t,e.slice(o,a)),o=a}}return{tokens:t,paramNames:r}}s(vr,"parseCapture");function Or(e,t){let r=t.split("*");Ne(e,r[0]);for(let n=1;n<r.length;n++)e.push({kind:"any"}),Ne(e,r[n])}s(Or,"parseStars");function lo(e){let t=[],r=e.split("/");for(let n=0;n<r.length;n++){let o=r[n];n>0&&Ne(t,"/");let i=o.slice(1,-4);o[0]!==":"||o.length<2?Or(t,o):o.length>5&&o.endsWith("{.+}")&&!i.includes("{")&&!i.includes("}")?t.push({kind:"plus"}):t.push({kind:"seg"})}return t}s(lo,"parseSegments");function Lt(e){let t=[];for(let n of e)n.kind==="any"&&t[t.length-1]?.kind==="any"||t.push(n);let r=new Int32Array(t.length+1);return t.forEach((n,o)=>{let i=n.kind==="text"?n.text.length:n.kind==="any"?0:1;r[o+1]=r[o]+i}),{steps:t,starts:r,minLength:r[t.length]}}s(Lt,"prepare");function kt(e,t,r,n,o){let i=0;if(e.kind==="text"){for(let u=o.length-1;u>=0;u--){let d=n[u]===1&&t.startsWith(e.text,r+u)?1:0;o[u]=d,i|=d}return i===1}let a=e.kind,l=0;for(let u=o.length-1;u>=0;u--){let d=a==="any"?n[u]===1||l===1&&vt(a,t.charCodeAt(r+u)):(n[u]===1||l===1)&&vt(a,t.charCodeAt(r+u));o[u]=d?1:0,l=o[u],i|=l}return i===1}s(kt,"stepBack");function xt(e){let t=new Uint8Array(e);return t[e-1]=1,t}s(xt,"endRow");function Lr({steps:e,minLength:t},r){let n=e[0],o=e[e.length-1];return r.length<t||n?.kind==="text"&&!r.startsWith(n.text)||o?.kind==="text"&&!r.endsWith(o.text)}s(Lr,"quickReject");function Ut(e,t){if(Lr(e,t))return!1;let{steps:r,starts:n,minLength:o}=e,i=xt(t.length-o+1),a=new Uint8Array(i.length),l=r[0]?.kind==="text"?1:0;for(let u=r.length-1;u>=l;u--){if(!kt(r[u],t,n[u],i,a))return!1;let d=i;i=a,a=d}return i[0]===1}s(Ut,"matches");function uo(e,t,r,n,o){if(e.kind==="text")return r+e.text.length;let i=e.kind==="any"?0:1,a=o.length-1-n+i,l=0;for(;l<a&&vt(e.kind,t.charCodeAt(r+l));)l++;for(;l>i&&o[n+l-i]!==1;)l--;return r+l}s(uo,"greedyEnd");function po(e,t,r){if(Lr(e,t))return null;let{steps:n,starts:o,minLength:i}=e,a=n.length,l=t.length-i+1,u=a*l<=65536?1:Math.ceil(Math.sqrt(a)),d=new Map([[a,xt(l)]]),p=xt(l),f=new Uint8Array(l),g=n[0]?.kind==="text"?1:0;for(let h=a-1;h>=g;h--){if(!kt(n[h],t,o[h],p,f))return null;h%u===0&&d.set(h,f.slice());let R=p;p=f,f=R}if(p[0]!==1)return null;let c=Array.from({length:u},()=>new Uint8Array(l)),w=0,m=s(h=>h===w?d.get(h):c[h%u],"rowAt"),C=new Int32Array(r+1),I=0;for(let h=0;h<=r;h++){if(h+1>w){w=Math.min(a,Math.ceil((h+1)/u)*u);for(let R=w-1;R>h;R--)kt(n[R],t,o[R],m(R+1),c[R%u])}I=uo(n[h],t,I,I-o[h],m(h+1)),C[h]=I}return C}s(po,"greedyEnds");function fo(e){let t="";for(let r of e)r.kind==="text"?t+=r.text.replace(/[.+?^${}()|[\]\\:]/g,"\\$&"):r.kind==="seg"?t+=`(?<${r.name}>[^/]+)`:t+=r.name?`(?<${r.name}>.*)`:".*";return new RegExp(`^${t}$`)}s(fo,"toRegExp");var kr=new Map;function Ur(e){let t=Dt(kr,e);if(t)return t;let{tokens:r,paramNames:n}=vr(e),o,i=new Set;for(let p of n)i.has(p)?o??=`Duplicate capture group name "${p}"`:p.charCodeAt(0)>=48&&p.charCodeAt(0)<=57&&(o??=`Invalid capture group name "${p}"`),i.add(p);let a=Lt(r),l=-1;a.steps.forEach((p,f)=>{p.kind!=="text"&&p.name&&(l=f)});let u,d={...a,paramNames:n,error:o,lastNamed:l,get regex(){return u??=fo(vr(e).tokens)}};return Ot(kr,e,d),d}s(Ur,"compile");function it(e){let t=Ur(e);if(t.error)throw new SyntaxError(t.error);return t}s(it,"compilePattern");function at(e,t){let r=Ur(e);if(r.error)return null;let{steps:n,lastNamed:o}=r,i=o===-1?void 0:po(r,t,o);if(i===null||i===void 0&&!Ut(r,t))return null;let a=Object.create(null);for(let l of r.paramNames)a[l]="";for(let l=0;i&&l<=o;l++){let u=n[l];u.kind!=="text"&&u.name&&(a[u.name]=t.slice(l===0?0:i[l-1],i[l]))}return a}s(at,"matchPatternCaptures");var xr=new Map;function pe(e,t){let r=Dt(xr,e);if(!r){let n=[];Or(n,e),r=Lt(n),Ot(xr,e,r)}return Ut(r,t)}s(pe,"matchLiteralPattern");var Dr=new Map;function q(e,t){let r=Dt(Dr,e);return r||(r=Lt(lo(e)),Ot(Dr,e,r)),Ut(r,t)}s(q,"matchSegmentPattern");function ct(e,t){let r=e.replace(/:([A-Za-z0-9_]+)\*?/g,(n,o)=>t[o]??n);return/^[/\\]{2}/.test(r)&&!/^[/\\]{2}/.test(e)?"/"+r.replace(/^[/\\]+/,""):r}s(ct,"substituteParams");var mo=new Set(["set-cookie"]);function ho(e){if(e.length<2||e[0]!=='"'||e[e.length-1]!=='"')return null;let t="";for(let r=1;r<e.length-1;r+=1){let n=e[r];if(n==="\\"){if(r+=1,r>=e.length-1)return null;t+=e[r]}else{if(n==='"')return null;t+=n}}return t}s(ho,"parseQuotedString");function Nt(e){let t=[],r=s(i=>{let a=i.trim();a.length>0&&t.push({raw:a,directive:ho(a)})},"pushMember"),n=0,o=!1;for(let i=0;i<e.length;i+=1){let a=e[i];o?a==="\\"?i+=1:a==='"'&&(o=!1):a==='"'?o=!0:a===","&&(r(e.slice(n,i)),n=i+1)}return r(e.slice(n)),t}s(Nt,"parseClearSiteData");function lt(e){let t=[];for(let{raw:r,directive:n}of Nt(e)){let o=n?.toLowerCase();if(o==="*")return null;n===null||o==="cookies"||t.push(r)}return t.length>0?t.join(", "):null}s(lt,"sanitizeClearSiteData");function Y(e,t,r,n){if(!r||r.length===0)return e;let o=[];for(let d of r)pe(d.pattern,t)&&o.push(...d.headers);if(o.length===0)return e;let i=new Response(e.body,e),a=n?.cookieIsolation!=="origin",l=a?e.headers.get("clear-site-data"):null,u=l===null?null:lt(l);for(let[d,p]of o){let f=d.toLowerCase();if(!(a&&mo.has(f))){if(a&&f==="clear-site-data"){let g=lt(p);g!==null?i.headers.set(d,g):u!==null?i.headers.set(d,u):i.headers.delete(d);continue}i.headers.set(d,p)}}return i}s(Y,"applyHeaderRules");function oe(e,t,r){if(!t?.length)return null;for(let n of t){if(n.host&&n.host!==r)continue;try{it(n.source)}catch(a){console.warn(`[dispatch] skipping routing rule with invalid source ${JSON.stringify(n.source)}: ${a instanceof Error?a.message:String(a)}`);continue}let o=at(n.source,e);if(!o)continue;let i=ct(n.destination,o);return n.status===200?{type:"rewrite",destination:i}:{type:"redirect",destination:i,status:n.status}}return null}s(oe,"applyRoutingRules");function Me(e,t){if(!t||t==="?")return e;let r=e.indexOf("#"),n=r===-1?e:e.slice(0,r),o=r===-1?"":e.slice(r),i=n.indexOf("?");if(i===-1)return n+t+o;if(i===n.length-1)return n.slice(0,i)+o;let a=new URLSearchParams(t),l=new URLSearchParams(n.slice(i+1));for(let[u,d]of a)l.has(u)||l.append(u,d);return n.slice(0,i)+"?"+l.toString()+o}s(Me,"mergeQueryIntoLocation");function be(e){let t;try{t=decodeURIComponent(e)}catch{return e}if(t===e)return e;let r=Hr(t);if(r===null)return e;let n=Nr(e).replace(/%5B/g,"[").replace(/%5D/g,"]");return Nr(r)===n?t:e}s(be,"safeDecodePathname");function Nr(e){return e.replace(/%[0-9a-fA-F]{2}/g,t=>t.toUpperCase())}s(Nr,"normalizePercentCase");function Hr(e){try{let t=new URL("https://void.invalid/");return t.pathname=e,t.pathname}catch{return null}}s(Hr,"reencodePathname");function Mr(e,t,r){if(t[e])return{path:e,hash:t[e]};switch(r){case"auto-trailing-slash":{let n=e+".html";if(t[n])return{path:n,hash:t[n]};let o=(e.endsWith("/")?e:e+"/")+"index.html";if(t[o])return{path:o,hash:t[o]};break}case"force-trailing-slash":{if(!e.endsWith("/")&&e!=="/"){let o=e+"/index.html";if(t[o])return{path:o,hash:t[o],redirect:e+"/"}}let n=e+"index.html";if(t[n])return{path:n,hash:t[n]};break}case"drop-trailing-slash":{if(e==="/"){if(t["/index.html"])return{path:"/index.html",hash:t["/index.html"]};break}if(e.endsWith("/")){let o=e.slice(0,-1),i=o+".html";if(t[i])return{path:i,hash:t[i],redirect:o}}let n=e+".html";if(t[n])return{path:n,hash:t[n]};break}case"none":break}return null}s(Mr,"matchManifestEntry");function fe(e,t,r){let n=r.html_handling??"auto-trailing-slash",o=Mr(e,t,n);if(!o){let i=be(e);if(i!==e&&(o=Mr(i,t,n),o?.redirect!==void 0)){let a=Hr(o.redirect);a!==null&&(o={...o,redirect:a})}}if(o)return o;switch(r.not_found_handling??"none"){case"single-page-application":if(t["/index.html"])return{path:"/index.html",hash:t["/index.html"],spa:!0};break;case"404-page":if(t["/404.html"])return{path:"/404.html",hash:t["/404.html"],notFound:!0};break}return null}s(fe,"resolveStaticPath");var go={html:"text/html; charset=utf-8",htm:"text/html; charset=utf-8",css:"text/css; charset=utf-8",js:"text/javascript; charset=utf-8",mjs:"text/javascript; charset=utf-8",json:"application/json; charset=utf-8",xml:"application/xml; charset=utf-8",svg:"image/svg+xml; charset=utf-8",txt:"text/plain; charset=utf-8",csv:"text/csv; charset=utf-8",md:"text/markdown; charset=utf-8",markdown:"text/markdown; charset=utf-8",yaml:"text/yaml; charset=utf-8",yml:"text/yaml; charset=utf-8",toml:"application/toml",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",ico:"image/x-icon",webp:"image/webp",avif:"image/avif",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",pdf:"application/pdf",wasm:"application/wasm",webmanifest:"application/manifest+json; charset=utf-8",map:"application/json; charset=utf-8",mp4:"video/mp4",webm:"video/webm",mp3:"audio/mpeg",ogg:"audio/ogg"};function Mt(e){let t=e.split(".").pop()?.toLowerCase()??"";return go[t]??"application/octet-stream"}s(Mt,"getContentType");function He(e,t){if(e!=="application/null")return!e||e==="application/octet-stream"?Mt(t):e}s(He,"resolveAssetContentType");function Ht(e){let t=new Headers({"Cache-Control":"no-store"});return e.retryAt&&Number.isFinite(Date.parse(e.retryAt))&&t.set("Retry-After",String(Math.max(0,Math.ceil((Date.parse(e.retryAt)-Date.now())/1e3)))),Response.json(e,{status:429,headers:t})}s(Ht,"usageLimitResponse");var $r="x-void-shared-cache-policy";var $t=200;var wo="public, max-age=0, must-revalidate";function Q(e){let t=new Response(e.body,e);return t.headers.set("Cache-Control",wo),t.headers.delete($r),t}s(Q,"clientRevalidateResponse");function Ao(e){return e.headers.get("content-type")?.toLowerCase().split(";",1)[0]?.trim()}s(Ao,"mediaType");function W(e){return Ao(e)==="text/event-stream"}s(W,"isEventStreamResponse");function $e(e,t){if(typeof e!="string"||e.trim()==="")throw new Error(`${t} must be a non-empty string.`);return e}s($e,"requiredString");var se=1073741824,So={free:{requestsPerMonth:3e6,cpuMsPerRequest:10,maxCpuMsPerRequest:10,subRequestsPerInvocation:50,deploysPerDay:100,d1StorageBytes:1*se,r2StorageBytes:5*se,kvStorageBytes:1*se,aiNeuronsPerMonth:1e5,retainedDeployments:1,sandboxRuntimeSecondsPerMonth:1,sandboxMaxConcurrentInstances:1,concurrentBuilds:1,buildTimeoutMinutes:10},solo:{requestsPerMonth:1e7,cpuMsPerRequest:30,maxCpuMsPerRequest:3e4,subRequestsPerInvocation:50,deploysPerDay:500,d1StorageBytes:5*se,r2StorageBytes:25*se,kvStorageBytes:5*se,aiNeuronsPerMonth:3e5,retainedDeployments:5,sandboxRuntimeSecondsPerMonth:108e3,sandboxMaxConcurrentInstances:2,concurrentBuilds:2,buildTimeoutMinutes:15},pro:{requestsPerMonth:1e8,cpuMsPerRequest:50,maxCpuMsPerRequest:3e4,subRequestsPerInvocation:1e3,deploysPerDay:3e3,d1StorageBytes:10*se,r2StorageBytes:100*se,kvStorageBytes:25*se,aiNeuronsPerMonth:5e5,retainedDeployments:25,sandboxRuntimeSecondsPerMonth:72e4,sandboxMaxConcurrentInstances:10,concurrentBuilds:3,buildTimeoutMinutes:15},sponsored:{requestsPerMonth:0,cpuMsPerRequest:50,maxCpuMsPerRequest:3e4,subRequestsPerInvocation:1e3,deploysPerDay:0,d1StorageBytes:0,r2StorageBytes:0,kvStorageBytes:0,aiNeuronsPerMonth:0,retainedDeployments:0,sandboxRuntimeSecondsPerMonth:0,sandboxMaxConcurrentInstances:0,concurrentBuilds:6,buildTimeoutMinutes:20},custom:{requestsPerMonth:0,cpuMsPerRequest:0,maxCpuMsPerRequest:0,subRequestsPerInvocation:0,deploysPerDay:0,d1StorageBytes:0,r2StorageBytes:0,kvStorageBytes:0,aiNeuronsPerMonth:0,retainedDeployments:0,sandboxRuntimeSecondsPerMonth:0,sandboxMaxConcurrentInstances:0,concurrentBuilds:0,buildTimeoutMinutes:0}};var Eo=["github","google","oidc","cloudflare-access"];var _o={ai:!0,customDomains:!1,email:!1,githubActions:!1,githubOAuth:!0,googleOAuth:!1,managedBuilds:!1,sandbox:!1},Io={apiHostname:null,dashboardHostname:null,proxyHostname:null};function Fr(e){let t=e.trim().toLowerCase().replaceAll(/[^a-z0-9-]+/g,"-").replaceAll(/^-+|-+$/g,"").replaceAll(/-{2,}/g,"-");if(!t)throw new Error("The installation name must contain a letter or number.");if(t.length>40)throw new Error("The installation name must be 40 characters or fewer after normalization.");return t}s(Fr,"normalizeInstallationSlug");function me(e){let t=e.trim().toLowerCase();if(t.endsWith(".")&&(t=t.slice(0,-1)),t.length>253||!t.includes(".")||t.split(".").some(r=>!/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(r)))throw new Error(`Invalid domain: ${JSON.stringify(e)}.`);return t}s(me,"normalizeApplicationDomain");function Po(e){let t=e.trim(),r;try{r=new URL(t)}catch{throw new Error("The dashboard URL must be an HTTPS origin.")}if(!/^https:\/\/[^/?#]+\/?$/i.test(t)||/[\s\\]/.test(t)||r.protocol!=="https:"||r.username||r.password||r.pathname!=="/"||r.search||r.hash)throw new Error("The dashboard URL must be an HTTPS origin without credentials, a path, query, or fragment.");return r.hostname=me(r.hostname),r.origin}s(Po,"normalizePlatformDashboardUrl");function To(e){let t=`void-${Fr(e)}`,r=t.replaceAll("-","_");return{aiGateway:t,apiWorker:`${t}-api`,assetsBucket:`${t}-assets`,cronQueue:`${t}-cron-fires`,deploymentQueue:`${t}-deployments`,dashboardWorker:`${t}-dashboard`,dispatchNamespace:`${t}-users`,dispatchWorker:`${t}-dispatch`,emailGatewayWorker:`${t}-email-gateway`,hyperdrive:`${t}-database`,isrCacheKv:`${t}-isr-cache`,legacyAssetsKv:`${t}-legacy-assets`,logsDataset:`${r}_logs`,proxyWorker:`${t}-proxy`,requestsDataset:`${r}_requests`,routingKv:`${t}-routing`,tailWorker:`${t}-tail`,usageQueue:`${t}-usage-events`}}s(To,"createPlatformResourceNames");function Co(e){if(!e.zoneName&&e.workersDev){if(e.dedicatedZone)throw new Error("workers.dev cannot use a dedicated-zone catch-all.");return[]}let t=me(e.baseDomain),r=me(e.zoneName);if(t!==r&&!t.endsWith(`.${r}`))throw new Error(`Application domain ${t} is not inside zone ${r}.`);let n=[{pattern:`*.${t}/*`,zoneName:r},{pattern:`*.${t}`,zoneName:r}];if(e.dedicatedZone){if(t!==r)throw new Error("A dedicated-zone catch-all requires the application domain to be the zone.");n.push({pattern:"*/*",zoneName:r},{pattern:"*",zoneName:r})}return n}s(Co,"createApplicationRoutes");function vo(e){if(e.emailSharedZoneId===void 0!=(e.emailSenderDomain===void 0))throw new Error("Shared email configuration requires both emailSenderDomain and emailSharedZoneId.");let t=Fr(e.installationSlug),r=me(e.application.baseDomain),n=e.application.workersDev;if(n&&(!/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(n.subdomain)||!/^[a-z0-9][a-z0-9-]{0,80}$/.test(n.installationId)))throw new Error("Invalid workers.dev installation identity.");let o=n&&e.application.zoneName===""?"":me(e.application.zoneName);if(!o&&r!==`${n.subdomain}.workers.dev`)throw new Error("workers.dev application domain must match its account subdomain.");let i={...To(t),...e.resources},a={..._o,...e.capabilities};if(a.managedBuilds&&!a.githubActions)throw new Error("Managed builds require the GitHub Actions capability.");if(e.appAccess!==void 0&&!["public","platform","custom"].includes(e.appAccess))throw new Error("appAccess must be public, platform, or custom.");let l=e.authentication?.providers??["github"];if(l.some(f=>!Eo.includes(f))||new Set(l).size!==l.length)throw new Error("Authentication providers must be unique supported login kinds.");let u=e.authentication?.configurable===!0||e.authentication?.accessProtection===!0||l.some(f=>f==="oidc"||f==="cloudflare-access");if(l.length===0)throw new Error("At least one authentication provider is required.");if(l.includes("github")!==a.githubOAuth)throw new Error("The GitHub provider and githubOAuth capability must agree.");if(l.includes("google")!==a.googleOAuth)throw new Error("The Google provider and googleOAuth capability must agree.");let d=e.controlPlane?.dashboardUrl===void 0?void 0:Po(e.controlPlane.dashboardUrl),p={...e.appAccess!==void 0?{appAccess:e.appAccess}:{},application:{baseDomain:r,dedicatedZone:e.application.dedicatedZone??!1,zoneName:o,...n?{workersDev:{...n}}:{},...e.application.zoneId?{zoneId:$e(e.application.zoneId,"application.zoneId")}:{}},authentication:{providers:[...l],...u?{configurable:!0}:{},...e.authentication?.accessProtection?{accessProtection:!0}:{}},capabilities:a,...e.emailSharedZoneId!==void 0?{emailSharedZoneId:$e(e.emailSharedZoneId,"emailSharedZoneId")}:{},...e.emailSenderDomain!==void 0?{emailSenderDomain:me(e.emailSenderDomain)}:{},controlPlane:{...Io,...e.controlPlane,...d!==void 0?{dashboardUrl:d,dashboardHostname:e.controlPlane?.dashboardHostname??new URL(d).hostname}:{}},displayName:$e(e.displayName,"displayName").trim(),installationSlug:t,resources:i,schemaVersion:e.appAccess!==void 0?4:u?3:n?2:1};Co(p.application);for(let[f,g]of Object.entries(p.controlPlane))f!=="dashboardUrl"&&g!==null&&me(g);if(p.controlPlane.dashboardUrl){let f=new URL(p.controlPlane.dashboardUrl).hostname;if(p.controlPlane.dashboardHostname!==f)throw new Error("The dashboard URL and dashboard hostname must agree.")}for(let[f,g]of Object.entries(p.resources))$e(g,`resources.${f}`);return p}s(vo,"createPlatformDeploymentManifest");var Vr=2;function Re(e){let t=e.SITE_DOMAIN??e.BASE_HOSTNAME??"void.app";return e.PLATFORM_APPLICATION?ko(JSON.parse(e.PLATFORM_APPLICATION)):{baseDomain:t,zoneName:t,dedicatedZone:!1}}s(Re,"readPlatformApplication");function ko(e){return vo({installationSlug:"runtime",displayName:"Runtime",application:e}).application}s(ko,"parsePlatformApplication");function Kr(e){return`workers-dev:${e}`}s(Kr,"platformWorkersDevAliasKey");var xo="__void/platform/application/v1";async function Wr(e){if(!e.PLATFORM_APPLICATION)return e;let t=await e.ROUTING.get(xo);if(!t)return e;let r=Re(e),n=Re({PLATFORM_APPLICATION:t});if(!r.workersDev||!n.workersDev||r.workersDev.installationId!==n.workersDev.installationId||r.workersDev.subdomain!==n.workersDev.subdomain)throw new Error("Application routing belongs to another platform installation.");return{...e,PLATFORM_APPLICATION:t,SITE_DOMAIN:n.baseDomain,BASE_HOSTNAME:n.baseDomain,...n.zoneId?{CF_ZONE_ID:n.zoneId}:{}}}s(Wr,"resolvePlatformApplicationEnvironment");function Do(e){return`void-${e.installationId.slice(-12)}-`}s(Do,"platformProjectIngressPrefix");function Oo(e,t){if(!/^proj_[a-z0-9]{1,32}$/.test(e.id)||!/^[a-z0-9][a-z0-9-]*$/.test(e.slug))throw new Error("Invalid platform project identity.");let r=Do(t),n=`-${e.id.slice(5)}`;return`${r}${e.slug.slice(0,63-r.length-n.length).replace(/-+$/,"")}${n}`}s(Oo,"platformProjectIngressName");function jr(e,t){return`${Oo(e,t)}.${t.subdomain}.workers.dev`}s(jr,"platformProjectWorkersDevHostname");var Ft="void-platform-health";function Jr(e){return e.zoneName?`${Ft}.${e.baseDomain}`:null}s(Jr,"platformHealthHostname");import{WorkerEntrypoint as bs}from"cloudflare:workers";var dt=new TextEncoder,ut=new TextDecoder,pt=new TextDecoder("utf-8",{fatal:!0}),ba=2**32;function zr(...e){let t=e.reduce((o,{length:i})=>o+i,0),r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}s(zr,"concat");var Lo=/[^\x00-\x7f]/;function Se(e){if(typeof e=="string"&&e.length>=128){if(Lo.test(e))throw new TypeError("non-ASCII string encountered in encode()");return dt.encode(e)}let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw new TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}s(Se,"encode");function Br(e,t=!1){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e,{alphabet:t?"base64url":"base64"});if(t){if(e.includes("+")||e.includes("/"))throw new TypeError("Invalid base64url");e=e.replace(/-/g,"+").replace(/_/g,"/")}let r=atob(e),n=new Uint8Array(r.length);for(let o=0;o<r.length;o++)n[o]=r.charCodeAt(o);return n}s(Br,"decodeBase64");var K=class extends Error{static{s(this,"JOSEError")}static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(t,r){super(t,r),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},ie=class extends K{static{s(this,"JWTClaimValidationFailed")}static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(t,r,n="unspecified",o="unspecified"){super(t,{cause:{claim:n,reason:o,payload:r}}),this.claim=n,this.reason=o,this.payload=r}},Fe=class extends K{static{s(this,"JWTExpired")}static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(t,r,n="unspecified",o="unspecified"){super(t,{cause:{claim:n,reason:o,payload:r}}),this.claim=n,this.reason=o,this.payload=r}},ft=class extends K{static{s(this,"JOSEAlgNotAllowed")}static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},X=class extends K{static{s(this,"JOSENotSupported")}static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"};var F=class extends K{static{s(this,"JWSInvalid")}static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},he=class extends K{static{s(this,"JWTInvalid")}static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"};var Ee=class extends K{static{s(this,"JWKSInvalid")}static code="ERR_JWKS_INVALID";code="ERR_JWKS_INVALID"},_e=class extends K{static{s(this,"JWKSNoMatchingKey")}static code="ERR_JWKS_NO_MATCHING_KEY";code="ERR_JWKS_NO_MATCHING_KEY";constructor(t="no applicable key found in the JSON Web Key Set",r){super(t,r)}},mt=class extends K{static{s(this,"JWKSMultipleMatchingKeys")}[Symbol.asyncIterator]=async function*(){};static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(t="multiple matching keys found in the JSON Web Key Set",r){super(t,r)}},ht=class extends K{static{s(this,"JWKSTimeout")}static code="ERR_JWKS_TIMEOUT";code="ERR_JWKS_TIMEOUT";constructor(t="request timed out",r){super(t,r)}},Ve=class extends K{static{s(this,"JWSSignatureVerificationFailed")}static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(t="signature verification failed",r){super(t,r)}};var Uo="The input to be decoded is not correctly encoded.";function Ke(e){try{return Br(typeof e=="string"?e:ut.decode(e),!0)}catch(t){throw new TypeError(Uo,{cause:t})}}s(Ke,"decode");function le(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}s(le,"isObject");function gt(e){return le(e)&&Array.isArray(e.keys)&&Array.from(e.keys).every(le)}s(gt,"isJwkSet");function Gr(...e){let t=new Set;for(let r of e)if(r)for(let n of Object.keys(r)){if(t.has(n))return!1;t.add(n)}return!0}s(Gr,"isDisjoint");function Vt(e,t,r){try{return Ke(e)}catch(n){throw new r(`Failed to base64url decode the ${t}`,{cause:n})}}s(Vt,"decodeBase64url");function qr(e,t,r){try{return Se(e)}catch(n){throw new r(`The ${t} is not a valid base64url string`,{cause:n})}}s(qr,"encodeAsciiMember");function Yr(e,t,r){let n;try{n=JSON.parse(pt.decode(Ke(e)))}catch(o){throw new t(r,{cause:o})}if(!le(n))throw new t(r);return n}s(Yr,"parseJoseHeader");var Qr={__proto__:null,b64:!0};function Xr(e,t){if(t!==void 0&&(!Array.isArray(t)||t.some(r=>typeof r!="string")))throw new TypeError(`"${e}" option must be an array of strings`);return t===void 0?void 0:new Set(t)}s(Xr,"validateAlgorithms");function Zr(e,t,r,n,o){if(o.crit!==void 0&&n?.crit===void 0)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!n||n.crit===void 0)return[];if(!Array.isArray(n.crit)||n.crit.length===0||n.crit.some(a=>typeof a!="string"||a.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let i=r===void 0?t:{__proto__:null,...r,...t};for(let a of n.crit){if(!(a in i))throw new X(`Extension Header Parameter "${a}" is not recognized`);if(!Object.hasOwn(o,a)||o[a]===void 0)throw new e(`Extension Header Parameter "${a}" is missing`);if(i[a]&&(!Object.hasOwn(n,a)||n[a]===void 0))throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`)}return n.crit}s(Zr,"validateCrit");function en(e,t){if(t.includes("b64")){let r=e.b64;if(typeof r!="boolean")throw new F('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return r}return!0}s(en,"validateB64");var No=s(e=>e[Symbol.toStringTag],"tag"),Mo=s((e,t,r)=>{let{alg:n}=e;if(t.use!==void 0){let o=r==="sign"||r==="verify"?"sig":"enc";if(t.use!==o)throw new TypeError(`Invalid key for this operation, its "use" must be "${o}" when present`)}if(t.alg!==void 0&&t.alg!==n)throw new TypeError(`Invalid key for this operation, its "alg" must be "${n}" when present`);if(Array.isArray(t.key_ops)){let o=r==="encrypt"||r==="decrypt"?e.ops?.[r==="encrypt"?0:1]:r;if(o&&!t.key_ops.includes(o))throw new TypeError(`Invalid key for this operation, its "key_ops" must include "${o}" when present`)}},"jwkMatchesOp");async function rn(e,t,r){let{alg:n,secret:o}=e,i=r==="decrypt"||r==="sign";if(o&&t instanceof Uint8Array)return t;let a,l;if(le(t)){if(a=jo(t),typeof a.kty!="string")throw tn(n,t,o);if(!(o?a.kty==="oct"&&typeof a.k=="string":a.kty!=="oct"&&(i?a.kty==="AKP"&&typeof a.priv=="string"||typeof a.d=="string":a.d===void 0&&a.priv===void 0)))throw new TypeError(o?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${i?"private":"public"} JWK`);if(Mo(e,a,r),a.kty==="oct")return Ke(a.k);if(!Object.isFrozen(t)){let{key_ops:p}=t;Array.isArray(p)&&Object.freeze(p),Object.freeze(t)}}else{if(!Fo(t))throw tn(n,t,o);let p=o?"secret":i?"private":"public";if(t.type!==p&&(o||["secret","public","private"].includes(t.type)))throw new TypeError(`${No(t)} instances must be of type "${p}" for the ${n} algorithm`);if(nn(t))return t;if(l=t,l.type==="secret")return l.export()}Kt||=new WeakMap;let u=t,d=Kt.get(u);if(d?.[n])return d[n];if(d||Kt.set(u,d={}),l&&typeof l.toCryptoKey=="function"){let p=l.type==="public",f=Ho[l.asymmetricKeyDetails?.namedCurve],g=e.resolve?.({crv:f,asymmetricKeyType:l.asymmetricKeyType})??e.subtle;return d[n]=l.toCryptoKey(g,p,e.usages[p?0:1])}return a??=l.export({format:"jwk"}),a.alg=n,d[n]=await jt(e,a)}s(rn,"prepareKey");var Kt,Ho={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};var nn=s(e=>{if(e?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return e instanceof CryptoKey}catch{return!1}},"isCryptoKey"),$o=s(e=>e?.[Symbol.toStringTag]==="KeyObject","isKeyObject"),Fo=s(e=>nn(e)||$o(e),"isKeyLike");function Vo(e,t,...r){if(r.length>2){let n=r.pop();e+=`one of type ${r.join(", ")}, or ${n}.`}else r.length===2?e+=`one of type ${r[0]} or ${r[1]}.`:e+=`of type ${r[0]}.`;return t==null?e+=` Received ${t}`:typeof t=="function"&&t.name?e+=` Received function ${t.name}`:typeof t=="object"&&t!=null&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}s(Vo,"message");function tn(e,t,r){let n=["CryptoKey","KeyObject","JSON Web Key"];return r&&n.push("Uint8Array"),new TypeError(Vo(`Key for the ${e} algorithm must be `,t,...n))}s(tn,"invalidKeyType");var yt=s((e,t="algorithm.name")=>new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`),"unusable");function Ko(e,t){if(t&&!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}s(Ko,"checkUsage");function on(e,t){let{modulusLength:r}=t.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}s(on,"checkModulusLength");function Wo(e,t,r){let n=e.algorithm;if(n.name!==t.name)throw yt(t.name);if(t.hash&&n.hash?.name!==t.hash)throw yt(t.hash,"algorithm.hash");if(t.namedCurve&&n.namedCurve!==t.namedCurve)throw yt(t.namedCurve,"algorithm.namedCurve");if(t.length!==void 0&&n.length!==t.length)throw yt(t.length,"algorithm.length");Ko(e,r)}s(Wo,"checkCryptoKey");function Wt(e){return{__proto__:null,...e}}s(Wt,"snapshotJwk");function jo(e){let t=Wt(e);if(t.ext!==void 0&&typeof t.ext!="boolean")throw new TypeError('"ext" (Extractable) Parameter must be a boolean');if(t.key_ops!==void 0){let r=t.key_ops,n=Array.isArray(r)?[...r]:void 0;if(!n||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');t.key_ops=n}return t}s(jo,"normalizeJwk");async function jt(e,t,r){if(!e.kty.includes(t.kty))throw new X('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let n=e.resolve?.({kty:t.kty,crv:t.crv})??e.subtle,o=!!(t.d||t.priv),i={...t,ext:r??t.ext};return i.kty!=="AKP"&&delete i.alg,delete i.use,crypto.subtle.importKey("jwk",i,n,i.ext??!o,t.key_ops??e.usages[o?1:0])}s(jt,"jwkToKey");async function sn(e,t,r,n=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey("raw",e,t,n,[r])),Wo(e,t,r),e}s(sn,"rawKey");function an(e){let t={__proto__:null};for(let r in e)t[r]={...e[r],alg:r};return t}s(an,"table");var We=[["verify"],["sign"]];function Jt(e){let t={name:"HMAC",hash:`SHA-${e}`};return{kty:["oct"],secret:!0,subtle:t,signing:t,usages:We}}s(Jt,"hmac");function Ie(e,t){let r={name:t?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${e}`};return{kty:["RSA"],subtle:r,signing:t?{...r,saltLength:t}:r,usages:We,minRsaBits:2048}}s(Ie,"rsa");function zt(e,t){return{kty:["EC"],crv:e,subtle:{name:"ECDSA",namedCurve:e},signing:{name:"ECDSA",hash:`SHA-${t}`},usages:We}}s(zt,"ecdsa");function cn(){let e={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:e,signing:e,usages:We}}s(cn,"eddsa");function Bt(e){let t={name:`ML-DSA-${e}`};return{kty:["AKP"],subtle:t,signing:t,usages:We}}s(Bt,"mldsa");var Gt=an({HS256:Jt(256),HS384:Jt(384),HS512:Jt(512),RS256:Ie(256),RS384:Ie(384),RS512:Ie(512),PS256:Ie(256,32),PS384:Ie(384,48),PS512:Ie(512,64),ES256:zt("P-256",256),ES384:zt("P-384",384),ES512:zt("P-521",512),EdDSA:cn(),Ed25519:cn(),"ML-DSA-44":Bt(44),"ML-DSA-65":Bt(65),"ML-DSA-87":Bt(87)});function ln(e){let t=typeof e=="string"?Gt[e]:void 0;if(!t)throw new X(`alg ${e} is not supported either by JOSE or your javascript runtime`);return t}s(ln,"jwsAlgorithm");function dn(e){return[e&&Xr("algorithms",e.algorithms),e?.crit]}s(dn,"prepareVerify");function Jo(e){return e===void 0?{}:Yr(e,F,"JWS Protected Header is invalid")}s(Jo,"parseProtectedHeader");function zo(e){try{return Se(e)}catch(t){throw new F("JWS Compact Serialization payload must use only ASCII characters",{cause:t})}}s(zo,"encodeCompactUnencodedPayload");async function Bo(e,t,r,n,o){let{protected:i,header:a,payload:l}=e,u=o??Jo(i);if(!Gr(u,a))throw new F("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let d={...u,...a},p=en(u,Zr(F,Qr,t[1],u,d)),{alg:f}=d;if(typeof f!="string"||!f)throw new F('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(t[0]&&!t[0].has(f))throw new ft('"alg" (Algorithm) Header Parameter value not allowed');if(p){if(typeof l!="string")throw new F("JWS Payload must be a string")}else if(typeof l!="string"&&!(l instanceof Uint8Array))throw new F("JWS Payload must be a string or an Uint8Array instance");let g=p||typeof l!="string"?l:n(l),c=!1;typeof r=="function"&&(r=await r(u,e),c=!0);let w=ln(f),m=zr(i!==void 0?Se(i):new Uint8Array,Se("."),typeof g=="string"?t[2]??=qr(g,"payload",F):g),C=Vt(e.signature,"signature",F),I=await rn(w,r,"verify"),h=await sn(I,w.subtle,"verify");w.minRsaBits&&on(w.alg,h);let R=!1;try{R=await crypto.subtle.verify(w.signing,h,C,m)}catch(M){throw new Ve(void 0,{cause:M})}if(!R)throw new Ve;let V={payload:typeof g=="string"?Vt(g,"payload",F):g};return i!==void 0&&(V.protectedHeader=u),a!==void 0&&(V.unprotectedHeader=a),c?[{...V,key:I},p]:[V,p]}s(Bo,"verifySignature");async function un(e,t,r){if(e instanceof Uint8Array&&(e=ut.decode(e)),typeof e!="string")throw new F("Compact JWS must be a string or Uint8Array");let{0:n,1:o,2:i,length:a}=e.split(".");if(a!==3)throw new F("Invalid Compact JWS");return Bo({payload:o,protected:n,signature:i},t,r,zo)}s(un,"verifyCompact");var Go=s(e=>Math.floor(e.getTime()/1e3),"epoch"),qo={s:1,m:60,h:3600,d:86400,w:604800,y:31557600},Yo=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,Pe="check_failed";function qt(){throw new TypeError("Invalid time period format")}s(qt,"invalidDuration");function pn(e){typeof e!="string"&&qt();let t=Yo.exec(e);(!t||t[4]&&t[1])&&qt();let r=parseFloat(t[2]),n=Math.round(r*qo[t[3][0].toLowerCase()]);return Number.isFinite(n)||qt(),t[1]==="-"||t[4]==="ago"?-n:n}s(pn,"secs");function Yt(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}s(Yt,"validateInput");var fn=s(e=>{let t=e.toLowerCase();return e.includes("/")?t:`application/${t}`},"normalizeTyp"),Qo=s((e,t)=>typeof e=="string"?t.includes(e):Array.isArray(e)?t.some(r=>e.includes(r)):!1,"checkAudiencePresence");function Qt(e,t,r=!1){let n=e[t];if(!(n===void 0&&!r)){if(typeof n!="number")throw new ie(`"${t}" claim must be a number`,e,t,"invalid");return n}}s(Qt,"validateNumericDate");function Xt(e,t){throw new ie(`unexpected "${t}" claim value`,e,t,Pe)}s(Xt,"unexpectedClaim");function mn(e,t,r={}){let n;try{n=JSON.parse(pt.decode(t))}catch(h){throw new he("JWT Claims Set must be a top-level JSON object",{cause:h})}if(!le(n))throw new he("JWT Claims Set must be a top-level JSON object");let{typ:o}=r;if(o!==void 0&&(typeof e.typ!="string"||fn(e.typ)!==fn(o)))throw new ie('unexpected "typ" JWT header value',n,"typ",Pe);let{requiredClaims:i=[],issuer:a,subject:l,audience:u,maxTokenAge:d}=r,p=[...i];d!==void 0&&p.push("iat"),u!==void 0&&p.push("aud"),l!==void 0&&p.push("sub"),a!==void 0&&p.push("iss");for(let h of new Set(p.reverse()))if(!Object.hasOwn(n,h))throw new ie(`missing required "${h}" claim`,n,h,"missing");a!==void 0&&!(Array.isArray(a)?a:[a]).includes(n.iss)&&Xt(n,"iss"),l!==void 0&&n.sub!==l&&Xt(n,"sub"),u!==void 0&&!Qo(n.aud,typeof u=="string"?[u]:u)&&Xt(n,"aud");let{clockTolerance:f}=r,g=0;if(typeof f=="string")g=pn(f);else if(f!==void 0){if(typeof f!="number")throw new TypeError("Invalid clockTolerance option type");g=f}Yt("clockTolerance option",g);let{currentDate:c}=r,w=Yt("currentDate option",Go(c===void 0?new Date:c)),m=Qt(n,"iat",d!==void 0),C=Qt(n,"nbf");if(C!==void 0&&C>w+g)throw new ie('"nbf" claim timestamp check failed',n,"nbf",Pe);let I=Qt(n,"exp");if(I!==void 0&&I<=w-g)throw new Fe('"exp" claim timestamp check failed',n,"exp",Pe);if(d!==void 0){let h=w-m,R=Yt("maxTokenAge option",typeof d=="number"?d:pn(d));if(h-g>R)throw new Fe('"iat" claim timestamp check failed (too far in the past)',n,"iat",Pe);if(h<-g)throw new ie('"iat" claim timestamp check failed (it should be in the past)',n,"iat",Pe)}return n}s(mn,"validateClaimsSet");async function Zt(e,t,r){let[n,o]=await un(e,dn(r),t);if(!o)throw new he("JWTs MUST NOT use unencoded payload");let i=mn(n.protectedHeader,n.payload,r);return{...n,payload:i}}s(Zt,"jwtVerify");function Xo(e,t,r,n){let{kty:o,key_ops:i,ext:a,kid:l,alg:u,use:d,crv:p}=e;return(a===void 0||typeof a=="boolean")&&(i===void 0||Array.isArray(i)&&i.every((f,g)=>typeof f=="string"&&i.indexOf(f)===g)&&i.includes("verify"))&&t.kty.includes(o)&&(n===void 0||typeof n=="string"&&n===l)&&(u===void 0?o!=="AKP":r===u)&&(d===void 0||d==="sig")&&(!t.crv||p===t.crv)}s(Xo,"isUsableJWK");async function hn(e,t,r){let n=e.get(t)||e.set(t,{}).get(t),{alg:o}=r;if(n[o]===void 0){let i=jt(r,t,!0).then(a=>{if(a.type!=="public")throw new Ee("JSON Web Key Set members must be public keys");return n[o]=a,a}).catch(a=>{throw n[o]===i&&delete n[o],a});n[o]=i}return n[o]}s(hn,"importWithAlgCache");function er(e){let t;try{t=structuredClone(e)}catch(o){throw new Ee("JSON Web Key Set malformed",{cause:o})}if(!gt(t))throw new Ee("JSON Web Key Set malformed");let r=t.keys.map(o=>{let i=Wt(o);return Array.isArray(i.key_ops)&&(i.key_ops=[...i.key_ops]),i}),n=new WeakMap;return Object.defineProperty(async(o,i)=>{let{alg:a,kid:l}={...o,...i?.header},u=typeof a=="string"?Gt[a]:void 0;if(!u||u.secret)throw new X('Unsupported "alg" value for a JSON Web Key Set');let d=t.keys.filter((g,c)=>Xo(r[c],u,a,l)),{0:p,length:f}=d;if(!f)throw new _e;if(f!==1){let g=new mt;throw g[Symbol.asyncIterator]=async function*(){for(let c of d)try{yield await hn(n,c,u)}catch{}},g}return hn(n,p,u)},"jwks",{value:s(()=>structuredClone(t),"value")})}s(er,"createLocalJWKSet");function Zo(){return typeof WebSocketPair<"u"||typeof navigator<"u"&&!0||typeof EdgeRuntime<"u"&&EdgeRuntime==="vercel"}s(Zo,"isCloudflareWorkers");var tr;(typeof navigator>"u"||!"Cloudflare-Workers"?.startsWith?.("Mozilla/5.0 "))&&(tr="jose/v6.2.14");var wt=Symbol();async function es(e,t,r,n=fetch){let o=await n(e,{method:"GET",signal:r,redirect:"manual",headers:t}).catch(i=>{throw i.name==="TimeoutError"?new ht(void 0,{cause:i}):i});if(o.status!==200)throw new K("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await o.json()}catch(i){throw new K("Failed to parse the JSON Web Key Set HTTP response as JSON",{cause:i})}}s(es,"fetchJwks");var yn=Symbol();function je(e,t){return Number.isFinite(e)&&Date.now()<e+t}s(je,"isFreshFor");function gn(e,t,r){if(Number.isNaN(e))throw new TypeError(`"${r}" option must not be NaN`);return typeof e=="number"?e:t}s(gn,"validateDuration");function rr(e,t){if(!(e instanceof URL))throw new TypeError("url must be an instance of URL");let r=new URL(e.href).href,n=t??{},o=n.timeoutDuration;if(typeof o=="number"&&(!Number.isInteger(o)||o<0))throw new TypeError('"timeoutDuration" option must be a non-negative integer');let i=typeof o=="number"?o:5e3,a=gn(n.cooldownDuration,3e4,"cooldownDuration"),l=gn(n.cacheMaxAge,6e5,"cacheMaxAge"),u=new Headers(n.headers);tr&&!u.has("User-Agent")&&u.set("User-Agent",tr),u.has("accept")||u.set("accept","application/json, application/jwk-set+json");let d=n[wt],p=n[yn],f,g,c=0,w=0,m;if(p&&typeof p=="object"){let{uat:I,jwks:h}=p;je(I,l)&&gt(h)&&(f=I,m=er(h))}let C=s(async()=>{if(g&&Zo()&&(g=void 0),!g){let I=++c,h=g=es(r,u,AbortSignal.timeout(i),d).then(R=>{let V=er(R);if(I<=w)return;m=V;let M=Date.now();p&&(p.uat=M,p.jwks=R),f=M,w=I}).finally(()=>{g===h&&(g=void 0)})}await g},"reload");return Object.defineProperties(async(I,h)=>{(!m||!je(f,l))&&await C();try{return await m(I,h)}catch(R){if(R instanceof _e&&!je(f,a))return await C(),m(I,h);throw R}},{coolingDown:{get:s(()=>je(f,a),"get"),enumerable:!0},fresh:{get:s(()=>je(f,l),"get"),enumerable:!0},reload:{value:C,enumerable:!0},reloading:{get:s(()=>!!g,"get"),enumerable:!0},jwks:{value:s(()=>m?.jwks(),"value"),enumerable:!0}})}s(rr,"createRemoteJWKSet");function wn(e,t){let r=e.toLowerCase(),n=t.toLowerCase(),o=r.indexOf("*");if(o===-1)return r===n;let i=r.slice(0,o),a=r.slice(o+1);if(i.includes(".")||!a.startsWith(".")||a.includes("*")||!n.startsWith(i)||!n.endsWith(a))return!1;let l=n.slice(0,-a.length);return l.length>0&&!l.includes(".")}s(wn,"matchesHostname");function ts(e,t){let r=t.audiences.find(n=>!n.hostname.includes("*")&&wn(n.hostname,e));return r?r.audience:t.audiences.find(n=>wn(n.hostname,e))?.audience??null}s(ts,"resolveAccessAudience");var nr=class{constructor(t=(r,n)=>fetch(r,n)){this.request=t}request;static{s(this,"ProjectAccessVerifier")}keys=new Map;async verify(t,r,n){try{let o=ts(t,n);if(!o||!r||r.length>32*1024)return!1;let i=n.teamDomain.replace(/\/+$/,""),a=new URL(i);if(a.protocol!=="https:"||!a.hostname.endsWith(".cloudflareaccess.com")||a.origin!==i)return!1;let l=this.keys.get(i);l||(this.keys.size>=16&&this.keys.delete(this.keys.keys().next().value),l=rr(new URL(`${i}/cdn-cgi/access/certs`),{timeoutDuration:1e4,[wt]:async(d,p)=>{let f=await this.request(d,{...p,redirect:"manual"});if(f.status>=300&&f.status<400)throw await f.body?.cancel(),new Error("Access key endpoint redirected.");return f}}),this.keys.set(i,l));let{payload:u}=await Zt(r,l,{issuer:i,audience:o,algorithms:["RS256"],requiredClaims:["iss","aud","iat","exp","type"]});return u.type==="app"&&typeof u.iat=="number"&&u.iat<=Date.now()/1e3+30}catch{return!1}}},An=new nr;function Je(e){return e.slice(e.lastIndexOf("/")+1).includes(".")}s(Je,"hasExtension");function Z(e){return e==="/api"||e.startsWith("/api/")}s(Z,"isApiPath");function or(e,t,r=!1){return Z(e)?"api":t&&(!Je(e)||r)?"ssr":null}s(or,"classifyDynamicRequestType");var sr='system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';function ir(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}s(ir,"escapeHtml");function bn(e,t,r=!1){let n=`${e}: ${t}`,o=`${e}: `;return`<!doctype html>
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>${sr(n)}</title>
6
+ <title>${ir(n)}</title>
7
7
  <style>
8
8
  :root {
9
9
  color-scheme: light;
10
- font-family: ${or};
10
+ font-family: ${sr};
11
11
  background: #f5f5f5;
12
12
  color: #171717;
13
13
  }
@@ -25,7 +25,7 @@ var so=Object.defineProperty;var s=(e,t)=>so(e,"name",{value:t,configurable:!0})
25
25
  background:
26
26
  radial-gradient(circle at top, rgba(255, 255, 255, 0.96), rgba(245, 245, 245, 0.96) 52%),
27
27
  linear-gradient(180deg, #fafafa 0%, #f1f1f1 100%);
28
- font: 500 16px/1.5 ${or};
28
+ font: 500 16px/1.5 ${sr};
29
29
  }
30
30
 
31
31
  main {
@@ -41,7 +41,7 @@ var so=Object.defineProperty;var s=(e,t)=>so(e,"name",{value:t,configurable:!0})
41
41
 
42
42
  h1 {
43
43
  margin: 0;
44
- font: 400 clamp(1.5rem, 1.2rem + 1vw, 2rem) / 1.1 ${or};
44
+ font: 400 clamp(1.5rem, 1.2rem + 1vw, 2rem) / 1.1 ${sr};
45
45
  letter-spacing: -0.03em;
46
46
  }
47
47
 
@@ -59,7 +59,7 @@ var so=Object.defineProperty;var s=(e,t)=>so(e,"name",{value:t,configurable:!0})
59
59
  ${r?`<h1>Temporarily unavailable</h1>
60
60
  <p>This service is undergoing maintenance. Please try again in a moment.</p>
61
61
  <a href="">Try again</a>
62
- <small>If you submitted a form, check whether it succeeded before submitting it again.</small>`:`<h1><strong>${sr(o)}</strong>${sr(t)}</h1>`}
62
+ <small>If you submitted a form, check whether it succeeded before submitting it again.</small>`:`<h1><strong>${ir(o)}</strong>${ir(t)}</h1>`}
63
63
  </main>
64
64
  </body>
65
- </html>`}s(An,"renderDefaultErrorPage");function bn(e){let t=new Headers({"Cache-Control":"no-store","Retry-After":"30"});return wt(e)?(t.set("Content-Type","text/html; charset=utf-8"),new Response(e.method==="HEAD"?null:An(503,"Temporarily unavailable",!0),{status:503,headers:t})):new Response(e.method==="HEAD"?null:"Platform disabled",{status:503,headers:t})}s(bn,"createMaintenanceResponse");function wt(e){if(e.method!=="GET"&&e.method!=="HEAD")return!1;let t=new URL(e.url);if(Z(t.pathname)||/\/[^/]+\.[^/]+$/.test(t.pathname))return!1;let r=e.headers.get("sec-fetch-dest");if(r&&r!=="document"&&r!=="empty")return!1;let n=e.headers.get("accept");return!n||n.includes("text/html")||n.includes("*/*")}s(wt,"shouldServeHtmlErrorPage");function W(e,t,r,n){if(!wt(e))return new Response(r,{status:t,headers:n});let o=new Headers(n);return o.set("content-type","text/html; charset=utf-8"),new Response(e.method==="HEAD"?null:An(t,r),{status:t,headers:o})}s(W,"createErrorResponse");function ir(e){let t=e;return t==="/"?t="__index__":(t=t.startsWith("/")?t.slice(1):t,t.endsWith("/")&&(t=t.slice(0,-1))),t}s(ir,"normalizeIsrPath");function es(e){return e==="__index__"?"/":`/${e}`}s(es,"denormalizeIsrPath");function ts(e){return es(ir(e))}s(ts,"canonicalIsrPathname");function rs(e,t,r){return r!==void 0?`${e}/isr/${t}/${r}/`:`${e}/isr/`}s(rs,"versionedIsrCachePrefix");function Sn(e,t){return rs(e,"v3",t)}s(Sn,"isrCachePrefix");var En="#rw=";function Je(e,t,r,n,o){let i=`${Sn(e,t)}${r}/${ir(n)}`;return o?`${i}${En}${In(o)}`:i}s(Je,"isrCacheKey");function _n(e,t,r,n){return`${Sn(e,t)}${r}/${ir(n)}${En}`}s(_n,"isrCacheVariantPrefix");var ns=0xcbf29ce484222325n,os=0x100000001b3n,Rn=0xffffffffffffffffn;function In(e){let t=new TextEncoder().encode(e),r=ns;for(let n=0;n<t.length;n++)r=(r^BigInt(t[n]))&Rn,r=r*os&Rn;return r.toString(16).padStart(16,"0")}s(In,"hashOriginalUrl");function ar(e,t,r,n,o){return ss(e,t,r,n,o?In(o):null)}s(ar,"isrEdgeCacheUrl");function ss(e,t,r,n,o){let i=ts(t),a=new URL(`https://${e}${i}`);return n==="json"&&a.searchParams.set("__void","json"),a.searchParams.set("__void_isr",r),o&&a.searchParams.set("__void_orig",o),a.toString()}s(ss,"buildIsrEdgeCacheUrl");var Pe=3,Te="x-void-shared-cache-policy";function G(e){e.set(Te,String(Pe))}s(G,"markSharedCachePolicy");function Be(e){return e.headers.get(Te)===String(Pe)}s(Be,"hasCurrentSharedCachePolicy");var is=/<script\b[^>]*\bid=(["'])__VOID_PAGE_DATA__\1[^>]*>([\s\S]*?)<\/script>/i,as=new Set(["cache-control","x-isr-cache","x-void-page-data","set-cookie"]);function Ce(e,t,r){let n=new URL(e);if(!n.search)return n.toString();let o=Pn(r,t);if(o.size===0)return n.search="",n.toString();let i=[...new Set(n.searchParams.keys())].filter(u=>o.has(u)).sort(),a=new URLSearchParams;for(let u of i)for(let d of n.searchParams.getAll(u))a.append(u,d);let l=a.toString();return n.search=l?`?${l}`:"",n.toString()}s(Ce,"buildVariantOriginalUrl");function cr(e,t,r){let n=new URL(e);if(!n.search)return!1;let o=Pn(r,t);for(let i of n.searchParams.keys())if(!o.has(i))return!0;return!1}s(cr,"hasUnlistedQueryParams");function lr(e){if(!e)return;let t=Object.fromEntries(Object.entries(e).filter(([r])=>!r.includes("*")));return Object.keys(t).length>0?t:void 0}s(lr,"exactQueryAllowlist");function Pn(e,t){if(!e)return new Set;for(let[r,n]of Object.entries(e))if(pe(r,t))return new Set(n);return new Set}s(Pn,"resolveQueryAllowlist");function dr(e,t){let r=new TextEncoder().encode(JSON.stringify(e)),n=new ArrayBuffer(4+r.byteLength+t.byteLength);return new DataView(n).setUint32(0,r.byteLength,!0),new Uint8Array(n,4,r.byteLength).set(r),new Uint8Array(n,4+r.byteLength).set(new Uint8Array(t)),n}s(dr,"packIsrValue");function Tn(e){if(e.byteLength<4)return null;let r=new DataView(e).getUint32(0,!0);if(e.byteLength<4+r)return null;try{let n=new Uint8Array(e,4,r),o=JSON.parse(new TextDecoder().decode(n));if(!o||typeof o!="object"||Array.isArray(o))return null;let i={};for(let[a,l]of Object.entries(o)){if(typeof l!="string")return null;i[a]=l}return{headers:i,body:e.slice(4+r)}}catch{return null}}s(Tn,"unpackIsrValue");function Cn(e,t){if(!e||!t)return null;let r=Tn(e);if(!r||!Number.isInteger(t.s)||t.s<200||t.s>599||!Number.isFinite(t.c)||t.c<=0||!Number.isFinite(t.t)||t.t<=0||t.p!==Pe)return null;try{new Headers(r.headers)}catch{return null}return{body:new ReadableStream({start(n){n.enqueue(new Uint8Array(r.body)),n.close()}}),status:t.s,headers:r.headers,createdAt:t.c,ttl:t.t}}s(Cn,"decodeIsrCacheEntry");function ur(e,t=Date.now()){return t-e.createdAt>e.ttl*1e3}s(ur,"isStale");function pr(e,t,r=Date.now()){let n=new Headers(e.headers);if(n.set("x-isr-cache",t?"STALE":"HIT"),t)n.set("Cache-Control",`public, s-maxage=${Math.min(10,e.ttl)}, max-age=0, must-revalidate`);else{let o=Math.max(0,Math.floor((e.createdAt+e.ttl*1e3-r)/1e3));n.set("Cache-Control",`public, s-maxage=${o}, max-age=0, must-revalidate`)}return G(n),new Response(e.body,{status:e.status,headers:n})}s(pr,"isrCacheResponse");function ve(e,t){let r=e.headers.get("x-revalidate");if(r===null)return t;let n=Number.parseInt(r,10);return Number.isNaN(n)||n<0?t:n}s(ve,"resolveRevalidateTtl");function cs(e){return e.headers.get("Accept")?.toLowerCase().split(",").some(t=>t.split(";",1)[0]?.trim()==="text/event-stream")??!1}s(cs,"acceptsEventStream");function Ge(e){return e.headers.has("Cookie")||e.headers.has("Authorization")||e.headers.has("Cf-Access-Jwt-Assertion")||cs(e)}s(Ge,"shouldBypassIsr");function At(e){if(e.method!=="GET"||e.headers.has("X-VoidPages")||new URL(e.url).pathname.startsWith("/__void/")||!e.headers.get("accept")?.split(",").some(o=>o.trim().toLowerCase().split(";",1)[0]==="text/html"))return!1;let r=e.headers.get("sec-fetch-mode")?.toLowerCase();if(r&&r!=="navigate")return!1;let n=e.headers.get("sec-fetch-dest")?.toLowerCase();return!(n&&n!=="document"||e.headers.has("rsc")||e.headers.has("x-nextjs-data"))}s(At,"isFrameworkDocumentRequest");function ae(e){if(e.headers.get("Vary")?.split(",").some(r=>{let n=r.trim().toLowerCase();return n!==""&&n!=="x-voidpages"})||e.headers.has("Set-Cookie"))return!0;let t=e.headers.get("Cache-Control");return t?t.split(",").some(r=>{let n=r.split("=",1)[0]?.trim().toLowerCase();return n==="private"||n==="no-store"||n==="no-cache"}):!1}s(ae,"hasSharedCacheOptOut");function ze(e,t){if(e==null)return 0;if(typeof e=="number")return e;for(let[r,n]of Object.entries(e))if(q(r,t))return n;return 0}s(ze,"resolvePathTtl");function qe(e,t,r,n){if(e){for(let o of e)if(q(o.pattern,n))return o.revalidate===void 0?ze(r,n):o.revalidate>0?o.revalidate:0}return ze(t,n)}s(qe,"resolvePageTtl");function fr(e){let t={};return e.headers.forEach((r,n)=>{as.has(n.toLowerCase())||(t[n]=r)}),t}s(fr,"serializeHeaders");function bt(e){try{let t=JSON.parse(e);return t.deferred===void 0&&t.deferredKeys===void 0?e:null}catch{return null}}s(bt,"normalizePageDataForJsonCache");function mr(e){let t=e.match(is);return t?bt(t[2]):null}s(mr,"extractPageDataFromHtml");var ke="isr-cache/";function Ye(e,t){return{async getWithMetadata(r){let n=await e.get(ke+r);return n?{value:await n.arrayBuffer(),metadata:JSON.parse(n.customMetadata?.isr??"null")}:{value:null,metadata:null}},async put(r,n,{metadata:o}){await e.put(ke+r,n,{customMetadata:{isr:JSON.stringify(o)}})},async delete(r){await e.delete(ke+r);try{await t?.delete(r)}catch(n){console.warn("[api] Legacy ISR KV cleanup failed.",n)}},async has(r){return await e.head(ke+r)!==null},async list({prefix:r,cursor:n,limit:o}){if(t&&n?.startsWith("kv:")){let a=await t.list({prefix:r,cursor:n.slice(3)||void 0,limit:o});return{keys:a.keys,list_complete:a.list_complete,cursor:a.list_complete?void 0:`kv:${a.cursor}`}}let i=await e.list({prefix:ke+r,cursor:n?.slice(3),limit:o});return{keys:i.objects.map(({key:a})=>({name:a.slice(ke.length)})),list_complete:!i.truncated&&!t,cursor:i.truncated?`r2:${i.cursor}`:t?"kv:":void 0}}}}s(Ye,"createIsrStore");async function kn(e,t,r,n,o,i){let a=Je(t,r,n,o,i);try{let{value:l,metadata:u}=await Ye(e.STATIC_ASSETS_R2).getWithMetadata(a);return Cn(l,u)}catch{return null}}s(kn,"readIsrCache");async function hr(e,t,r,n,o,i){let a=Je(t,r,n,o,i);await Ye(e.STATIC_ASSETS_R2,e.ISR_CACHE).delete(a)}s(hr,"deleteIsrCache");async function Rt(e,t,r,n,o,i,a,l){let u=Je(t,r,n,o,l),d=i.clone(),p=fr(d),f=d.status;if(l&&!await ls(e,t,r,n,o,u))return;let g=await d.arrayBuffer(),c=dr(p,g);await Ye(e.STATIC_ASSETS_R2).put(u,c,{metadata:{s:f,c:Date.now(),t:a,p:Pe}})}s(Rt,"writeIsrCache");async function ls(e,t,r,n,o,i){let a=_n(t,r,n,o),l=Ye(e.STATIC_ASSETS_R2),u=0,d;do{let p=await l.list({prefix:a,cursor:d,limit:Ht});if(p.keys.some(f=>f.name===i))return!0;if(u+=p.keys.length,u>=Ht)return l.has(i);d=p.list_complete?void 0:p.cursor}while(d);return!0}s(ls,"isVariantWriteAllowed");function xn(e,t,r){return e.revalidate===void 0?ze(t,r):e.revalidate>0?e.revalidate:0}s(xn,"matchedPageTtl");function ds(e){return!/[:{*]/.test(e)}s(ds,"isLiteralPattern");function Dn(e,t,r){if(!e)return!1;for(let n of e)if(q(n.pattern,t))return ds(n.pattern)&&xn(n,r,t)>0;return!1}s(Dn,"matchesLiteralPage");function vn(e){return e.includes("*")||e.includes("{.+}")}s(vn,"isBroadCatchAll");function On(e,t,r,n){if(e&&e.length>0){for(let o of e)if(q(o.pattern,n))return xn(o,r,n)>0&&!vn(o.pattern)}if(t&&typeof t=="object"){for(let[o,i]of Object.entries(t))if(q(o,n))return i>0&&!vn(o)}return!1}s(On,"isDottedPathIsrEligible");function Ln(e,t,r,n){return new Request(ar(new URL(e.url).hostname,t,r,"html",n),{method:"GET"})}s(Ln,"isrEdgeCacheKey");function gr(e,t,r,n){return new Request(ar(new URL(e.url).hostname,t,r,"json",n),{method:"GET"})}s(gr,"isrEdgeCacheKeyJson");async function Nn(e,t,r){let n=new Headers({"Cache-Control":"no-store",Vary:"Accept, Sec-Fetch-Dest, X-VoidPages"}),o=Mt(t),i=o.headers.get("retry-after");if(i&&n.set("Retry-After",i),e.headers.get("X-VoidPages")==="true"||!wt(e))return n.set("Content-Type","application/json"),new Response(e.method==="HEAD"?null:o.body,{status:429,headers:n});try{let a=await r?.();if(a?.ok&&a.headers.get("content-type")?.includes("text/html"))return n.set("Content-Type","text/html; charset=utf-8"),n.set("X-Content-Type-Options","nosniff"),n.set("Content-Security-Policy","default-src 'none'; style-src 'unsafe-inline'; img-src data:; base-uri 'none'; form-action 'none'"),e.method==="HEAD"&&await a.body?.cancel(),new Response(e.method==="HEAD"?null:a.body,{status:429,headers:n});await a?.body?.cancel()}catch{}return W(e,429,t.message,n)}s(Nn,"createLimitResponse");var Un=Fr,us="__void:usage-signing-key:v1",tl=11520*6e4,Mn=new TextEncoder;function ps(e){let t="";for(let r of new Uint8Array(e))t+=String.fromCharCode(r);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}s(ps,"base64url");async function fs(e,t){let r=await crypto.subtle.importKey("raw",Mn.encode(t),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return crypto.subtle.sign("HMAC",r,Mn.encode(e))}s(fs,"hmac");async function Hn(e){return e.get(us,{cacheTtl:60})}s(Hn,"readUsageSigningKey");function ms(e,t,r,n){return JSON.stringify([e,t,r,n])}s(ms,"signedPayload");async function $n(e,t,r,n){return{version:Un,source:t,eventId:r,event:n,signature:ps(await fs(ms(Un,t,r,n),e))}}s($n,"signUsageEvent");function Vn(e,t){e.ANALYTICS.writeDataPoint({indexes:[t.projectId],blobs:[t.projectId,t.type,t.method,String(t.status),t.slug,t.failureKind??""],doubles:[1,t.responseBytes,t.durationMs]})}s(Vn,"recordRequest");function hs(e){if(!e.startsWith("user-"))return null;let t=e.lastIndexOf("-dpl_");return t>4?{projectKey:e.slice(0,t),deployId:e.slice(t+1)}:{projectKey:e,deployId:""}}s(hs,"splitWorkerName");var gs=2048,ys=1024;function Fn(e,t){let r=new TextEncoder().encode(e);if(r.length<=t)return e;let n="\u2026";if(t<3)return"";let o=t-3;for(;o>0&&(r[o]&192)===128;)o--;return new TextDecoder().decode(r.slice(0,o))+n}s(Fn,"truncateUtf8");function Kn(e,t){if(!t.workerName)return;let r=hs(t.workerName);if(!r)return;let n=t.url;try{n=new URL(t.url).pathname}catch{}let o=`Void platform: your worker did not respond within ${t.timeoutMs} ms. ${t.method} ${Fn(n,ys)} was cut short and returned ${t.status}. The operation may still have side effects; check its outcome before retrying.`;try{e.LOGS.writeDataPoint({indexes:[r.projectKey],blobs:["canceled",JSON.stringify([{level:"error",message:[o],timestamp:Date.now()}]),"[]",Fn(t.url,gs),t.method,String(t.status),r.deployId],doubles:[Date.now(),t.status]})}catch{}}s(Kn,"recordPlatformLog");async function jn(e,t){let r=await Hn(e.ROUTING);if(!r)throw new Error("Usage metering is not initialized. Check the platform API /health endpoint.");let n=crypto.randomUUID();await e.USAGE_QUEUE.send(await $n(r,"dispatch",n,t))}s(jn,"sendUsageEvent");var yr="__void/platform/disabled/v1",wr="disabled";var Wn="void.app";function Jn(e,t=Wn){let r=`.${t}`;if(!e.endsWith(r))return null;let n=e.slice(0,-r.length);return!n||n.includes(".")||!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(n)?null:n}s(Jn,"extractSlug");async function zn(e,t){let r=be(t);if(!(!!r.workersDev&&e.endsWith(`.${r.workersDev.subdomain}.workers.dev`)))return{slug:Jn(e,t.BASE_HOSTNAME),workersDev:!1};let o=await t.ROUTING.get(Vr(e));if(o){let i=JSON.parse(o);if(jr(i,r.workersDev)===e)return{slug:i.slug,projectId:i.id,workersDev:!0}}return{slug:null,workersDev:!0}}s(zn,"resolveProjectHostname");function Ar(e){return new URL(typeof e=="string"||e instanceof URL?e:e.url).hostname.endsWith(".workers.dev")}s(Ar,"isTestHostname");var ee={async match(e,t){return Ar(e)?void 0:caches.default.match(e,t)},async put(e,t){Ar(e)||await caches.default.put(e,t)},async delete(e,t){return Ar(e)?!1:caches.default.delete(e,t)}};var M=class extends Error{static{s(this,"DispatchTimeoutError")}label;constructor(t){super(`Dispatch operation timed out: ${t}`),this.name="DispatchTimeoutError",this.label=t}};function he(e,t,r){if(!(t>0)||!Number.isFinite(t))return e;let n=null,o=new Promise((i,a)=>{n=setTimeout(()=>{a(new M(r))},t)});return Promise.race([e,o]).finally(()=>{clearTimeout(n)})}s(he,"withTimeout");async function br(e,t){let r=t.delayMs>0&&Number.isFinite(t.delayMs),n=t.timeoutMs>0&&Number.isFinite(t.timeoutMs),o=s(async()=>{try{return{ok:!0,value:await e()}}catch(E){return{ok:!1,error:E}}},"run"),i=[],a=s(()=>{let E={id:i.length+1,promise:o()};return i.push(E),E},"startAttempt"),l=null,u=r?new Promise(E=>{l=setTimeout(()=>E({kind:"hedge"}),t.delayMs)}):null,d=null,p=n?new Promise(E=>{d=setTimeout(()=>E({kind:"timeout"}),t.timeoutMs)}):null,f=s(()=>{clearTimeout(l),clearTimeout(d)},"clearTimers"),g=s(E=>{E.promise.then(async U=>{U.ok&&U.value!==null&&await t.discard?.(U.value)}).catch(()=>{})},"discardAttempt"),c=s(E=>{f();for(let U of i)U.id!==E&&g(U)},"finish"),w=s(()=>{throw c(),new M(t.label)},"timeout"),m=s(E=>E.promise.then(U=>({kind:"attempt",attempt:E,outcome:U})),"waitForAttempt"),C=a(),I=await Promise.race([m(C),...u?[u]:[],...p?[p]:[]]);if(I.kind==="timeout")return w();if(I.kind==="attempt"){if(clearTimeout(l),I.outcome.ok)return c(C.id),I.outcome.value;if(!r)throw c(),I.outcome.error;t.onHedge?.();let E=a(),U=await Promise.race([m(E),...p?[p]:[]]);if(U.kind==="timeout")return w();if(c(E.id),U.outcome.ok)return U.outcome.value;throw U.outcome.error}t.onHedge?.();let h=a(),R=await Promise.race([m(C),m(h),...p?[p]:[]]);if(R.kind==="timeout")return w();if(R.outcome.ok&&R.outcome.value!==null)return c(R.attempt.id),R.outcome.value;let V=R.attempt.id===C.id?h:C,H=await Promise.race([m(V),...p?[p]:[]]);if(H.kind==="timeout")return w();if(H.outcome.ok&&H.outcome.value!==null)return c(V.id),H.outcome.value;if(c(),R.outcome.ok||H.outcome.ok)return null;throw R.outcome.error}s(br,"withDelayedHedge");function Rr(e,t=1e4){return e===void 0?t:Number(e)}s(Rr,"resolveTimeoutMs");async function As(e,t){try{return await e.ROUTING.get(`project-suspended:${t}`,{cacheTtl:60})!==null}catch(r){return console.error(`[queue-relay] suspension check failed project="${t}"; relaying`,r),!1}}s(As,"isProjectSuspended");var bs="public, max-age=0, must-revalidate",eo=1e3,xe=300,Bn=3600,Rs=120,ce="platform-static-asset-timeout",de="platform-static-asset-error",ye="platform-static-asset-missing",Ss=86400;function Es(e,t){return[e.url.replace(/^[a-z][a-z\d+.-]*:\/\/[^/\\?#]*/i,"").replace(/[?#].*$/s,""),t.pathname].some(n=>{let o=n;try{o=decodeURIComponent(n)}catch{}return o.replace(/[\\/]+/g,"/").toLowerCase().startsWith("/health")})}s(Es,"platformHealthExceptionPath");function _t(e,t){return new Response(null,{status:e,headers:{"X-Void-Timeout":t,...e===503?{"Retry-After":"5"}:{}}})}s(_t,"timeoutResponse");function Qe(e){return e===ce?_t(503,"static-asset"):new Response(null,{status:503,headers:{"X-Void-Storage-Error":e===ye?"static-asset-missing":"static-asset-read","Retry-After":"5"}})}s(Qe,"staticAssetFailureResponse");function we(e){return e.headers.get("content-type")?.toLowerCase().split(";",1)[0]?.trim()==="text/html"}s(we,"isHtmlResponse");function _s(e,t,r){let n=new Response(e,{headers:{"content-type":"application/json","X-VoidPages":"true",Vary:"X-VoidPages","Cache-Control":`public, s-maxage=${t}, max-age=0, must-revalidate`,"x-isr-cache":r}});return G(n.headers),n}s(_s,"jsonCacheResponse");async function Er(e,t,r,n,o){let i=r.headers.get("x-void-page-data"),a=i?bt(i):mr(await r.clone().text());a&&await e.put(t,_s(a,n,o))}s(Er,"populateJsonEdgeCache");async function Gn(e,t){await Promise.all([hr(e,t.projectId,t.deploymentId,t.host,t.pathname,t.originalUrl),ee.delete(t.htmlKey),ee.delete(t.jsonKey)])}s(Gn,"deleteSharedIsrEntry");async function _r(e){let t={response:e.response,pathname:e.pathname,originalUrlVariant:e.originalUrlVariant,applied:!1};if(e.response.status!==404||!e.routing.fallbackRules?.length||e.routing.type==="void"&&e.response.headers.get("X-Void-No-Match")!=="1")return t;let r=oe(e.pathname,e.routing.fallbackRules,e.url.hostname);if(r?.type!=="rewrite")return t;let n=e.originalUrlHeader??e.originalRequestUrl,o=e.originalUrlVariant??Ce(e.originalRequestUrl,e.pathname,e.routing.queryAllowlist),i=new URL(e.url.toString());i.pathname=r.destination;let a=De(e.dispatchReq,i.toString(),l=>l.set("X-Void-Original-URL",n));return{response:e.deadline===void 0?await e.worker.fetch(a):await he(e.worker.fetch(a),B(e.deadline.startedAt,e.deadline.timeoutMs,"dispatch"),"dispatch"),pathname:r.destination,originalUrlVariant:o,applied:!0}}s(_r,"applyWorkerFallbackRules");function Is(e,t,r,n,o){if(o)return o;let i=Ce(e,t,n.queryAllowlist);return(n.fallbackRules?.length?oe(t,n.fallbackRules,r):void 0)?.type==="rewrite"||new URL(i).search?i:void 0}s(Is,"buildFallbackOriginalUrlVariant");function Sr(e,t,r){let n=oe(e,t.fallbackRules,r);return n?.type==="rewrite"?n.destination:void 0}s(Sr,"resolveCachedWfpFallbackPathname");var Ps="Assets have not yet been deployed to this script";function Ts(e){if(e.status!==200||!e.headers.get("content-type")?.toLowerCase()?.startsWith("text/plain"))return!1;let r=e.headers.get("content-length");if(!r)return!1;let n=Number.parseInt(r,10);return n>0&&n<200}s(Ts,"isLikelyCfAssetStub");function B(e,t,r="static-asset"){if(!(t>0&&Number.isFinite(t)))return t;let n=t-(Date.now()-e);if(n<=0)throw new M(r);return n}s(B,"remainingTimeoutBudget");function to(e){return e>0&&Number.isFinite(e)?Math.min(eo,e/2):0}s(to,"staticAssetHedgeDelayMs");async function Xe(e,t,r,n){let o=to(n);try{let i=await br(()=>e.ROUTING.get(`manifest:${t}`,{cacheTtl:86400}),{delayMs:o,timeoutMs:n,label:"static-asset",onHedge:s(()=>{console.warn(JSON.stringify({event:"wfp-asset-manifest-read-hedge",projectId:r,deploymentId:t,delayMs:o,ts:Date.now()}))},"onHedge")});return i?JSON.parse(i):null}catch(i){throw console.error(JSON.stringify({event:i instanceof M?"wfp-asset-manifest-timeout":"wfp-asset-manifest-read-error",projectId:r,deploymentId:t,error:i instanceof M?void 0:i instanceof Error?i.message:String(i),ts:Date.now()})),i instanceof M?i:new re(i)}}s(Xe,"fetchAssetManifest");async function Cs(e,t,r,n=1e4,o){if(!t.assetManifestId)return null;let i=Date.now(),a=await Xe(e,t.assetManifestId,t.projectId,B(i,n));if(!a)return null;let l=t.assetConfig??{not_found_handling:"none"},u=r,d=fe(r,a,l);if((!d||d.notFound)&&o&&o!==r){let f=fe(o,a,l);f&&!f.notFound&&(d=f,u=o)}if(!d)return null;if(d.redirect)return{response:new Response(null,{status:308,headers:{Location:d.redirect}}),pathname:u};let p=await St(e,d.hash,d.path,t.projectId,t.assetManifestId,B(i,n));return p?{response:new Response(p.body,{status:d.notFound?404:200,headers:p.headers}),pathname:u}:null}s(Cs,"serveWfpAssetFallback");function vs(e,t,r){console.log(JSON.stringify({event:"wfp-asset-fallback",projectId:e.projectId,deploymentId:e.assetManifestId,pathname:t,userAgent:r,ts:Date.now()}))}s(vs,"logWfpAssetFallback");async function te(e){let t=e.deadline?.startedAt??Date.now(),r=e.deadline?.timeoutMs??e.timeoutMs??1e4;if(j(e.response))return{response:e.response,pathname:e.pathname};if(!Ts(e.response))return{response:e.response,pathname:e.pathname};let n=!1,o;try{if(!(await he(e.response.clone().text(),B(t,r),"static-asset")).includes(Ps))return{response:e.response,pathname:e.pathname};n=!0,o=await Cs(e.env,e.routing,e.pathname,B(t,r),e.fallbackPathname)}catch(i){if(i instanceof M)return n?{response:Qe(ce),failureKind:ce,pathname:e.pathname}:{response:_t(503,"dispatch"),pathname:e.pathname};if(i instanceof re)return{response:Qe(de),failureKind:de,pathname:e.pathname};throw i}return o?(vs(e.routing,o.pathname,e.userAgent),o):(console.error(JSON.stringify({event:"wfp-asset-fallback-missing",projectId:e.routing.projectId,deploymentId:e.routing.assetManifestId,pathname:e.pathname,ts:Date.now()})),{response:Qe(ye),failureKind:ye,pathname:e.pathname})}s(te,"maybeServeWfpAssetFallback");function De(e,t,r){let n=new Headers(e.headers);r(n);let o=e.cf;return e.bodyUsed||e.body?.locked?(n.delete("content-length"),n.delete("transfer-encoding"),new Request(t,{method:e.method,headers:n,cf:o})):e.method==="GET"||e.method==="HEAD"?new Request(t,{method:e.method,headers:n,cf:o}):new Request(t,{method:e.method,headers:n,body:e.body,cf:o,duplex:"half"})}s(De,"rebuildRequest");var ro={async fetch(e,t,r,n=!1){t=await Kr(t);let o=new URL(e.url);if(!t.PLATFORM_INSTALLATION_ID&&o.pathname==="/health"&&e.headers.get("X-Health-Check")==="void-admin")return Response.json({ok:!0});if(t.PLATFORM_HEALTH_PROBE_TOKEN&&o.pathname==="/health"&&e.headers.get("X-Void-Platform-Probe")===t.PLATFORM_HEALTH_PROBE_TOKEN)return Response.json({ok:!0,...t.PLATFORM_APPLICATION?{installationId:t.PLATFORM_INSTALLATION_ID}:{}});if(o.hostname.startsWith(`${$t}.`)&&o.hostname===Wr(be(t))&&Es(e,o))return W(e,404,"Not Found",{"Cache-Control":"no-store"});if(t.PLATFORM_TRAFFIC_STATE==="staging"||t.PLATFORM_TRAFFIC_STATE==="sandbox-drain"||t.PLATFORM_INSTALLATION_ID&&await t.ROUTING.get(yr)===wr)return bn(e);let i=Date.now(),a=Rr(t.DISPATCH_TIMEOUT_MS),l=Rr(t.DISPATCH_TIMEOUT_MS,0);if(o.pathname.startsWith("/__void/")||o.pathname==="/__scheduled"||o.pathname==="/__queue")return W(e,404,"Not Found");let u=await zn(o.hostname,t),d=u.slug;if(u.workersDev&&!u.projectId)return W(e,404,"Not Found");let p=d??`domain:${o.hostname}`,f=await t.ROUTING.get(n?"preview:"+p:p,{cacheTtl:60}),g=n;if(!f&&!n&&d?.startsWith("preview-")&&(f=await t.ROUTING.get("preview:"+p,{cacheTtl:60}),g=!0),!f)return W(e,404,"Not Found",{"Cache-Control":"public, max-age=30"});let c=JSON.parse(f);if(!n&&(c.privatePreview||g)){if(!c.privatePreview||!t.PREVIEW_API)return W(e,404,"Not Found",{"Cache-Control":"no-store"});let y=new Headers(e.headers);return y.set("X-Void-Preview-URL",e.url),y.delete("Authorization"),t.PREVIEW_API.fetch(new Request("https://preview.invalid/oauth/preview-serve/"+c.projectId,{method:e.method,headers:y,body:e.body,redirect:"manual"}))}if(!!c.privatePreview!==n)return W(e,404,"Not Found",{"Cache-Control":"no-store"});if(u.projectId&&u.projectId!==c.projectId)return W(e,404,"Not Found");if(c.zeroTrust&&!await wn.verify(o.hostname,e.headers.get("Cf-Access-Jwt-Assertion"),c.zeroTrust))return W(e,403,"Cloudflare Access authentication required",{"Cache-Control":"no-store"});let w=s(y=>Nn(e,{code:"usage_limit",resource:y,reason:y==="requests"?"monthly_quota":"cpu",message:y==="requests"?"This app has reached its usage allowance. Please contact the app owner or try again later.":"This request exceeded its execution limit. Please try again."},async()=>{let k=c.staticDeploymentId??c.assetManifestId;if(!k)return null;let x=y==="requests"?"/usage-limit.html":"/execution-limit.html",A=(await Xe(t,k,c.projectId,2e3))?.[x];return A?St(t,A,x,c.projectId,k,2e3):null}),"limitResponse");if(c.suspended==="requests_exceeded")return w("requests");if(c.suspended)return Response.json({error:"usage limit exceeded",reason:c.suspended},{status:429,headers:{"Cache-Control":"public, s-maxage=30, max-age=0"}});e.headers.has("X-Void-Original-URL")&&(e=De(e,e.url,y=>y.delete("X-Void-Original-URL")));let m=o.pathname,C,I=e.headers.get("upgrade")?.toLowerCase()==="websocket"?"websocket":"static",h=s((y,k)=>{let x=j(y)?0:Number(y.headers.get("content-length")??0);Vn(t,{projectId:c.projectId,type:I,method:e.method,status:y.status,responseBytes:x,durationMs:Date.now()-i,slug:d??o.hostname,...k&&{failureKind:k}}),c.userId&&r.waitUntil(jn(t,{projectId:c.projectId,userId:c.userId,slug:d??o.hostname,requests:1,responseBytes:x,...y.status>=500&&{status:y.status},...k&&{failureKind:k}}));let L=new Response(y.body,y);return L.headers.delete("X-Void-No-Match"),L.headers.delete(Te),L.headers.set("X-Hosted-By","void.cloud"),L},"meter"),R=s(y=>h(Qe(y),y),"meterStaticAssetFailure"),V=s(()=>(Kn(t,{workerName:c.workerName,method:e.method,url:e.url,status:503,timeoutMs:l}),h(_t(503,"dispatch"))),"meterWorkerTimeout"),H,E;if(c.redirectRules?.length){let y=oe(m,c.redirectRules,o.hostname);if(y?.type==="redirect"){let k=Ue(y.destination,o.search);return h(new Response(null,{status:y.status,headers:{Location:k}}))}y?.type==="rewrite"&&(E=e.url,H=Ce(e.url,m,c.queryAllowlist),m=y.destination,o.pathname=m)}let U=e;if(E&&(U=De(e,o.toString(),y=>y.set("X-Void-Original-URL",E))),c.hashedAssetsPrefix&&Pr(e)){let y="/"+c.hashedAssetsPrefix+"/";if(m.startsWith(y)){let k=new URL(o.toString());k.search="",k.searchParams.set("_p",c.projectId);let x=new Request(k.toString()),L=["cache-control","content-type","content-encoding","content-length","content-range","accept-ranges","transfer-encoding"],A=s((_,v)=>{let D=Y(_,m,c.headerRules);if(D!==_)for(let P of L){let $=_.headers.get(P);$===null?D.headers.delete(P):D.headers.set(P,$)}return h(D,v)},"finalizeAsset"),b=ee,N=await b.match(x);if(N?.headers.get("Cache-Control")?.includes("immutable")&&Zn(N)){if(!c.staticDeploymentId){let _=await te({env:t,routing:c,pathname:m,response:N,userAgent:e.headers.get("user-agent"),timeoutMs:a});if(_.response!==N){if(ge(_.response)){let v=new Response(_.response.body,_.response);v.headers.set("Cache-Control","public, max-age=31536000, immutable"),G(v.headers);let D=v.clone();return r.waitUntil(b.delete(x).then(()=>b.put(x,D))),A(v,_.failureKind)}return r.waitUntil(b.delete(x)),A(_.response,_.failureKind)}}return A(N)}if(N&&await b.delete(x),c.staticDeploymentId){let _=Date.now(),v;try{v=await Xe(t,c.staticDeploymentId,c.projectId,B(_,a))}catch(S){if(S instanceof M)return R(ce);if(S instanceof re)return R(de);throw S}if(!v)return R(ye);let D=m,P=v[m];if(!P){let S=Ae(m);S!==m&&v[S]&&(D=S,P=v[S])}let $;if(P)try{let S=await St(t,P,D,c.projectId,c.staticDeploymentId,B(_,a));if(!S)return Yn(c,D,P),R(ye);$=S}catch(S){if(S instanceof M)return R(ce);if(S instanceof re)return R(de);throw S}else $=W(e,404,"Not Found");if(ge($)){let S=new Response($.body,$);return S.headers.set("Cache-Control","public, max-age=31536000, immutable"),G(S.headers),r.waitUntil(b.put(x,S.clone())),A(S)}return A($)}try{let _=Et(t,c),v=Date.now(),D=await he(_.fetch(U),B(v,a),"static-asset"),P=await te({env:t,routing:c,pathname:m,response:D,userAgent:e.headers.get("user-agent"),deadline:{startedAt:v,timeoutMs:a}});D=P.response;let $=P.failureKind;if(ge(D)){let S=new Response(D.body,D);return S.headers.set("Cache-Control","public, max-age=31536000, immutable"),G(S.headers),r.waitUntil(b.put(x,S.clone())),A(S,$)}return A(D,$)}catch(_){if(_ instanceof M)return R(ce);if(_ instanceof Error&&_.message.includes("Worker exceeded"))return h(await w("execution"));throw _}}}if(c.ssr===!0&&(c.type!=="framework"||At(e))&&Ds(m,c.pages,c.revalidate,c.pathRevalidate)&&(c.revalidate||c.pages?.length)){let y=qe(c.pages,c.revalidate,c.pathRevalidate,m);if(y>0&&e.method==="GET"&&!e.headers.has("Range")&&!Ge(e)){let k=e.headers.has("X-VoidPages"),x=c.version??"legacy",L=ee,A=Is(e.url,m,o.hostname,c,H),b=cr(e.url,new URL(e.url).pathname,c.queryAllowlist),N=Ln(e,m,x,A),_=gr(e,m,x,A);if(C={projectId:c.projectId,deploymentId:x,host:o.hostname,pathname:m,originalUrl:A,htmlKey:N,jsonKey:_},k){let v=await L.match(_);if(v&&Be(v))return I="isr",h(Q(v));v&&await L.delete(_)}else{let v=s(async()=>{await Gn(t,C)},"purgePoisonedIsrEntry"),D=await L.match(N);if(D&&Be(D)){I="isr";let O=await te({env:t,routing:c,pathname:m,response:D,userAgent:e.headers.get("user-agent"),timeoutMs:a,fallbackPathname:Sr(m,c,o.hostname)});return O.response!==D?(r.waitUntil(v()),h(O.response.ok?Q(O.response):O.response,O.failureKind)):h(Q(D))}D&&await L.delete(N);let P=await kn(t,c.projectId,x,o.hostname,m,A);if(P){let O=ur(P),z=pr(P,O),ue=await te({env:t,routing:c,pathname:m,response:z,userAgent:e.headers.get("user-agent"),timeoutMs:a,fallbackPathname:Sr(m,c,o.hostname)});if(ue.response!==z)return r.waitUntil(v()),I="isr",h(ue.response.ok?Q(ue.response):ue.response,ue.failureKind);if(O){let Le=z.clone(),rt=U;if(b){let nt=new URL(U.url);nt.search=A?new URL(A).search:"",rt=De(U,nt.toString(),oo=>{E&&A&&oo.set("X-Void-Original-URL",A)})}r.waitUntil(xs(t,c,rt,o.hostname,m,y,N,_,P.createdAt+P.ttl*1e3,A,a).then(async nt=>{nt||await L.put(N,Le)}))}return I="isr",O||r.waitUntil(L.put(N,z.clone())),h(Q(z))}I="isr";let $=Et(t,c),S=Date.now(),J=t.DISPATCH_TIMEOUT_MS===void 0?void 0:{startedAt:S,timeoutMs:l},T;try{T=await he($.fetch(U),B(S,l,"dispatch"),"dispatch")}catch(O){if(O instanceof M)return V();throw O}let ne=j(T),tt,Pt=m,Tt=!1;if(!ne){let O=await te({env:t,routing:c,pathname:m,response:T,userAgent:e.headers.get("user-agent"),deadline:J});T=O.response,tt=O.failureKind,ne=j(T)}if(!ne){let O;try{O=await _r({response:T,worker:$,dispatchReq:U,routing:c,pathname:m,url:o,originalRequestUrl:e.url,originalUrlHeader:E,originalUrlVariant:A,deadline:J})}catch(z){if(z instanceof M)return V();throw z}if(O.applied&&(Tt=!0,Pt=O.pathname,T=O.response,ne=j(T),!ne)){let z=await te({env:t,routing:c,pathname:O.pathname,response:T,userAgent:e.headers.get("user-agent"),deadline:J});T=z.response,tt=z.failureKind,ne=j(T)}}if(ne)return h(T);let Oe=ve(T,y);if(!b&&Oe>0&&T.status===200&&(c.type!=="framework"||we(T))&&!Z(Pt)&&!ae(T)&&(!Tt||Ir(c.pages,Pt,T,c.pathRevalidate))){r.waitUntil(Rt(t,c.projectId,x,o.hostname,m,T,Oe,A)),r.waitUntil(Er(L,_,T,Oe,"HIT"));let O=new Headers(T.headers);O.set("Cache-Control",`public, s-maxage=${Oe}, max-age=0, must-revalidate`),O.set("x-isr-cache","MISS"),G(O),O.delete("x-void-page-data"),O.delete("set-cookie");let z=new Headers(O);z.set("x-isr-cache","HIT");let ue=new Response(T.clone().body,{status:T.status,headers:z});r.waitUntil(L.put(N,ue.clone()));let Le=new Headers(O);Le.set("Cache-Control",bs),Le.delete(Te);let rt=new Response(T.body,{status:T.status,headers:Le});return h(rt,tt)}return T.status===200&&!Tt&&(Oe===0||ae(T)||c.type==="framework"&&!we(T))&&r.waitUntil(v()),h(T,tt)}}}let Ze=m,It=Os(e,Ze,c)?await Ls(t,Ze,c,a):void 0,no=It===!0,et;if(no){let y=new URL(Ce(e.url,new URL(e.url).pathname,lr(c.queryAllowlist)));y.searchParams.set("_v",String(c.version));let k=new Request(y.toString());et=k;let x=ee,L=await x.match(k);if(L&&Zn(L)){if(I="static",!c.staticDeploymentId){let A=await te({env:t,routing:c,pathname:m,response:L,userAgent:e.headers.get("user-agent"),timeoutMs:a,fallbackPathname:Sr(m,c,o.hostname)});if(A.response!==L){if(ge(A.response)){let b=Y(A.response,A.pathname,c.headerRules),N=new Response(b.clone().body,b);N.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),G(N.headers);let _=N.clone();return r.waitUntil(x.delete(k).then(()=>x.put(k,_))),h(Q(b))}return r.waitUntil(x.delete(k)),h(A.response,A.failureKind)}}return h(Q(L))}L&&await x.delete(k)}if(c.staticDeploymentId){let y=Date.now(),k;try{k=await Xe(t,c.staticDeploymentId,c.projectId,B(y,a))}catch(P){if(P instanceof M)return R(ce);if(P instanceof re)return R(de);throw P}if(!k)return R(ye);let x=c.assetConfig??{},L=m,A=fe(m,k,x);if((!A||A.notFound)&&c.fallbackRules?.length){let P=oe(m,c.fallbackRules,o.hostname);P?.type==="rewrite"&&(m=P.destination,o.pathname=m,A=fe(m,k,x))}if(!A)return h(W(e,404,"Not Found"));if(A.redirect)return h(new Response(null,{status:308,headers:{Location:A.redirect}}));let b;try{b=await St(t,A.hash,A.path,c.projectId,c.staticDeploymentId,B(y,a))}catch(P){if(P instanceof M)return h(_t(A.notFound?404:503,"static-asset"),A.notFound?void 0:ce);if(P instanceof re)return h(A.notFound?W(e,404,"Not Found"):Qe(de),A.notFound?void 0:de);throw P}if(!b)return A.notFound?h(W(e,404,"Not Found")):(Yn(c,A.path,A.hash),R(ye));let N=A.notFound?404:200,_=new Response(b.body,{status:N,headers:b.headers}),v=Y(_,m,c.headerRules),D=et??(Pr(e)?new Request(`${o.origin}${L}?_v=${c.staticDeploymentId}`):void 0);if(D&&ge(v)){let P=new Response(v.clone().body,v);P.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),G(P.headers),r.waitUntil(ee.put(D,P.clone()))}return h(Q(v))}let Tr=Et(t,c);try{let y=U;y.bodyUsed&&(y=De(y,y.url,()=>{}));let x=y.method!=="GET"&&y.method!=="HEAD"&&c.fallbackRules?.length?y.clone():y,L=Date.now(),A=t.DISPATCH_TIMEOUT_MS===void 0?void 0:{startedAt:L,timeoutMs:l},b=await he(Tr.fetch(y),B(L,l,"dispatch"),"dispatch"),N=j(b),_;if(!N){let S=await te({env:t,routing:c,pathname:m,response:b,userAgent:e.headers.get("user-agent"),deadline:A});b=S.response,_=S.failureKind,N=j(b)}let v=!1;if(!N){let S=await _r({response:b,worker:Tr,dispatchReq:x,routing:c,pathname:m,url:o,originalRequestUrl:e.url,originalUrlHeader:E,originalUrlVariant:H,deadline:A});if(S.applied&&(v=!0,m=S.pathname,o.pathname=m,H=S.originalUrlVariant,b=S.response,N=j(b),!N)){let J=await te({env:t,routing:c,pathname:m,response:b,userAgent:e.headers.get("user-agent"),deadline:A});b=J.response,_=J.failureKind,N=j(b)}}if(C&&b.status===200&&!v&&(ve(b,qe(c.pages,c.revalidate,c.pathRevalidate,C.pathname))===0||ae(b)||c.type==="framework"&&!we(b))&&r.waitUntil(Gn(t,C)),et&&!v&&ge(b)){let S=new Response(b.body,b);S.headers.delete("x-void-page-data");let J=Y(S,m,c.headerRules),T=new Response(J.clone().body,J);return T.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),G(T.headers),r.waitUntil(ee.put(et,T.clone())),h(Q(J),_)}let D=m===Ze?It:void 0,P=!_&&Xn(c,D)&&(D===!1||b.status>=500),$=nr(m,c.ssr,P);if($&&(I=$),(c.revalidate||c.pages?.length)&&!N&&!e.headers.has("X-VoidPages")&&e.method==="GET"&&!e.headers.has("Range")&&(c.type!=="framework"||At(e))&&!Ge(e)){let S=qe(c.pages,c.revalidate,c.pathRevalidate,m),J=S>0?ve(b,S):0;if(J>0&&b.status===200&&c.ssr&&!Z(m)&&!We(m)&&(c.type!=="framework"||we(b))&&!ae(b)&&(!v||Ir(c.pages,m,b,c.pathRevalidate))){let T=c.version??"legacy";r.waitUntil(Rt(t,c.projectId,T,o.hostname,m,b,J,H));let ne=gr(e,m,T,H);r.waitUntil(Er(ee,ne,b,J,"HIT"))}}if(b.headers.has("x-void-page-data")){let S=new Response(b.body,b);return S.headers.delete("x-void-page-data"),h(Y(S,m,c.headerRules),_)}return h(Y(b,m,c.headerRules),_)}catch(y){if(y instanceof M){if(y.label==="static-asset")return R(ce);let k=nr(m,c.ssr,Xn(c,m===Ze?It:void 0));return k&&(I=k),V()}if(y instanceof re)return R(de);if(y instanceof Error&&y.message.includes("Worker exceeded"))return h(await w("execution"));throw y}},async queue(e,t){if(t.PLATFORM_TRAFFIC_STATE==="staging"||t.PLATFORM_TRAFFIC_STATE==="sandbox-drain"){console.warn(`[queue-relay] platform traffic is staging; retrying queue="${e.queue}" in ${xe}s`),e.retryAll({delaySeconds:xe});return}if(t.PLATFORM_INSTALLATION_ID){let d;try{d=await t.ROUTING.get(yr)}catch(p){let f=p instanceof Error?p.message:String(p);console.error(`[queue-relay] platform traffic gate read failed; retrying queue="${e.queue}" in ${xe}s error=${JSON.stringify(f)}`),e.retryAll({delaySeconds:xe});return}if(d===wr){console.warn(`[queue-relay] platform traffic is disabled; retrying queue="${e.queue}" in ${xe}s`),e.retryAll({delaySeconds:xe});return}}let r=await t.ROUTING.get(`queue:${e.queue}`,{cacheTtl:60});if(!r){console.error(`[queue-relay] missing routing entry for queue="${e.queue}"; retrying all messages`),e.retryAll();return}let{workerName:n,projectId:o,queueName:i,proxyToken:a}=JSON.parse(r);if(o&&await As(t,o)){console.warn(`[queue-relay] project suspended; retrying queue="${e.queue}" in ${Bn}s`),e.retryAll({delaySeconds:Bn});return}let l=Array.from(e.messages,d=>({id:d.id,timestamp:d.timestamp.toISOString(),body:d.body,attempts:d.attempts})),u=t.DISPATCH.get(n);try{let d=JSON.stringify({queue:i,messages:l}),p={"Content-Type":"application/json"};a&&(p["x-void-internal"]=a);let f=await u.fetch(new Request("https://internal/__void/queue",{method:"POST",headers:p,body:d}));if(f.status===404&&(f=await u.fetch(new Request("https://internal/__queue",{method:"POST",headers:p,body:d}))),!f.ok){let w="";try{w=(await f.clone().text()).slice(0,200)}catch{}console.error(`[queue-relay] relay failed queue="${i}" worker="${n}" status=${f.status} body=${JSON.stringify(w)}`),f.status===401||f.status===403?e.retryAll({delaySeconds:Rs}):e.retryAll();return}let g;try{g=await f.json()}catch{e.ackAll();return}if(!g.decisions){g.ok!==!1?e.ackAll():e.retryAll();return}let c=new Map(e.messages.map(w=>[w.id,w]));for(let[w,m]of Object.entries(g.decisions)){let C=c.get(w);C&&(m.action==="ack"?C.ack():m.action==="retry"&&C.retry(m.delaySeconds!=null?{delaySeconds:m.delaySeconds}:void 0))}g.ok===!1&&e.retryAll()}catch(d){let p=d instanceof Error?d.message:String(d);console.error(`[queue-relay] relay threw queue="${i}" worker="${n}" error=${JSON.stringify(p)}`),e.retryAll()}}},Vl=ro,qn=class extends ws{static{s(this,"PreviewDispatcher")}fetch(t){return ro.fetch(t,this.env,this.ctx,!0)}},re=class extends Error{static{s(this,"StaticAssetReadError")}constructor(t){super("Static asset storage read failed",{cause:t}),this.name="StaticAssetReadError"}};function Yn(e,t,r){console.error(JSON.stringify({event:"static-asset-missing",store:r.startsWith("!")?"r2":"kv",projectId:e.projectId,deploymentId:e.staticDeploymentId??e.assetManifestId,pathname:t,ts:Date.now()}))}s(Yn,"logStaticAssetMissing");async function St(e,t,r,n,o,i=1e4){let a=to(i),l=Date.now(),u=!1;try{let d=await br(()=>ks(e,t,r,n),{delayMs:a,timeoutMs:i,label:"static-asset",discard:s(async p=>{await p.body?.cancel()},"discard"),onHedge:s(()=>{u=!0,console.warn(JSON.stringify({event:"static-asset-read-hedge",store:t.startsWith("!")?"r2":"kv",projectId:n,deploymentId:o,pathname:r,delayMs:a,ts:Date.now()}))},"onHedge")});return u&&console.warn(JSON.stringify({event:"static-asset-read-hedge-result",store:t.startsWith("!")?"r2":"kv",projectId:n,deploymentId:o,pathname:r,outcome:d===null?"miss":"hit",elapsedMs:Date.now()-l,ts:Date.now()})),d}catch(d){throw console.error(JSON.stringify({event:d instanceof M?"static-asset-timeout":"static-asset-read-error",store:t.startsWith("!")?"r2":"kv",projectId:n,deploymentId:o,pathname:r,hedged:u,elapsedMs:Date.now()-l,error:d instanceof M?void 0:d instanceof Error?d.message:String(d),ts:Date.now()})),d instanceof M?d:new re(d)}}s(St,"fetchStaticAsset");async function ks(e,t,r,n){let o=t.startsWith("!"),i=o?t.slice(1):t,a=n?`assets/${n}/${i}`:null,l=`assets/${i}`;if(o){let d=a?await e.STATIC_ASSETS_R2.get(a)??await e.STATIC_ASSETS_R2.get(l):await e.STATIC_ASSETS_R2.get(l);if(!d)return null;let p=Me(d.httpMetadata?.contentType,r),f={ETag:d.httpEtag,...d.size?{"Content-Length":String(d.size)}:{}};return p&&(f["Content-Type"]=p),new Response(d.body,{headers:f})}let u=s(async d=>{let{value:p,metadata:f}=await e.STATIC_ASSETS.getWithMetadata(d,{type:"arrayBuffer",cacheTtl:86400});if(!p)return null;let g=Me(f?.ct,r),c={"Content-Length":String(p.byteLength)};return g&&(c["Content-Type"]=g),new Response(p,{headers:c})},"readKvAsset");return(a?await u(a):null)??u(l)}s(ks,"fetchStaticAssetOnce");function Et(e,t){return t.limits?e.DISPATCH.get(t.workerName,{},{limits:t.limits}):e.DISPATCH.get(t.workerName)}s(Et,"getWorker");async function xs(e,t,r,n,o,i,a,l,u,d,p=1e4){try{let f=Et(e,t),g=Date.now(),c=De(r,r.url,E=>E.delete("X-VoidPages")),w=await he(f.fetch(c),B(g,p,"dispatch"),"dispatch");if(j(w))return!1;let m=w.status,C=await _r({response:w,worker:f,dispatchReq:c,routing:t,pathname:o,url:new URL(c.url),originalRequestUrl:r.url,originalUrlHeader:r.headers.get("X-Void-Original-URL")??void 0,originalUrlVariant:d??void 0,deadline:{startedAt:g,timeoutMs:p}});if(w=C.response,j(w)||(w=(await te({env:e,routing:t,pathname:C.pathname,response:w,userAgent:r.headers.get("user-agent"),deadline:{startedAt:g,timeoutMs:p}})).response,j(w)))return!1;let h=ve(w,i),R=ee,V=s(async()=>{await hr(e,t.projectId,t.version??"legacy",n,o,d),await R.delete(a),await R.delete(l)},"evictSharedEntry"),H=C.applied?C.pathname:o;if(h>0&&w.status===200&&(t.type!=="framework"||we(w))&&!Z(H)&&!ae(w)&&(!C.applied||Ir(t.pages,H,w,t.pathRevalidate))){await Rt(e,t.projectId,t.version??"legacy",n,o,w,h,d);let E=new Headers(w.headers);return E.set("x-isr-cache","HIT"),E.set("Cache-Control",`public, s-maxage=${h}, max-age=0, must-revalidate`),G(E),E.delete("set-cookie"),E.delete("x-void-page-data"),await R.put(a,new Response(w.clone().body,{status:w.status,headers:E})),await Er(R,l,w,h,"HIT"),!0}else if(w.status===200&&!Z(H)&&!C.applied&&(h===0||ae(w)||t.type==="framework"&&!we(w))){try{await V()}catch(E){console.error("ISR privacy eviction failed:",E)}return!0}else if((m===404||m===410)&&Date.now()-u>Ss*1e3){try{await V()}catch(E){console.error("ISR stale-entry eviction failed:",E)}return!0}return!1}catch(f){return console.error("ISR revalidation failed:",f),!1}}s(xs,"revalidateInBackground");function Ds(e,t,r,n){return Z(e)?!1:We(e)?On(t,r,n,e):!0}s(Ds,"isIsrEligiblePath");function Ir(e,t,r,n){return we(r)&&Dn(e,t,n)}s(Ir,"isFallbackTargetCacheable");function Pr(e){return e.method==="GET"&&!e.headers.has("Range")&&!e.headers.has("X-VoidPages")&&!Ge(e)}s(Pr,"isSharedStaticCacheRequestEligible");function Os(e,t,r){return!!(Pr(e)&&r.version&&!Z(t)&&(We(t)||!r.ssr))}s(Os,"isStaticCacheRequestEligible");async function Ls(e,t,r,n){if(r.staticDeploymentId||!r.ssr)return!0;if(r.assetManifestId)try{let o=await Xe(e,r.assetManifestId,r.projectId,Math.min(n,eo));if(!o)return;if(Object.hasOwn(o,t))return!0;let i=Ae(t);return i!==t&&Object.hasOwn(o,i)?!0:(r.assetConfig?.html_handling??"auto-trailing-slash")!=="none"&&(Qn(o,t)||Qn(o,i))?void 0:!1}catch{return}}s(Ls,"isKnownStaticAssetPath");function Qn(e,t){let r=[`${t}.html`,`${t}/index.html`];if(t.endsWith(".html")){let n=t.slice(0,-5);r.push(`${n}/index.html`),n.endsWith("/index")&&r.push(`${n.slice(0,-6)}.html`)}return r.some(n=>Object.hasOwn(e,n))}s(Qn,"hasHtmlHandlingSource");function Xn(e,t){if(!e.assetManifestId)return!0;let r=e.assetConfig?.run_worker_first;return r===!0||Array.isArray(r)&&r.includes("/**")?!0:t===!1&&(e.assetConfig?.not_found_handling??"none")==="none"}s(Xn,"workerAnsweredPath");function ge(e){return e.status===200&&!j(e)&&!ae(e)}s(ge,"isStaticCacheResponseEligible");function Zn(e){return Be(e)&&ge(e)}s(Zn,"isCurrentStaticCacheResponse");export{qn as PreviewDispatcher,Vl as default,we as isHtmlResponse,De as rebuildRequest};
65
+ </html>`}s(bn,"renderDefaultErrorPage");function Rn(e){let t=new Headers({"Cache-Control":"no-store","Retry-After":"30"});return At(e)?(t.set("Content-Type","text/html; charset=utf-8"),new Response(e.method==="HEAD"?null:bn(503,"Temporarily unavailable",!0),{status:503,headers:t})):new Response(e.method==="HEAD"?null:"Platform disabled",{status:503,headers:t})}s(Rn,"createMaintenanceResponse");function At(e){if(e.method!=="GET"&&e.method!=="HEAD")return!1;let t=new URL(e.url);if(Z(t.pathname)||/\/[^/]+\.[^/]+$/.test(t.pathname))return!1;let r=e.headers.get("sec-fetch-dest");if(r&&r!=="document"&&r!=="empty")return!1;let n=e.headers.get("accept");return!n||n.includes("text/html")||n.includes("*/*")}s(At,"shouldServeHtmlErrorPage");function j(e,t,r,n){if(!At(e))return new Response(r,{status:t,headers:n});let o=new Headers(n);return o.set("content-type","text/html; charset=utf-8"),new Response(e.method==="HEAD"?null:bn(t,r),{status:t,headers:o})}s(j,"createErrorResponse");function ar(e){let t=e;return t==="/"?t="__index__":(t=t.startsWith("/")?t.slice(1):t,t.endsWith("/")&&(t=t.slice(0,-1))),t}s(ar,"normalizeIsrPath");function rs(e){return e==="__index__"?"/":`/${e}`}s(rs,"denormalizeIsrPath");function ns(e){return rs(ar(e))}s(ns,"canonicalIsrPathname");function os(e,t,r){return r!==void 0?`${e}/isr/${t}/${r}/`:`${e}/isr/`}s(os,"versionedIsrCachePrefix");function En(e,t){return os(e,"v3",t)}s(En,"isrCachePrefix");var _n="#rw=";function ze(e,t,r,n,o){let i=`${En(e,t)}${r}/${ar(n)}`;return o?`${i}${_n}${Pn(o)}`:i}s(ze,"isrCacheKey");function In(e,t,r,n){return`${En(e,t)}${r}/${ar(n)}${_n}`}s(In,"isrCacheVariantPrefix");var ss=0xcbf29ce484222325n,is=0x100000001b3n,Sn=0xffffffffffffffffn;function Pn(e){let t=new TextEncoder().encode(e),r=ss;for(let n=0;n<t.length;n++)r=(r^BigInt(t[n]))&Sn,r=r*is&Sn;return r.toString(16).padStart(16,"0")}s(Pn,"hashOriginalUrl");function cr(e,t,r,n,o){return as(e,t,r,n,o?Pn(o):null)}s(cr,"isrEdgeCacheUrl");function as(e,t,r,n,o){let i=ns(t),a=new URL(`https://${e}${i}`);return n==="json"&&a.searchParams.set("__void","json"),a.searchParams.set("__void_isr",r),o&&a.searchParams.set("__void_orig",o),a.toString()}s(as,"buildIsrEdgeCacheUrl");var Te=3,Ce="x-void-shared-cache-policy";function G(e){e.set(Ce,String(Te))}s(G,"markSharedCachePolicy");function Ge(e){return e.headers.get(Ce)===String(Te)}s(Ge,"hasCurrentSharedCachePolicy");var cs=/<script\b[^>]*\bid=(["'])__VOID_PAGE_DATA__\1[^>]*>([\s\S]*?)<\/script>/i,ls=new Set(["cache-control","x-isr-cache","x-void-page-data","set-cookie"]);function ve(e,t,r){let n=new URL(e);if(!n.search)return n.toString();let o=Tn(r,t);if(o.size===0)return n.search="",n.toString();let i=[...new Set(n.searchParams.keys())].filter(u=>o.has(u)).sort(),a=new URLSearchParams;for(let u of i)for(let d of n.searchParams.getAll(u))a.append(u,d);let l=a.toString();return n.search=l?`?${l}`:"",n.toString()}s(ve,"buildVariantOriginalUrl");function lr(e,t,r){let n=new URL(e);if(!n.search)return!1;let o=Tn(r,t);for(let i of n.searchParams.keys())if(!o.has(i))return!0;return!1}s(lr,"hasUnlistedQueryParams");function dr(e){if(!e)return;let t=Object.fromEntries(Object.entries(e).filter(([r])=>!r.includes("*")));return Object.keys(t).length>0?t:void 0}s(dr,"exactQueryAllowlist");function Tn(e,t){if(!e)return new Set;for(let[r,n]of Object.entries(e))if(pe(r,t))return new Set(n);return new Set}s(Tn,"resolveQueryAllowlist");function ur(e,t){let r=new TextEncoder().encode(JSON.stringify(e)),n=new ArrayBuffer(4+r.byteLength+t.byteLength);return new DataView(n).setUint32(0,r.byteLength,!0),new Uint8Array(n,4,r.byteLength).set(r),new Uint8Array(n,4+r.byteLength).set(new Uint8Array(t)),n}s(ur,"packIsrValue");function Cn(e){if(e.byteLength<4)return null;let r=new DataView(e).getUint32(0,!0);if(e.byteLength<4+r)return null;try{let n=new Uint8Array(e,4,r),o=JSON.parse(new TextDecoder().decode(n));if(!o||typeof o!="object"||Array.isArray(o))return null;let i={};for(let[a,l]of Object.entries(o)){if(typeof l!="string")return null;i[a]=l}return{headers:i,body:e.slice(4+r)}}catch{return null}}s(Cn,"unpackIsrValue");function vn(e,t){if(!e||!t)return null;let r=Cn(e);if(!r||!Number.isInteger(t.s)||t.s<200||t.s>599||!Number.isFinite(t.c)||t.c<=0||!Number.isFinite(t.t)||t.t<=0||t.p!==Te)return null;try{new Headers(r.headers)}catch{return null}return{body:new ReadableStream({start(n){n.enqueue(new Uint8Array(r.body)),n.close()}}),status:t.s,headers:r.headers,createdAt:t.c,ttl:t.t}}s(vn,"decodeIsrCacheEntry");function pr(e,t=Date.now()){return t-e.createdAt>e.ttl*1e3}s(pr,"isStale");function fr(e,t,r=Date.now()){let n=new Headers(e.headers);if(n.set("x-isr-cache",t?"STALE":"HIT"),t)n.set("Cache-Control",`public, s-maxage=${Math.min(10,e.ttl)}, max-age=0, must-revalidate`);else{let o=Math.max(0,Math.floor((e.createdAt+e.ttl*1e3-r)/1e3));n.set("Cache-Control",`public, s-maxage=${o}, max-age=0, must-revalidate`)}return G(n),new Response(e.body,{status:e.status,headers:n})}s(fr,"isrCacheResponse");function ke(e,t){let r=e.headers.get("x-revalidate");if(r===null)return t;let n=Number.parseInt(r,10);return Number.isNaN(n)||n<0?t:n}s(ke,"resolveRevalidateTtl");function ds(e){return e.headers.get("Accept")?.toLowerCase().split(",").some(t=>t.split(";",1)[0]?.trim()==="text/event-stream")??!1}s(ds,"acceptsEventStream");function qe(e){return e.headers.has("Cookie")||e.headers.has("Authorization")||e.headers.has("Cf-Access-Jwt-Assertion")||ds(e)}s(qe,"shouldBypassIsr");function bt(e){if(e.method!=="GET"||e.headers.has("X-VoidPages")||new URL(e.url).pathname.startsWith("/__void/")||!e.headers.get("accept")?.split(",").some(o=>o.trim().toLowerCase().split(";",1)[0]==="text/html"))return!1;let r=e.headers.get("sec-fetch-mode")?.toLowerCase();if(r&&r!=="navigate")return!1;let n=e.headers.get("sec-fetch-dest")?.toLowerCase();return!(n&&n!=="document"||e.headers.has("rsc")||e.headers.has("x-nextjs-data"))}s(bt,"isFrameworkDocumentRequest");function ae(e){if(e.headers.get("Vary")?.split(",").some(r=>{let n=r.trim().toLowerCase();return n!==""&&n!=="x-voidpages"})||e.headers.has("Set-Cookie"))return!0;let t=e.headers.get("Cache-Control");return t?t.split(",").some(r=>{let n=r.split("=",1)[0]?.trim().toLowerCase();return n==="private"||n==="no-store"||n==="no-cache"}):!1}s(ae,"hasSharedCacheOptOut");function Be(e,t){if(e==null)return 0;if(typeof e=="number")return e;for(let[r,n]of Object.entries(e))if(q(r,t))return n;return 0}s(Be,"resolvePathTtl");function Ye(e,t,r,n){if(e){for(let o of e)if(q(o.pattern,n))return o.revalidate===void 0?Be(r,n):o.revalidate>0?o.revalidate:0}return Be(t,n)}s(Ye,"resolvePageTtl");function mr(e){let t={};return e.headers.forEach((r,n)=>{ls.has(n.toLowerCase())||(t[n]=r)}),t}s(mr,"serializeHeaders");function Rt(e){try{let t=JSON.parse(e);return t.deferred===void 0&&t.deferredKeys===void 0?e:null}catch{return null}}s(Rt,"normalizePageDataForJsonCache");function hr(e){let t=e.match(cs);return t?Rt(t[2]):null}s(hr,"extractPageDataFromHtml");var xe="isr-cache/";function Qe(e,t){return{async getWithMetadata(r){let n=await e.get(xe+r);return n?{value:await n.arrayBuffer(),metadata:JSON.parse(n.customMetadata?.isr??"null")}:{value:null,metadata:null}},async put(r,n,{metadata:o}){await e.put(xe+r,n,{customMetadata:{isr:JSON.stringify(o)}})},async delete(r){await e.delete(xe+r);try{await t?.delete(r)}catch(n){console.warn("[api] Legacy ISR KV cleanup failed.",n)}},async has(r){return await e.head(xe+r)!==null},async list({prefix:r,cursor:n,limit:o}){if(t&&n?.startsWith("kv:")){let a=await t.list({prefix:r,cursor:n.slice(3)||void 0,limit:o});return{keys:a.keys,list_complete:a.list_complete,cursor:a.list_complete?void 0:`kv:${a.cursor}`}}let i=await e.list({prefix:xe+r,cursor:n?.slice(3),limit:o});return{keys:i.objects.map(({key:a})=>({name:a.slice(xe.length)})),list_complete:!i.truncated&&!t,cursor:i.truncated?`r2:${i.cursor}`:t?"kv:":void 0}}}}s(Qe,"createIsrStore");async function xn(e,t,r,n,o,i){let a=ze(t,r,n,o,i);try{let{value:l,metadata:u}=await Qe(e.STATIC_ASSETS_R2).getWithMetadata(a);return vn(l,u)}catch{return null}}s(xn,"readIsrCache");async function gr(e,t,r,n,o,i){let a=ze(t,r,n,o,i);await Qe(e.STATIC_ASSETS_R2,e.ISR_CACHE).delete(a)}s(gr,"deleteIsrCache");async function St(e,t,r,n,o,i,a,l){let u=ze(t,r,n,o,l),d=i.clone(),p=mr(d),f=d.status;if(l&&!await us(e,t,r,n,o,u))return;let g=await d.arrayBuffer(),c=ur(p,g);await Qe(e.STATIC_ASSETS_R2).put(u,c,{metadata:{s:f,c:Date.now(),t:a,p:Te}})}s(St,"writeIsrCache");async function us(e,t,r,n,o,i){let a=In(t,r,n,o),l=Qe(e.STATIC_ASSETS_R2),u=0,d;do{let p=await l.list({prefix:a,cursor:d,limit:$t});if(p.keys.some(f=>f.name===i))return!0;if(u+=p.keys.length,u>=$t)return l.has(i);d=p.list_complete?void 0:p.cursor}while(d);return!0}s(us,"isVariantWriteAllowed");function Dn(e,t,r){return e.revalidate===void 0?Be(t,r):e.revalidate>0?e.revalidate:0}s(Dn,"matchedPageTtl");function ps(e){return!/[:{*]/.test(e)}s(ps,"isLiteralPattern");function On(e,t,r){if(!e)return!1;for(let n of e)if(q(n.pattern,t))return ps(n.pattern)&&Dn(n,r,t)>0;return!1}s(On,"matchesLiteralPage");function kn(e){return e.includes("*")||e.includes("{.+}")}s(kn,"isBroadCatchAll");function Ln(e,t,r,n){if(e&&e.length>0){for(let o of e)if(q(o.pattern,n))return Dn(o,r,n)>0&&!kn(o.pattern)}if(t&&typeof t=="object"){for(let[o,i]of Object.entries(t))if(q(o,n))return i>0&&!kn(o)}return!1}s(Ln,"isDottedPathIsrEligible");function Un(e,t,r,n){return new Request(cr(new URL(e.url).hostname,t,r,"html",n),{method:"GET"})}s(Un,"isrEdgeCacheKey");function yr(e,t,r,n){return new Request(cr(new URL(e.url).hostname,t,r,"json",n),{method:"GET"})}s(yr,"isrEdgeCacheKeyJson");async function Nn(e,t,r){let n=new Headers({"Cache-Control":"no-store",Vary:"Accept, Sec-Fetch-Dest, X-VoidPages"}),o=Ht(t),i=o.headers.get("retry-after");if(i&&n.set("Retry-After",i),e.headers.get("X-VoidPages")==="true"||!At(e))return n.set("Content-Type","application/json"),new Response(e.method==="HEAD"?null:o.body,{status:429,headers:n});try{let a=await r?.();if(a?.ok&&a.headers.get("content-type")?.includes("text/html"))return n.set("Content-Type","text/html; charset=utf-8"),n.set("X-Content-Type-Options","nosniff"),n.set("Content-Security-Policy","default-src 'none'; style-src 'unsafe-inline'; img-src data:; base-uri 'none'; form-action 'none'"),e.method==="HEAD"&&await a.body?.cancel(),new Response(e.method==="HEAD"?null:a.body,{status:429,headers:n});await a?.body?.cancel()}catch{}return j(e,429,t.message,n)}s(Nn,"createLimitResponse");var Mn=Vr,fs="__void:usage-signing-key:v1",al=11520*6e4,Hn=new TextEncoder;function ms(e){let t="";for(let r of new Uint8Array(e))t+=String.fromCharCode(r);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}s(ms,"base64url");async function hs(e,t){let r=await crypto.subtle.importKey("raw",Hn.encode(t),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return crypto.subtle.sign("HMAC",r,Hn.encode(e))}s(hs,"hmac");async function $n(e){return e.get(fs,{cacheTtl:60})}s($n,"readUsageSigningKey");function gs(e,t,r,n){return JSON.stringify([e,t,r,n])}s(gs,"signedPayload");async function Fn(e,t,r,n){return{version:Mn,source:t,eventId:r,event:n,signature:ms(await hs(gs(Mn,t,r,n),e))}}s(Fn,"signUsageEvent");function Kn(e,t){e.ANALYTICS.writeDataPoint({indexes:[t.projectId],blobs:[t.projectId,t.type,t.method,String(t.status),t.slug,t.failureKind??""],doubles:[1,t.responseBytes,t.durationMs]})}s(Kn,"recordRequest");function ys(e){if(!e.startsWith("user-"))return null;let t=e.lastIndexOf("-dpl_");return t>4?{projectKey:e.slice(0,t),deployId:e.slice(t+1)}:{projectKey:e,deployId:""}}s(ys,"splitWorkerName");var ws=2048,As=1024;function Vn(e,t){let r=new TextEncoder().encode(e);if(r.length<=t)return e;let n="\u2026";if(t<3)return"";let o=t-3;for(;o>0&&(r[o]&192)===128;)o--;return new TextDecoder().decode(r.slice(0,o))+n}s(Vn,"truncateUtf8");function Wn(e,t){if(!t.workerName)return;let r=ys(t.workerName);if(!r)return;let n=t.url;try{n=new URL(t.url).pathname}catch{}let o=`Void platform: your worker did not respond within ${t.timeoutMs} ms. ${t.method} ${Vn(n,As)} was cut short and returned ${t.status}. The operation may still have side effects; check its outcome before retrying.`;try{e.LOGS.writeDataPoint({indexes:[r.projectKey],blobs:["canceled",JSON.stringify([{level:"error",message:[o],timestamp:Date.now()}]),"[]",Vn(t.url,ws),t.method,String(t.status),r.deployId],doubles:[Date.now(),t.status]})}catch{}}s(Wn,"recordPlatformLog");async function jn(e,t){let r=await $n(e.ROUTING);if(!r)throw new Error("Usage metering is not initialized. Check the platform API /health endpoint.");let n=crypto.randomUUID();await e.USAGE_QUEUE.send(await Fn(r,"dispatch",n,t))}s(jn,"sendUsageEvent");var wr="__void/platform/disabled/v1",Ar="disabled";var Jn="void.app";function zn(e,t=Jn){let r=`.${t}`;if(!e.endsWith(r))return null;let n=e.slice(0,-r.length);return!n||n.includes(".")||!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(n)?null:n}s(zn,"extractSlug");async function Bn(e,t){let r=Re(t);if(!(!!r.workersDev&&e.endsWith(`.${r.workersDev.subdomain}.workers.dev`)))return{slug:zn(e,t.BASE_HOSTNAME),workersDev:!1};let o=await t.ROUTING.get(Kr(e));if(o){let i=JSON.parse(o);if(jr(i,r.workersDev)===e)return{slug:i.slug,projectId:i.id,workersDev:!0}}return{slug:null,workersDev:!0}}s(Bn,"resolveProjectHostname");function br(e){return new URL(typeof e=="string"||e instanceof URL?e:e.url).hostname.endsWith(".workers.dev")}s(br,"isTestHostname");var ee={async match(e,t){return br(e)?void 0:caches.default.match(e,t)},async put(e,t){br(e)||await caches.default.put(e,t)},async delete(e,t){return br(e)?!1:caches.default.delete(e,t)}};var H=class extends Error{static{s(this,"DispatchTimeoutError")}label;constructor(t){super(`Dispatch operation timed out: ${t}`),this.name="DispatchTimeoutError",this.label=t}};function ge(e,t,r){if(!(t>0)||!Number.isFinite(t))return e;let n=null,o=new Promise((i,a)=>{n=setTimeout(()=>{a(new H(r))},t)});return Promise.race([e,o]).finally(()=>{clearTimeout(n)})}s(ge,"withTimeout");async function Rr(e,t){let r=t.delayMs>0&&Number.isFinite(t.delayMs),n=t.timeoutMs>0&&Number.isFinite(t.timeoutMs),o=s(async()=>{try{return{ok:!0,value:await e()}}catch(E){return{ok:!1,error:E}}},"run"),i=[],a=s(()=>{let E={id:i.length+1,promise:o()};return i.push(E),E},"startAttempt"),l=null,u=r?new Promise(E=>{l=setTimeout(()=>E({kind:"hedge"}),t.delayMs)}):null,d=null,p=n?new Promise(E=>{d=setTimeout(()=>E({kind:"timeout"}),t.timeoutMs)}):null,f=s(()=>{clearTimeout(l),clearTimeout(d)},"clearTimers"),g=s(E=>{E.promise.then(async N=>{N.ok&&N.value!==null&&await t.discard?.(N.value)}).catch(()=>{})},"discardAttempt"),c=s(E=>{f();for(let N of i)N.id!==E&&g(N)},"finish"),w=s(()=>{throw c(),new H(t.label)},"timeout"),m=s(E=>E.promise.then(N=>({kind:"attempt",attempt:E,outcome:N})),"waitForAttempt"),C=a(),I=await Promise.race([m(C),...u?[u]:[],...p?[p]:[]]);if(I.kind==="timeout")return w();if(I.kind==="attempt"){if(clearTimeout(l),I.outcome.ok)return c(C.id),I.outcome.value;if(!r)throw c(),I.outcome.error;t.onHedge?.();let E=a(),N=await Promise.race([m(E),...p?[p]:[]]);if(N.kind==="timeout")return w();if(c(E.id),N.outcome.ok)return N.outcome.value;throw N.outcome.error}t.onHedge?.();let h=a(),R=await Promise.race([m(C),m(h),...p?[p]:[]]);if(R.kind==="timeout")return w();if(R.outcome.ok&&R.outcome.value!==null)return c(R.attempt.id),R.outcome.value;let V=R.attempt.id===C.id?h:C,M=await Promise.race([m(V),...p?[p]:[]]);if(M.kind==="timeout")return w();if(M.outcome.ok&&M.outcome.value!==null)return c(V.id),M.outcome.value;if(c(),R.outcome.ok||M.outcome.ok)return null;throw R.outcome.error}s(Rr,"withDelayedHedge");function Sr(e,t=1e4){return e===void 0?t:Number(e)}s(Sr,"resolveTimeoutMs");async function Rs(e,t){try{return await e.ROUTING.get(`project-suspended:${t}`,{cacheTtl:60})!==null}catch(r){return console.error(`[queue-relay] suspension check failed project="${t}"; relaying`,r),!1}}s(Rs,"isProjectSuspended");var Ss="public, max-age=0, must-revalidate",to=1e3,De=300,Gn=3600,Es=120,ce="platform-static-asset-timeout",de="platform-static-asset-error",we="platform-static-asset-missing",_s=86400;function Is(e,t){return[e.url.replace(/^[a-z][a-z\d+.-]*:\/\/[^/\\?#]*/i,"").replace(/[?#].*$/s,""),t.pathname].some(n=>{let o=n;try{o=decodeURIComponent(n)}catch{}return o.replace(/[\\/]+/g,"/").toLowerCase().startsWith("/health")})}s(Is,"platformHealthExceptionPath");function It(e,t){return new Response(null,{status:e,headers:{"X-Void-Timeout":t,...e===503?{"Retry-After":"5"}:{}}})}s(It,"timeoutResponse");function Xe(e){return e===ce?It(503,"static-asset"):new Response(null,{status:503,headers:{"X-Void-Storage-Error":e===we?"static-asset-missing":"static-asset-read","Retry-After":"5"}})}s(Xe,"staticAssetFailureResponse");function Ae(e){return e.headers.get("content-type")?.toLowerCase().split(";",1)[0]?.trim()==="text/html"}s(Ae,"isHtmlResponse");function Ps(e,t,r){let n=new Response(e,{headers:{"content-type":"application/json","X-VoidPages":"true",Vary:"X-VoidPages","Cache-Control":`public, s-maxage=${t}, max-age=0, must-revalidate`,"x-isr-cache":r}});return G(n.headers),n}s(Ps,"jsonCacheResponse");async function _r(e,t,r,n,o){let i=r.headers.get("x-void-page-data"),a=i?Rt(i):hr(await r.clone().text());a&&await e.put(t,Ps(a,n,o))}s(_r,"populateJsonEdgeCache");async function qn(e,t){await Promise.all([gr(e,t.projectId,t.deploymentId,t.host,t.pathname,t.originalUrl),ee.delete(t.htmlKey),ee.delete(t.jsonKey)])}s(qn,"deleteSharedIsrEntry");async function Ir(e){let t={response:e.response,pathname:e.pathname,originalUrlVariant:e.originalUrlVariant,applied:!1};if(e.response.status!==404||!e.routing.fallbackRules?.length||e.routing.type==="void"&&e.response.headers.get("X-Void-No-Match")!=="1")return t;let r=oe(e.pathname,e.routing.fallbackRules,e.url.hostname);if(r?.type!=="rewrite")return t;let n=e.originalUrlHeader??e.originalRequestUrl,o=e.originalUrlVariant??ve(e.originalRequestUrl,e.pathname,e.routing.queryAllowlist),i=new URL(e.url.toString());i.pathname=r.destination;let a=Oe(e.dispatchReq,i.toString(),l=>l.set("X-Void-Original-URL",n));return{response:e.deadline===void 0?await e.worker.fetch(a):await ge(e.worker.fetch(a),B(e.deadline.startedAt,e.deadline.timeoutMs,"dispatch"),"dispatch"),pathname:r.destination,originalUrlVariant:o,applied:!0}}s(Ir,"applyWorkerFallbackRules");function Ts(e,t,r,n,o){if(o)return o;let i=ve(e,t,n.queryAllowlist);return(n.fallbackRules?.length?oe(t,n.fallbackRules,r):void 0)?.type==="rewrite"||new URL(i).search?i:void 0}s(Ts,"buildFallbackOriginalUrlVariant");function Er(e,t,r){let n=oe(e,t.fallbackRules,r);return n?.type==="rewrite"?n.destination:void 0}s(Er,"resolveCachedWfpFallbackPathname");var Cs="Assets have not yet been deployed to this script";function vs(e){if(e.status!==200||!e.headers.get("content-type")?.toLowerCase()?.startsWith("text/plain"))return!1;let r=e.headers.get("content-length");if(!r)return!1;let n=Number.parseInt(r,10);return n>0&&n<200}s(vs,"isLikelyCfAssetStub");function B(e,t,r="static-asset"){if(!(t>0&&Number.isFinite(t)))return t;let n=t-(Date.now()-e);if(n<=0)throw new H(r);return n}s(B,"remainingTimeoutBudget");function ro(e){return e>0&&Number.isFinite(e)?Math.min(to,e/2):0}s(ro,"staticAssetHedgeDelayMs");async function Ze(e,t,r,n){let o=ro(n);try{let i=await Rr(()=>e.ROUTING.get(`manifest:${t}`,{cacheTtl:86400}),{delayMs:o,timeoutMs:n,label:"static-asset",onHedge:s(()=>{console.warn(JSON.stringify({event:"wfp-asset-manifest-read-hedge",projectId:r,deploymentId:t,delayMs:o,ts:Date.now()}))},"onHedge")});return i?JSON.parse(i):null}catch(i){throw console.error(JSON.stringify({event:i instanceof H?"wfp-asset-manifest-timeout":"wfp-asset-manifest-read-error",projectId:r,deploymentId:t,error:i instanceof H?void 0:i instanceof Error?i.message:String(i),ts:Date.now()})),i instanceof H?i:new re(i)}}s(Ze,"fetchAssetManifest");async function ks(e,t,r,n=1e4,o){if(!t.assetManifestId)return null;let i=Date.now(),a=await Ze(e,t.assetManifestId,t.projectId,B(i,n));if(!a)return null;let l=t.assetConfig??{not_found_handling:"none"},u=r,d=fe(r,a,l);if((!d||d.notFound)&&o&&o!==r){let f=fe(o,a,l);f&&!f.notFound&&(d=f,u=o)}if(!d)return null;if(d.redirect)return{response:new Response(null,{status:308,headers:{Location:d.redirect}}),pathname:u};let p=await Et(e,d.hash,d.path,t.projectId,t.assetManifestId,B(i,n));return p?{response:new Response(p.body,{status:d.notFound?404:200,headers:p.headers}),pathname:u}:null}s(ks,"serveWfpAssetFallback");function xs(e,t,r){console.log(JSON.stringify({event:"wfp-asset-fallback",projectId:e.projectId,deploymentId:e.assetManifestId,pathname:t,userAgent:r,ts:Date.now()}))}s(xs,"logWfpAssetFallback");async function te(e){let t=e.deadline?.startedAt??Date.now(),r=e.deadline?.timeoutMs??e.timeoutMs??1e4;if(W(e.response))return{response:e.response,pathname:e.pathname};if(!vs(e.response))return{response:e.response,pathname:e.pathname};let n=!1,o;try{if(!(await ge(e.response.clone().text(),B(t,r),"static-asset")).includes(Cs))return{response:e.response,pathname:e.pathname};n=!0,o=await ks(e.env,e.routing,e.pathname,B(t,r),e.fallbackPathname)}catch(i){if(i instanceof H)return n?{response:Xe(ce),failureKind:ce,pathname:e.pathname}:{response:It(503,"dispatch"),pathname:e.pathname};if(i instanceof re)return{response:Xe(de),failureKind:de,pathname:e.pathname};throw i}return o?(xs(e.routing,o.pathname,e.userAgent),o):(console.error(JSON.stringify({event:"wfp-asset-fallback-missing",projectId:e.routing.projectId,deploymentId:e.routing.assetManifestId,pathname:e.pathname,ts:Date.now()})),{response:Xe(we),failureKind:we,pathname:e.pathname})}s(te,"maybeServeWfpAssetFallback");function Oe(e,t,r){let n=new Headers(e.headers);r(n);let o=e.cf;return e.bodyUsed||e.body?.locked?(n.delete("content-length"),n.delete("transfer-encoding"),new Request(t,{method:e.method,headers:n,cf:o})):e.method==="GET"||e.method==="HEAD"?new Request(t,{method:e.method,headers:n,cf:o}):new Request(t,{method:e.method,headers:n,body:e.body,cf:o,duplex:"half"})}s(Oe,"rebuildRequest");var no={async fetch(e,t,r,n=!1){t=await Wr(t);let o=new URL(e.url);if(!t.PLATFORM_INSTALLATION_ID&&o.pathname==="/health"&&e.headers.get("X-Health-Check")==="void-admin")return Response.json({ok:!0});if(t.PLATFORM_HEALTH_PROBE_TOKEN&&o.pathname==="/health"&&e.headers.get("X-Void-Platform-Probe")===t.PLATFORM_HEALTH_PROBE_TOKEN)return Response.json({ok:!0,...t.PLATFORM_APPLICATION?{installationId:t.PLATFORM_INSTALLATION_ID}:{}});if(o.hostname.startsWith(`${Ft}.`)&&o.hostname===Jr(Re(t))&&Is(e,o))return j(e,404,"Not Found",{"Cache-Control":"no-store"});if(t.PLATFORM_TRAFFIC_STATE==="staging"||t.PLATFORM_TRAFFIC_STATE==="sandbox-drain"||t.PLATFORM_INSTALLATION_ID&&await t.ROUTING.get(wr)===Ar)return Rn(e);let i=Date.now(),a=Sr(t.DISPATCH_TIMEOUT_MS),l=Sr(t.DISPATCH_TIMEOUT_MS,0);if(o.pathname.startsWith("/__void/")||o.pathname==="/__scheduled"||o.pathname==="/__queue")return j(e,404,"Not Found");let u=await Bn(o.hostname,t),d=u.slug;if(u.workersDev&&!u.projectId)return j(e,404,"Not Found");let p=d??`domain:${o.hostname}`,f=await t.ROUTING.get(n?"preview:"+p:p,{cacheTtl:60}),g=n;if(!f&&!n&&d?.startsWith("preview-")&&(f=await t.ROUTING.get("preview:"+p,{cacheTtl:60}),g=!0),!f)return j(e,404,"Not Found",{"Cache-Control":"public, max-age=30"});let c=JSON.parse(f);if(u.projectId&&u.projectId!==c.projectId)return j(e,404,"Not Found");if(c.alwaysUseHttps??!1){let y=st(e);if(y)return y}if(!n&&(c.privatePreview||g)){if(!c.privatePreview||!t.PREVIEW_API)return j(e,404,"Not Found",{"Cache-Control":"no-store"});let y=new Headers(e.headers);return y.set("X-Void-Preview-URL",e.url),y.delete("Authorization"),t.PREVIEW_API.fetch(new Request("https://preview.invalid/oauth/preview-serve/"+c.projectId,{method:e.method,headers:y,body:e.body,redirect:"manual"}))}if(!!c.privatePreview!==n)return j(e,404,"Not Found",{"Cache-Control":"no-store"});if(c.zeroTrust&&!await An.verify(o.hostname,e.headers.get("Cf-Access-Jwt-Assertion"),c.zeroTrust))return j(e,403,"Cloudflare Access authentication required",{"Cache-Control":"no-store"});let w=s(y=>Nn(e,{code:"usage_limit",resource:y,reason:y==="requests"?"monthly_quota":"cpu",message:y==="requests"?"This app has reached its usage allowance. Please contact the app owner or try again later.":"This request exceeded its execution limit. Please try again."},async()=>{let k=c.staticDeploymentId??c.assetManifestId;if(!k)return null;let x=y==="requests"?"/usage-limit.html":"/execution-limit.html",A=(await Ze(t,k,c.projectId,2e3))?.[x];return A?Et(t,A,x,c.projectId,k,2e3):null}),"limitResponse");if(c.suspended==="requests_exceeded")return w("requests");if(c.suspended)return Response.json({error:"usage limit exceeded",reason:c.suspended},{status:429,headers:{"Cache-Control":"public, s-maxage=30, max-age=0"}});e.headers.has("X-Void-Original-URL")&&(e=Oe(e,e.url,y=>y.delete("X-Void-Original-URL")));let m=o.pathname,C,I=e.headers.get("upgrade")?.toLowerCase()==="websocket"?"websocket":"static",h=s((y,k)=>{let x=W(y)?0:Number(y.headers.get("content-length")??0);Kn(t,{projectId:c.projectId,type:I,method:e.method,status:y.status,responseBytes:x,durationMs:Date.now()-i,slug:d??o.hostname,...k&&{failureKind:k}}),c.userId&&r.waitUntil(jn(t,{projectId:c.projectId,userId:c.userId,slug:d??o.hostname,requests:1,responseBytes:x,...y.status>=500&&{status:y.status},...k&&{failureKind:k}}));let L=new Response(y.body,y);return L.headers.delete("X-Void-No-Match"),L.headers.delete(Ce),L.headers.set("X-Hosted-By","void.cloud"),L},"meter"),R=s(y=>h(Xe(y),y),"meterStaticAssetFailure"),V=s(()=>(Wn(t,{workerName:c.workerName,method:e.method,url:e.url,status:503,timeoutMs:l}),h(It(503,"dispatch"))),"meterWorkerTimeout"),M,E;if(c.redirectRules?.length){let y=oe(m,c.redirectRules,o.hostname);if(y?.type==="redirect"){let k=Me(y.destination,o.search);return h(new Response(null,{status:y.status,headers:{Location:k}}))}y?.type==="rewrite"&&(E=e.url,M=ve(e.url,m,c.queryAllowlist),m=y.destination,o.pathname=m)}let N=e;if(E&&(N=Oe(e,o.toString(),y=>y.set("X-Void-Original-URL",E))),c.hashedAssetsPrefix&&Tr(e)){let y="/"+c.hashedAssetsPrefix+"/";if(m.startsWith(y)){let k=new URL(o.toString());k.search="",k.searchParams.set("_p",c.projectId);let x=new Request(k.toString()),L=["cache-control","content-type","content-encoding","content-length","content-range","accept-ranges","transfer-encoding"],A=s((_,v)=>{let D=Y(_,m,c.headerRules);if(D!==_)for(let P of L){let $=_.headers.get(P);$===null?D.headers.delete(P):D.headers.set(P,$)}return h(D,v)},"finalizeAsset"),b=ee,U=await b.match(x);if(U?.headers.get("Cache-Control")?.includes("immutable")&&eo(U)){if(!c.staticDeploymentId){let _=await te({env:t,routing:c,pathname:m,response:U,userAgent:e.headers.get("user-agent"),timeoutMs:a});if(_.response!==U){if(ye(_.response)){let v=new Response(_.response.body,_.response);v.headers.set("Cache-Control","public, max-age=31536000, immutable"),G(v.headers);let D=v.clone();return r.waitUntil(b.delete(x).then(()=>b.put(x,D))),A(v,_.failureKind)}return r.waitUntil(b.delete(x)),A(_.response,_.failureKind)}}return A(U)}if(U&&await b.delete(x),c.staticDeploymentId){let _=Date.now(),v;try{v=await Ze(t,c.staticDeploymentId,c.projectId,B(_,a))}catch(S){if(S instanceof H)return R(ce);if(S instanceof re)return R(de);throw S}if(!v)return R(we);let D=m,P=v[m];if(!P){let S=be(m);S!==m&&v[S]&&(D=S,P=v[S])}let $;if(P)try{let S=await Et(t,P,D,c.projectId,c.staticDeploymentId,B(_,a));if(!S)return Qn(c,D,P),R(we);$=S}catch(S){if(S instanceof H)return R(ce);if(S instanceof re)return R(de);throw S}else $=j(e,404,"Not Found");if(ye($)){let S=new Response($.body,$);return S.headers.set("Cache-Control","public, max-age=31536000, immutable"),G(S.headers),r.waitUntil(b.put(x,S.clone())),A(S)}return A($)}try{let _=_t(t,c),v=Date.now(),D=await ge(_.fetch(N),B(v,a),"static-asset"),P=await te({env:t,routing:c,pathname:m,response:D,userAgent:e.headers.get("user-agent"),deadline:{startedAt:v,timeoutMs:a}});D=P.response;let $=P.failureKind;if(ye(D)){let S=new Response(D.body,D);return S.headers.set("Cache-Control","public, max-age=31536000, immutable"),G(S.headers),r.waitUntil(b.put(x,S.clone())),A(S,$)}return A(D,$)}catch(_){if(_ instanceof H)return R(ce);if(_ instanceof Error&&_.message.includes("Worker exceeded"))return h(await w("execution"));throw _}}}if(c.ssr===!0&&(c.type!=="framework"||bt(e))&&Ls(m,c.pages,c.revalidate,c.pathRevalidate)&&(c.revalidate||c.pages?.length)){let y=Ye(c.pages,c.revalidate,c.pathRevalidate,m);if(y>0&&e.method==="GET"&&!e.headers.has("Range")&&!qe(e)){let k=e.headers.has("X-VoidPages"),x=c.version??"legacy",L=ee,A=Ts(e.url,m,o.hostname,c,M),b=lr(e.url,new URL(e.url).pathname,c.queryAllowlist),U=Un(e,m,x,A),_=yr(e,m,x,A);if(C={projectId:c.projectId,deploymentId:x,host:o.hostname,pathname:m,originalUrl:A,htmlKey:U,jsonKey:_},k){let v=await L.match(_);if(v&&Ge(v))return I="isr",h(Q(v));v&&await L.delete(_)}else{let v=s(async()=>{await qn(t,C)},"purgePoisonedIsrEntry"),D=await L.match(U);if(D&&Ge(D)){I="isr";let O=await te({env:t,routing:c,pathname:m,response:D,userAgent:e.headers.get("user-agent"),timeoutMs:a,fallbackPathname:Er(m,c,o.hostname)});return O.response!==D?(r.waitUntil(v()),h(O.response.ok?Q(O.response):O.response,O.failureKind)):h(Q(D))}D&&await L.delete(U);let P=await xn(t,c.projectId,x,o.hostname,m,A);if(P){let O=pr(P),z=fr(P,O),ue=await te({env:t,routing:c,pathname:m,response:z,userAgent:e.headers.get("user-agent"),timeoutMs:a,fallbackPathname:Er(m,c,o.hostname)});if(ue.response!==z)return r.waitUntil(v()),I="isr",h(ue.response.ok?Q(ue.response):ue.response,ue.failureKind);if(O){let Ue=z.clone(),nt=N;if(b){let ot=new URL(N.url);ot.search=A?new URL(A).search:"",nt=Oe(N,ot.toString(),so=>{E&&A&&so.set("X-Void-Original-URL",A)})}r.waitUntil(Os(t,c,nt,o.hostname,m,y,U,_,P.createdAt+P.ttl*1e3,A,a).then(async ot=>{ot||await L.put(U,Ue)}))}return I="isr",O||r.waitUntil(L.put(U,z.clone())),h(Q(z))}I="isr";let $=_t(t,c),S=Date.now(),J=t.DISPATCH_TIMEOUT_MS===void 0?void 0:{startedAt:S,timeoutMs:l},T;try{T=await ge($.fetch(N),B(S,l,"dispatch"),"dispatch")}catch(O){if(O instanceof H)return V();throw O}let ne=W(T),rt,Tt=m,Ct=!1;if(!ne){let O=await te({env:t,routing:c,pathname:m,response:T,userAgent:e.headers.get("user-agent"),deadline:J});T=O.response,rt=O.failureKind,ne=W(T)}if(!ne){let O;try{O=await Ir({response:T,worker:$,dispatchReq:N,routing:c,pathname:m,url:o,originalRequestUrl:e.url,originalUrlHeader:E,originalUrlVariant:A,deadline:J})}catch(z){if(z instanceof H)return V();throw z}if(O.applied&&(Ct=!0,Tt=O.pathname,T=O.response,ne=W(T),!ne)){let z=await te({env:t,routing:c,pathname:O.pathname,response:T,userAgent:e.headers.get("user-agent"),deadline:J});T=z.response,rt=z.failureKind,ne=W(T)}}if(ne)return h(T);let Le=ke(T,y);if(!b&&Le>0&&T.status===200&&(c.type!=="framework"||Ae(T))&&!Z(Tt)&&!ae(T)&&(!Ct||Pr(c.pages,Tt,T,c.pathRevalidate))){r.waitUntil(St(t,c.projectId,x,o.hostname,m,T,Le,A)),r.waitUntil(_r(L,_,T,Le,"HIT"));let O=new Headers(T.headers);O.set("Cache-Control",`public, s-maxage=${Le}, max-age=0, must-revalidate`),O.set("x-isr-cache","MISS"),G(O),O.delete("x-void-page-data"),O.delete("set-cookie");let z=new Headers(O);z.set("x-isr-cache","HIT");let ue=new Response(T.clone().body,{status:T.status,headers:z});r.waitUntil(L.put(U,ue.clone()));let Ue=new Headers(O);Ue.set("Cache-Control",Ss),Ue.delete(Ce);let nt=new Response(T.body,{status:T.status,headers:Ue});return h(nt,rt)}return T.status===200&&!Ct&&(Le===0||ae(T)||c.type==="framework"&&!Ae(T))&&r.waitUntil(v()),h(T,rt)}}}let et=m,Pt=Us(e,et,c)?await Ns(t,et,c,a):void 0,oo=Pt===!0,tt;if(oo){let y=new URL(ve(e.url,new URL(e.url).pathname,dr(c.queryAllowlist)));y.searchParams.set("_v",String(c.version));let k=new Request(y.toString());tt=k;let x=ee,L=await x.match(k);if(L&&eo(L)){if(I="static",!c.staticDeploymentId){let A=await te({env:t,routing:c,pathname:m,response:L,userAgent:e.headers.get("user-agent"),timeoutMs:a,fallbackPathname:Er(m,c,o.hostname)});if(A.response!==L){if(ye(A.response)){let b=Y(A.response,A.pathname,c.headerRules),U=new Response(b.clone().body,b);U.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),G(U.headers);let _=U.clone();return r.waitUntil(x.delete(k).then(()=>x.put(k,_))),h(Q(b))}return r.waitUntil(x.delete(k)),h(A.response,A.failureKind)}}return h(Q(L))}L&&await x.delete(k)}if(c.staticDeploymentId){let y=Date.now(),k;try{k=await Ze(t,c.staticDeploymentId,c.projectId,B(y,a))}catch(P){if(P instanceof H)return R(ce);if(P instanceof re)return R(de);throw P}if(!k)return R(we);let x=c.assetConfig??{},L=m,A=fe(m,k,x);if((!A||A.notFound)&&c.fallbackRules?.length){let P=oe(m,c.fallbackRules,o.hostname);P?.type==="rewrite"&&(m=P.destination,o.pathname=m,A=fe(m,k,x))}if(!A)return h(j(e,404,"Not Found"));if(A.redirect)return h(new Response(null,{status:308,headers:{Location:A.redirect}}));let b;try{b=await Et(t,A.hash,A.path,c.projectId,c.staticDeploymentId,B(y,a))}catch(P){if(P instanceof H)return h(It(A.notFound?404:503,"static-asset"),A.notFound?void 0:ce);if(P instanceof re)return h(A.notFound?j(e,404,"Not Found"):Xe(de),A.notFound?void 0:de);throw P}if(!b)return A.notFound?h(j(e,404,"Not Found")):(Qn(c,A.path,A.hash),R(we));let U=A.notFound?404:200,_=new Response(b.body,{status:U,headers:b.headers}),v=Y(_,m,c.headerRules),D=tt??(Tr(e)?new Request(`${o.origin}${L}?_v=${c.staticDeploymentId}`):void 0);if(D&&ye(v)){let P=new Response(v.clone().body,v);P.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),G(P.headers),r.waitUntil(ee.put(D,P.clone()))}return h(Q(v))}let Cr=_t(t,c);try{let y=N;y.bodyUsed&&(y=Oe(y,y.url,()=>{}));let x=y.method!=="GET"&&y.method!=="HEAD"&&c.fallbackRules?.length?y.clone():y,L=Date.now(),A=t.DISPATCH_TIMEOUT_MS===void 0?void 0:{startedAt:L,timeoutMs:l},b=await ge(Cr.fetch(y),B(L,l,"dispatch"),"dispatch"),U=W(b),_;if(!U){let S=await te({env:t,routing:c,pathname:m,response:b,userAgent:e.headers.get("user-agent"),deadline:A});b=S.response,_=S.failureKind,U=W(b)}let v=!1;if(!U){let S=await Ir({response:b,worker:Cr,dispatchReq:x,routing:c,pathname:m,url:o,originalRequestUrl:e.url,originalUrlHeader:E,originalUrlVariant:M,deadline:A});if(S.applied&&(v=!0,m=S.pathname,o.pathname=m,M=S.originalUrlVariant,b=S.response,U=W(b),!U)){let J=await te({env:t,routing:c,pathname:m,response:b,userAgent:e.headers.get("user-agent"),deadline:A});b=J.response,_=J.failureKind,U=W(b)}}if(C&&b.status===200&&!v&&(ke(b,Ye(c.pages,c.revalidate,c.pathRevalidate,C.pathname))===0||ae(b)||c.type==="framework"&&!Ae(b))&&r.waitUntil(qn(t,C)),tt&&!v&&ye(b)){let S=new Response(b.body,b);S.headers.delete("x-void-page-data");let J=Y(S,m,c.headerRules),T=new Response(J.clone().body,J);return T.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),G(T.headers),r.waitUntil(ee.put(tt,T.clone())),h(Q(J),_)}let D=m===et?Pt:void 0,P=!_&&Zn(c,D)&&(D===!1||b.status>=500),$=or(m,c.ssr,P);if($&&(I=$),(c.revalidate||c.pages?.length)&&!U&&!e.headers.has("X-VoidPages")&&e.method==="GET"&&!e.headers.has("Range")&&(c.type!=="framework"||bt(e))&&!qe(e)){let S=Ye(c.pages,c.revalidate,c.pathRevalidate,m),J=S>0?ke(b,S):0;if(J>0&&b.status===200&&c.ssr&&!Z(m)&&!Je(m)&&(c.type!=="framework"||Ae(b))&&!ae(b)&&(!v||Pr(c.pages,m,b,c.pathRevalidate))){let T=c.version??"legacy";r.waitUntil(St(t,c.projectId,T,o.hostname,m,b,J,M));let ne=yr(e,m,T,M);r.waitUntil(_r(ee,ne,b,J,"HIT"))}}if(b.headers.has("x-void-page-data")){let S=new Response(b.body,b);return S.headers.delete("x-void-page-data"),h(Y(S,m,c.headerRules),_)}return h(Y(b,m,c.headerRules),_)}catch(y){if(y instanceof H){if(y.label==="static-asset")return R(ce);let k=or(m,c.ssr,Zn(c,m===et?Pt:void 0));return k&&(I=k),V()}if(y instanceof re)return R(de);if(y instanceof Error&&y.message.includes("Worker exceeded"))return h(await w("execution"));throw y}},async queue(e,t){if(t.PLATFORM_TRAFFIC_STATE==="staging"||t.PLATFORM_TRAFFIC_STATE==="sandbox-drain"){console.warn(`[queue-relay] platform traffic is staging; retrying queue="${e.queue}" in ${De}s`),e.retryAll({delaySeconds:De});return}if(t.PLATFORM_INSTALLATION_ID){let d;try{d=await t.ROUTING.get(wr)}catch(p){let f=p instanceof Error?p.message:String(p);console.error(`[queue-relay] platform traffic gate read failed; retrying queue="${e.queue}" in ${De}s error=${JSON.stringify(f)}`),e.retryAll({delaySeconds:De});return}if(d===Ar){console.warn(`[queue-relay] platform traffic is disabled; retrying queue="${e.queue}" in ${De}s`),e.retryAll({delaySeconds:De});return}}let r=await t.ROUTING.get(`queue:${e.queue}`,{cacheTtl:60});if(!r){console.error(`[queue-relay] missing routing entry for queue="${e.queue}"; retrying all messages`),e.retryAll();return}let{workerName:n,projectId:o,queueName:i,proxyToken:a}=JSON.parse(r);if(o&&await Rs(t,o)){console.warn(`[queue-relay] project suspended; retrying queue="${e.queue}" in ${Gn}s`),e.retryAll({delaySeconds:Gn});return}let l=Array.from(e.messages,d=>({id:d.id,timestamp:d.timestamp.toISOString(),body:d.body,attempts:d.attempts})),u=t.DISPATCH.get(n);try{let d=JSON.stringify({queue:i,messages:l}),p={"Content-Type":"application/json"};a&&(p["x-void-internal"]=a);let f=await u.fetch(new Request("https://internal/__void/queue",{method:"POST",headers:p,body:d}));if(f.status===404&&(f=await u.fetch(new Request("https://internal/__queue",{method:"POST",headers:p,body:d}))),!f.ok){let w="";try{w=(await f.clone().text()).slice(0,200)}catch{}console.error(`[queue-relay] relay failed queue="${i}" worker="${n}" status=${f.status} body=${JSON.stringify(w)}`),f.status===401||f.status===403?e.retryAll({delaySeconds:Es}):e.retryAll();return}let g;try{g=await f.json()}catch{e.ackAll();return}if(!g.decisions){g.ok!==!1?e.ackAll():e.retryAll();return}let c=new Map(e.messages.map(w=>[w.id,w]));for(let[w,m]of Object.entries(g.decisions)){let C=c.get(w);C&&(m.action==="ack"?C.ack():m.action==="retry"&&C.retry(m.delaySeconds!=null?{delaySeconds:m.delaySeconds}:void 0))}g.ok===!1&&e.retryAll()}catch(d){let p=d instanceof Error?d.message:String(d);console.error(`[queue-relay] relay threw queue="${i}" worker="${n}" error=${JSON.stringify(p)}`),e.retryAll()}}},Gl=no,Yn=class extends bs{static{s(this,"PreviewDispatcher")}fetch(t){return no.fetch(t,this.env,this.ctx,!0)}},re=class extends Error{static{s(this,"StaticAssetReadError")}constructor(t){super("Static asset storage read failed",{cause:t}),this.name="StaticAssetReadError"}};function Qn(e,t,r){console.error(JSON.stringify({event:"static-asset-missing",store:r.startsWith("!")?"r2":"kv",projectId:e.projectId,deploymentId:e.staticDeploymentId??e.assetManifestId,pathname:t,ts:Date.now()}))}s(Qn,"logStaticAssetMissing");async function Et(e,t,r,n,o,i=1e4){let a=ro(i),l=Date.now(),u=!1;try{let d=await Rr(()=>Ds(e,t,r,n),{delayMs:a,timeoutMs:i,label:"static-asset",discard:s(async p=>{await p.body?.cancel()},"discard"),onHedge:s(()=>{u=!0,console.warn(JSON.stringify({event:"static-asset-read-hedge",store:t.startsWith("!")?"r2":"kv",projectId:n,deploymentId:o,pathname:r,delayMs:a,ts:Date.now()}))},"onHedge")});return u&&console.warn(JSON.stringify({event:"static-asset-read-hedge-result",store:t.startsWith("!")?"r2":"kv",projectId:n,deploymentId:o,pathname:r,outcome:d===null?"miss":"hit",elapsedMs:Date.now()-l,ts:Date.now()})),d}catch(d){throw console.error(JSON.stringify({event:d instanceof H?"static-asset-timeout":"static-asset-read-error",store:t.startsWith("!")?"r2":"kv",projectId:n,deploymentId:o,pathname:r,hedged:u,elapsedMs:Date.now()-l,error:d instanceof H?void 0:d instanceof Error?d.message:String(d),ts:Date.now()})),d instanceof H?d:new re(d)}}s(Et,"fetchStaticAsset");async function Ds(e,t,r,n){let o=t.startsWith("!"),i=o?t.slice(1):t,a=n?`assets/${n}/${i}`:null,l=`assets/${i}`;if(o){let d=a?await e.STATIC_ASSETS_R2.get(a)??await e.STATIC_ASSETS_R2.get(l):await e.STATIC_ASSETS_R2.get(l);if(!d)return null;let p=He(d.httpMetadata?.contentType,r),f={ETag:d.httpEtag,...d.size?{"Content-Length":String(d.size)}:{}};return p&&(f["Content-Type"]=p),new Response(d.body,{headers:f})}let u=s(async d=>{let{value:p,metadata:f}=await e.STATIC_ASSETS.getWithMetadata(d,{type:"arrayBuffer",cacheTtl:86400});if(!p)return null;let g=He(f?.ct,r),c={"Content-Length":String(p.byteLength)};return g&&(c["Content-Type"]=g),new Response(p,{headers:c})},"readKvAsset");return(a?await u(a):null)??u(l)}s(Ds,"fetchStaticAssetOnce");function _t(e,t){return t.limits?e.DISPATCH.get(t.workerName,{},{limits:t.limits}):e.DISPATCH.get(t.workerName)}s(_t,"getWorker");async function Os(e,t,r,n,o,i,a,l,u,d,p=1e4){try{let f=_t(e,t),g=Date.now(),c=Oe(r,r.url,E=>E.delete("X-VoidPages")),w=await ge(f.fetch(c),B(g,p,"dispatch"),"dispatch");if(W(w))return!1;let m=w.status,C=await Ir({response:w,worker:f,dispatchReq:c,routing:t,pathname:o,url:new URL(c.url),originalRequestUrl:r.url,originalUrlHeader:r.headers.get("X-Void-Original-URL")??void 0,originalUrlVariant:d??void 0,deadline:{startedAt:g,timeoutMs:p}});if(w=C.response,W(w)||(w=(await te({env:e,routing:t,pathname:C.pathname,response:w,userAgent:r.headers.get("user-agent"),deadline:{startedAt:g,timeoutMs:p}})).response,W(w)))return!1;let h=ke(w,i),R=ee,V=s(async()=>{await gr(e,t.projectId,t.version??"legacy",n,o,d),await R.delete(a),await R.delete(l)},"evictSharedEntry"),M=C.applied?C.pathname:o;if(h>0&&w.status===200&&(t.type!=="framework"||Ae(w))&&!Z(M)&&!ae(w)&&(!C.applied||Pr(t.pages,M,w,t.pathRevalidate))){await St(e,t.projectId,t.version??"legacy",n,o,w,h,d);let E=new Headers(w.headers);return E.set("x-isr-cache","HIT"),E.set("Cache-Control",`public, s-maxage=${h}, max-age=0, must-revalidate`),G(E),E.delete("set-cookie"),E.delete("x-void-page-data"),await R.put(a,new Response(w.clone().body,{status:w.status,headers:E})),await _r(R,l,w,h,"HIT"),!0}else if(w.status===200&&!Z(M)&&!C.applied&&(h===0||ae(w)||t.type==="framework"&&!Ae(w))){try{await V()}catch(E){console.error("ISR privacy eviction failed:",E)}return!0}else if((m===404||m===410)&&Date.now()-u>_s*1e3){try{await V()}catch(E){console.error("ISR stale-entry eviction failed:",E)}return!0}return!1}catch(f){return console.error("ISR revalidation failed:",f),!1}}s(Os,"revalidateInBackground");function Ls(e,t,r,n){return Z(e)?!1:Je(e)?Ln(t,r,n,e):!0}s(Ls,"isIsrEligiblePath");function Pr(e,t,r,n){return Ae(r)&&On(e,t,n)}s(Pr,"isFallbackTargetCacheable");function Tr(e){return e.method==="GET"&&!e.headers.has("Range")&&!e.headers.has("X-VoidPages")&&!qe(e)}s(Tr,"isSharedStaticCacheRequestEligible");function Us(e,t,r){return!!(Tr(e)&&r.version&&!Z(t)&&(Je(t)||!r.ssr))}s(Us,"isStaticCacheRequestEligible");async function Ns(e,t,r,n){if(r.staticDeploymentId||!r.ssr)return!0;if(r.assetManifestId)try{let o=await Ze(e,r.assetManifestId,r.projectId,Math.min(n,to));if(!o)return;if(Object.hasOwn(o,t))return!0;let i=be(t);return i!==t&&Object.hasOwn(o,i)?!0:(r.assetConfig?.html_handling??"auto-trailing-slash")!=="none"&&(Xn(o,t)||Xn(o,i))?void 0:!1}catch{return}}s(Ns,"isKnownStaticAssetPath");function Xn(e,t){let r=[`${t}.html`,`${t}/index.html`];if(t.endsWith(".html")){let n=t.slice(0,-5);r.push(`${n}/index.html`),n.endsWith("/index")&&r.push(`${n.slice(0,-6)}.html`)}return r.some(n=>Object.hasOwn(e,n))}s(Xn,"hasHtmlHandlingSource");function Zn(e,t){if(!e.assetManifestId)return!0;let r=e.assetConfig?.run_worker_first;return r===!0||Array.isArray(r)&&r.includes("/**")?!0:t===!1&&(e.assetConfig?.not_found_handling??"none")==="none"}s(Zn,"workerAnsweredPath");function ye(e){return e.status===200&&!W(e)&&!ae(e)}s(ye,"isStaticCacheResponseEligible");function eo(e){return Ge(e)&&ye(e)}s(eo,"isCurrentStaticCacheResponse");export{Yn as PreviewDispatcher,Gl as default,Ae as isHtmlResponse,Oe as rebuildRequest};