@void/platform 1.2.0 → 1.3.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 ro=Object.defineProperty;var s=(e,t)=>ro(e,"name",{value:t,configurable:!0});function Ct(e,t){let r=e.get(t);return r!==void 0&&(e.delete(t),e.set(t,r)),r}s(Ct,"lruGet");function vt(e,t,r){if(e.size>=256){let n=e.keys().next();n.done||e.delete(n.value)}e.set(t,r)}s(vt,"lruSet");function no(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===95}s(no,"isNameChar");function It(e,t){return e==="seg"?t!==47:t!==10&&t!==13&&t!==8232&&t!==8233}s(It,"accepts");function Oe(e,t){if(!t)return;let r=e[e.length-1];r?.kind==="text"?r.text+=t:e.push({kind:"text",text:t})}s(Oe,"pushText");function Sr(e){let t=[],r=[],n=!1,o=0;for(;o<e.length;){let a=e[o];if(a===":"){let i=o+1;for(;i<e.length&&no(e.charCodeAt(i));)i++;if(i===o+1){Oe(t,":"),o++;continue}let l=e.slice(o+1,i);r.push(l);let u=e[i]==="*";t.push({kind:u?"any":"seg",name:l}),o=u?i+1:i}else if(a==="*")n?t.push({kind:"any"}):(r.push("splat"),t.push({kind:"any",name:"splat"}),n=!0),o++;else{let i=o+1;for(;i<e.length&&e[i]!==":"&&e[i]!=="*";)i++;Oe(t,e.slice(o,i)),o=i}}return{tokens:t,paramNames:r}}s(Sr,"parseCapture");function Tr(e,t){let r=t.split("*");Oe(e,r[0]);for(let n=1;n<r.length;n++)e.push({kind:"any"}),Oe(e,r[n])}s(Tr,"parseStars");function oo(e){let t=[],r=e.split("/");for(let n=0;n<r.length;n++){let o=r[n];n>0&&Oe(t,"/");let a=o.slice(1,-4);o[0]!==":"||o.length<2?Tr(t,o):o.length>5&&o.endsWith("{.+}")&&!a.includes("{")&&!a.includes("}")?t.push({kind:"plus"}):t.push({kind:"seg"})}return t}s(oo,"parseSegments");function kt(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 a=n.kind==="text"?n.text.length:n.kind==="any"?0:1;r[o+1]=r[o]+a}),{steps:t,starts:r,minLength:r[t.length]}}s(kt,"prepare");function Pt(e,t,r,n,o){let a=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,a|=d}return a===1}let i=e.kind,l=0;for(let u=o.length-1;u>=0;u--){let d=i==="any"?n[u]===1||l===1&&It(i,t.charCodeAt(r+u)):(n[u]===1||l===1)&&It(i,t.charCodeAt(r+u));o[u]=d?1:0,l=o[u],a|=l}return a===1}s(Pt,"stepBack");function Tt(e){let t=new Uint8Array(e);return t[e-1]=1,t}s(Tt,"endRow");function Cr({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(Cr,"quickReject");function xt(e,t){if(Cr(e,t))return!1;let{steps:r,starts:n,minLength:o}=e,a=Tt(t.length-o+1),i=new Uint8Array(a.length),l=r[0]?.kind==="text"?1:0;for(let u=r.length-1;u>=l;u--){if(!Pt(r[u],t,n[u],a,i))return!1;let d=a;a=i,i=d}return a[0]===1}s(xt,"matches");function so(e,t,r,n,o){if(e.kind==="text")return r+e.text.length;let a=e.kind==="any"?0:1,i=o.length-1-n+a,l=0;for(;l<i&&It(e.kind,t.charCodeAt(r+l));)l++;for(;l>a&&o[n+l-a]!==1;)l--;return r+l}s(so,"greedyEnd");function io(e,t,r){if(Cr(e,t))return null;let{steps:n,starts:o,minLength:a}=e,i=n.length,l=t.length-a+1,u=i*l<=65536?1:Math.ceil(Math.sqrt(i)),d=new Map([[i,Tt(l)]]),f=Tt(l),m=new Uint8Array(l),c=n[0]?.kind==="text"?1:0;for(let g=i-1;g>=c;g--){if(!Pt(n[g],t,o[g],f,m))return null;g%u===0&&d.set(g,m.slice());let S=f;f=m,m=S}if(f[0]!==1)return null;let E=Array.from({length:u},()=>new Uint8Array(l)),p=0,T=s(g=>g===p?d.get(g):E[g%u],"rowAt"),R=new Int32Array(r+1),w=0;for(let g=0;g<=r;g++){if(g+1>p){p=Math.min(i,Math.ceil((g+1)/u)*u);for(let S=p-1;S>g;S--)Pt(n[S],t,o[S],T(S+1),E[S%u])}w=so(n[g],t,w,w-o[g],T(g+1)),R[g]=w}return R}s(io,"greedyEnds");function ao(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(ao,"toRegExp");var _r=new Map;function vr(e){let t=Ct(_r,e);if(t)return t;let{tokens:r,paramNames:n}=Sr(e),o,a=new Set;for(let f of n)a.has(f)?o??=`Duplicate capture group name "${f}"`:f.charCodeAt(0)>=48&&f.charCodeAt(0)<=57&&(o??=`Invalid capture group name "${f}"`),a.add(f);let i=kt(r),l=-1;i.steps.forEach((f,m)=>{f.kind!=="text"&&f.name&&(l=m)});let u,d={...i,paramNames:n,error:o,lastNamed:l,get regex(){return u??=ao(Sr(e).tokens)}};return vt(_r,e,d),d}s(vr,"compile");function tt(e){let t=vr(e);if(t.error)throw new SyntaxError(t.error);return t}s(tt,"compilePattern");function rt(e,t){let r=vr(e);if(r.error)return null;let{steps:n,lastNamed:o}=r,a=o===-1?void 0:io(r,t,o);if(a===null||a===void 0&&!xt(r,t))return null;let i=Object.create(null);for(let l of r.paramNames)i[l]="";for(let l=0;a&&l<=o;l++){let u=n[l];u.kind!=="text"&&u.name&&(i[u.name]=t.slice(l===0?0:a[l-1],a[l]))}return i}s(rt,"matchPatternCaptures");var Ir=new Map;function ue(e,t){let r=Ct(Ir,e);if(!r){let n=[];Tr(n,e),r=kt(n),vt(Ir,e,r)}return xt(r,t)}s(ue,"matchLiteralPattern");var Pr=new Map;function G(e,t){let r=Ct(Pr,e);return r||(r=kt(oo(e)),vt(Pr,e,r)),xt(r,t)}s(G,"matchSegmentPattern");function nt(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(nt,"substituteParams");var co=new Set(["set-cookie"]);function lo(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(lo,"parseQuotedString");function Dt(e){let t=[],r=s(a=>{let i=a.trim();i.length>0&&t.push({raw:i,directive:lo(i)})},"pushMember"),n=0,o=!1;for(let a=0;a<e.length;a+=1){let i=e[a];o?i==="\\"?a+=1:i==='"'&&(o=!1):i==='"'?o=!0:i===","&&(r(e.slice(n,a)),n=a+1)}return r(e.slice(n)),t}s(Dt,"parseClearSiteData");function ot(e){let t=[];for(let{raw:r,directive:n}of Dt(e)){let o=n?.toLowerCase();if(o==="*")return null;n===null||o==="cookies"||t.push(r)}return t.length>0?t.join(", "):null}s(ot,"sanitizeClearSiteData");function q(e,t,r,n){if(!r||r.length===0)return e;let o=[];for(let d of r)ue(d.pattern,t)&&o.push(...d.headers);if(o.length===0)return e;let a=new Response(e.body,e),i=n?.cookieIsolation!=="origin",l=i?e.headers.get("clear-site-data"):null,u=l===null?null:ot(l);for(let[d,f]of o){let m=d.toLowerCase();if(!(i&&co.has(m))){if(i&&m==="clear-site-data"){let c=ot(f);c!==null?a.headers.set(d,c):u!==null?a.headers.set(d,u):a.headers.delete(d);continue}a.headers.set(d,f)}}return a}s(q,"applyHeaderRules");function ne(e,t,r){if(!t?.length)return null;for(let n of t){if(n.host&&n.host!==r)continue;try{tt(n.source)}catch(i){console.warn(`[dispatch] skipping routing rule with invalid source ${JSON.stringify(n.source)}: ${i instanceof Error?i.message:String(i)}`);continue}let o=rt(n.source,e);if(!o)continue;let a=nt(n.destination,o);return n.status===200?{type:"rewrite",destination:a}:{type:"redirect",destination:a,status:n.status}}return null}s(ne,"applyRoutingRules");function Le(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),a=n.indexOf("?");if(a===-1)return n+t+o;if(a===n.length-1)return n.slice(0,a)+o;let i=new URLSearchParams(t),l=new URLSearchParams(n.slice(a+1));for(let[u,d]of i)l.has(u)||l.append(u,d);return n.slice(0,a)+"?"+l.toString()+o}s(Le,"mergeQueryIntoLocation");function we(e){let t;try{t=decodeURIComponent(e)}catch{return e}if(t===e)return e;let r=Dr(t);if(r===null)return e;let n=kr(e).replace(/%5B/g,"[").replace(/%5D/g,"]");return kr(r)===n?t:e}s(we,"safeDecodePathname");function kr(e){return e.replace(/%[0-9a-fA-F]{2}/g,t=>t.toUpperCase())}s(kr,"normalizePercentCase");function Dr(e){try{let t=new URL("https://void.invalid/");return t.pathname=e,t.pathname}catch{return null}}s(Dr,"reencodePathname");function xr(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),a=o+".html";if(t[a])return{path:a,hash:t[a],redirect:o}}let n=e+".html";if(t[n])return{path:n,hash:t[n]};break}case"none":break}return null}s(xr,"matchManifestEntry");function pe(e,t,r){let n=r.html_handling??"auto-trailing-slash",o=xr(e,t,n);if(!o){let a=we(e);if(a!==e&&(o=xr(a,t,n),o?.redirect!==void 0)){let i=Dr(o.redirect);i!==null&&(o={...o,redirect:i})}}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(pe,"resolveStaticPath");var uo={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 Ot(e){let t=e.split(".").pop()?.toLowerCase()??"";return uo[t]??"application/octet-stream"}s(Ot,"getContentType");function Ne(e,t){if(e!=="application/null")return!e||e==="application/octet-stream"?Ot(t):e}s(Ne,"resolveAssetContentType");function Lt(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(Lt,"usageLimitResponse");var Or="x-void-shared-cache-policy";var Lr=200;var fo="public, max-age=0, must-revalidate";function Y(e){let t=new Response(e.body,e);return t.headers.set("Cache-Control",fo),t.headers.delete(Or),t}s(Y,"clientRevalidateResponse");function mo(e){return e.headers.get("content-type")?.toLowerCase().split(";",1)[0]?.trim()}s(mo,"mediaType");function K(e){return mo(e)==="text/event-stream"}s(K,"isEventStreamResponse");function Ue(e,t){if(typeof e!="string"||e.trim()==="")throw new Error(`${t} must be a non-empty string.`);return e}s(Ue,"requiredString");var oe=1073741824,yo={free:{requestsPerMonth:3e6,cpuMsPerRequest:10,maxCpuMsPerRequest:10,subRequestsPerInvocation:50,deploysPerDay:100,d1StorageBytes:1*oe,r2StorageBytes:5*oe,kvStorageBytes:1*oe,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*oe,r2StorageBytes:25*oe,kvStorageBytes:5*oe,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*oe,r2StorageBytes:100*oe,kvStorageBytes:25*oe,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 wo=["github","google","oidc","cloudflare-access"];var Ao={ai:!0,customDomains:!1,email:!1,githubActions:!1,githubOAuth:!0,googleOAuth:!1,managedBuilds:!1,sandbox:!1},bo={apiHostname:null,dashboardHostname:null,proxyHostname:null};function Nr(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(Nr,"normalizeInstallationSlug");function fe(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(fe,"normalizeApplicationDomain");function Ro(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=fe(r.hostname),r.origin}s(Ro,"normalizePlatformDashboardUrl");function Eo(e){let t=`void-${Nr(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(Eo,"createPlatformResourceNames");function So(e){if(!e.zoneName&&e.workersDev){if(e.dedicatedZone)throw new Error("workers.dev cannot use a dedicated-zone catch-all.");return[]}let t=fe(e.baseDomain),r=fe(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(So,"createApplicationRoutes");function _o(e){if(e.emailSharedZoneId===void 0!=(e.emailSenderDomain===void 0))throw new Error("Shared email configuration requires both emailSenderDomain and emailSharedZoneId.");let t=Nr(e.installationSlug),r=fe(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===""?"":fe(e.application.zoneName);if(!o&&r!==`${n.subdomain}.workers.dev`)throw new Error("workers.dev application domain must match its account subdomain.");let a={...Eo(t),...e.resources},i={...Ao,...e.capabilities};if(i.managedBuilds&&!i.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(m=>!wo.includes(m))||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(m=>m==="oidc"||m==="cloudflare-access");if(l.length===0)throw new Error("At least one authentication provider is required.");if(l.includes("github")!==i.githubOAuth)throw new Error("The GitHub provider and githubOAuth capability must agree.");if(l.includes("google")!==i.googleOAuth)throw new Error("The Google provider and googleOAuth capability must agree.");let d=e.controlPlane?.dashboardUrl===void 0?void 0:Ro(e.controlPlane.dashboardUrl),f={...e.appAccess!==void 0?{appAccess:e.appAccess}:{},application:{baseDomain:r,dedicatedZone:e.application.dedicatedZone??!1,zoneName:o,...n?{workersDev:{...n}}:{},...e.application.zoneId?{zoneId:Ue(e.application.zoneId,"application.zoneId")}:{}},authentication:{providers:[...l],...u?{configurable:!0}:{},...e.authentication?.accessProtection?{accessProtection:!0}:{}},capabilities:i,...e.emailSharedZoneId!==void 0?{emailSharedZoneId:Ue(e.emailSharedZoneId,"emailSharedZoneId")}:{},...e.emailSenderDomain!==void 0?{emailSenderDomain:fe(e.emailSenderDomain)}:{},controlPlane:{...bo,...e.controlPlane,...d!==void 0?{dashboardUrl:d,dashboardHostname:e.controlPlane?.dashboardHostname??new URL(d).hostname}:{}},displayName:Ue(e.displayName,"displayName").trim(),installationSlug:t,resources:a,schemaVersion:e.appAccess!==void 0?4:u?3:n?2:1};So(f.application);for(let[m,c]of Object.entries(f.controlPlane))m!=="dashboardUrl"&&c!==null&&fe(c);if(f.controlPlane.dashboardUrl){let m=new URL(f.controlPlane.dashboardUrl).hostname;if(f.controlPlane.dashboardHostname!==m)throw new Error("The dashboard URL and dashboard hostname must agree.")}for(let[m,c]of Object.entries(f.resources))Ue(c,`resources.${m}`);return f}s(_o,"createPlatformDeploymentManifest");var Ur=2;function Ae(e){let t=e.SITE_DOMAIN??e.BASE_HOSTNAME??"void.app";return e.PLATFORM_APPLICATION?Io(JSON.parse(e.PLATFORM_APPLICATION)):{baseDomain:t,zoneName:t,dedicatedZone:!1}}s(Ae,"readPlatformApplication");function Io(e){return _o({installationSlug:"runtime",displayName:"Runtime",application:e}).application}s(Io,"parsePlatformApplication");function Mr(e){return`workers-dev:${e}`}s(Mr,"platformWorkersDevAliasKey");var Po="__void/platform/application/v1";async function Hr(e){if(!e.PLATFORM_APPLICATION)return e;let t=await e.ROUTING.get(Po);if(!t)return e;let r=Ae(e),n=Ae({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(Hr,"resolvePlatformApplicationEnvironment");function To(e){return`void-${e.installationId.slice(-12)}-`}s(To,"platformProjectIngressPrefix");function Co(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=To(t),n=`-${e.id.slice(5)}`;return`${r}${e.slug.slice(0,63-r.length-n.length).replace(/-+$/,"")}${n}`}s(Co,"platformProjectIngressName");function $r(e,t){return`${Co(e,t)}.${t.subdomain}.workers.dev`}s($r,"platformProjectWorkersDevHostname");var Nt="void-platform-health";function Fr(e){return e.zoneName?`${Nt}.${e.baseDomain}`:null}s(Fr,"platformHealthHostname");import{WorkerEntrypoint as hs}from"cloudflare:workers";var st=new TextEncoder,it=new TextDecoder,at=new TextDecoder("utf-8",{fatal:!0}),da=2**32;function Vr(...e){let t=e.reduce((o,{length:a})=>o+a,0),r=new Uint8Array(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}s(Vr,"concat");var vo=/[^\x00-\x7f]/;function be(e){if(typeof e=="string"&&e.length>=128){if(vo.test(e))throw new TypeError("non-ASCII string encountered in encode()");return st.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(be,"encode");function Kr(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(Kr,"decodeBase64");var V=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)}},se=class extends V{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}},Me=class extends V{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}},ct=class extends V{static{s(this,"JOSEAlgNotAllowed")}static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},Q=class extends V{static{s(this,"JOSENotSupported")}static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"};var F=class extends V{static{s(this,"JWSInvalid")}static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},Re=class extends V{static{s(this,"JWTInvalid")}static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"};var He=class extends V{static{s(this,"JWKSInvalid")}static code="ERR_JWKS_INVALID";code="ERR_JWKS_INVALID"},Ee=class extends V{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)}},lt=class extends V{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)}},dt=class extends V{static{s(this,"JWKSTimeout")}static code="ERR_JWKS_TIMEOUT";code="ERR_JWKS_TIMEOUT";constructor(t="request timed out",r){super(t,r)}},ut=class extends V{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 ko="The input to be decoded is not correctly encoded.";function $e(e){try{return Kr(typeof e=="string"?e:it.decode(e),!0)}catch(t){throw new TypeError(ko,{cause:t})}}s($e,"decode");function ce(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(ce,"isObject");function pt(e){return ce(e)&&Array.isArray(e.keys)&&Array.from(e.keys).every(ce)}s(pt,"isJwkSet");function jr(...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(jr,"isDisjoint");function Ut(e,t,r){try{return $e(e)}catch{throw new r(`Failed to base64url decode the ${t}`)}}s(Ut,"decodeBase64url");function Wr(e,t,r){try{return be(e)}catch{throw new r(`The ${t} is not a valid base64url string`)}}s(Wr,"encodeBase64url");function Jr(e,t,r){let n;try{n=JSON.parse(at.decode($e(e)))}catch{throw new t(r)}if(!ce(n))throw new t(r);return n}s(Jr,"parseJoseHeader");var zr={__proto__:null,b64:!0};function Br(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(Br,"validateAlgorithms");function Gr(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(i=>typeof i!="string"||i.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a=r===void 0?t:{__proto__:null,...r,...t};for(let i of n.crit){if(!(i in a))throw new Q(`Extension Header Parameter "${i}" is not recognized`);if(!Object.hasOwn(o,i)||o[i]===void 0)throw new e(`Extension Header Parameter "${i}" is missing`);if(a[i]&&(!Object.hasOwn(n,i)||n[i]===void 0))throw new e(`Extension Header Parameter "${i}" MUST be integrity protected`)}return n.crit}s(Gr,"validateCrit");function qr(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(qr,"validateB64");var xo=s(e=>e[Symbol.toStringTag],"tag"),Do=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 Qr(e,t,r){let{alg:n,secret:o}=e,a=r==="decrypt"||r==="sign";if(o&&t instanceof Uint8Array)return t;let i,l;if(ce(t)){if(i=$o(t),typeof i.kty!="string")throw Yr(n,t,o);if(!(o?i.kty==="oct"&&typeof i.k=="string":i.kty!=="oct"&&(a?i.kty==="AKP"&&typeof i.priv=="string"||typeof i.d=="string":i.d===void 0&&i.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 ${a?"private":"public"} JWK`);if(Do(e,i,r),i.kty==="oct")return $e(i.k);if(!Object.isFrozen(t)){let{key_ops:f}=t;Array.isArray(f)&&Object.freeze(f),Object.freeze(t)}}else{if(!No(t))throw Yr(n,t,o);let f=o?"secret":a?"private":"public";if(t.type!==f&&(o||["secret","public","private"].includes(t.type)))throw new TypeError(`${xo(t)} instances must be of type "${f}" for the ${n} algorithm`);if(Xr(t))return t;if(l=t,l.type==="secret")return l.export()}Mt||=new WeakMap;let u=t,d=Mt.get(u);if(d?.[n])return d[n];if(d||Mt.set(u,d={}),l&&typeof l.toCryptoKey=="function"){let f=l.type==="public",m=Oo[l.asymmetricKeyDetails?.namedCurve],c=e.resolve?.({crv:m,asymmetricKeyType:l.asymmetricKeyType})??e.subtle;return d[n]=l.toCryptoKey(c,f,e.usages[f?0:1])}return i??=l.export({format:"jwk"}),i.alg=n,d[n]=await $t(e,i)}s(Qr,"prepareKey");var Mt,Oo={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};var Xr=s(e=>{if(e?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return e instanceof CryptoKey}catch{return!1}},"isCryptoKey"),Lo=s(e=>e?.[Symbol.toStringTag]==="KeyObject","isKeyObject"),No=s(e=>Xr(e)||Lo(e),"isKeyLike");function Uo(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(Uo,"message");function Yr(e,t,r){let n=["CryptoKey","KeyObject","JSON Web Key"];return r&&n.push("Uint8Array"),new TypeError(Uo(`Key for the ${e} algorithm must be `,t,...n))}s(Yr,"invalidKeyType");var ft=s((e,t="algorithm.name")=>new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`),"unusable");function Mo(e,t){if(t&&!e.usages.includes(t))throw new TypeError(`CryptoKey does not support this operation, its usages must include ${t}.`)}s(Mo,"checkUsage");function Zr(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(Zr,"checkModulusLength");function Ho(e,t,r){let n=e.algorithm;if(n.name!==t.name)throw ft(t.name);if(t.hash&&n.hash?.name!==t.hash)throw ft(t.hash,"algorithm.hash");if(t.namedCurve&&n.namedCurve!==t.namedCurve)throw ft(t.namedCurve,"algorithm.namedCurve");if(t.length!==void 0&&n.length!==t.length)throw ft(t.length,"algorithm.length");Mo(e,r)}s(Ho,"checkCryptoKey");function Ht(e){return{__proto__:null,...e}}s(Ht,"snapshotJwk");function $o(e){let t=Ht(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($o,"normalizeJwk");async function $t(e,t,r){if(!e.kty.includes(t.kty))throw new Q('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),a={...t,ext:r??t.ext};return a.kty!=="AKP"&&delete a.alg,delete a.use,crypto.subtle.importKey("jwk",a,n,a.ext??!o,t.key_ops??e.usages[o?1:0])}s($t,"jwkToKey");async function en(e,t,r,n=!1){return e instanceof Uint8Array&&(e=await crypto.subtle.importKey("raw",e,t,n,[r])),Ho(e,t,r),e}s(en,"rawKey");function tn(e){let t={__proto__:null};for(let r in e)t[r]={...e[r],alg:r};return t}s(tn,"table");var Fe=[["verify"],["sign"]];function Ft(e){let t={name:"HMAC",hash:`SHA-${e}`};return{kty:["oct"],secret:!0,subtle:t,signing:t,usages:Fe}}s(Ft,"hmac");function Se(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:Fe,minRsaBits:2048}}s(Se,"rsa");function Vt(e,t){return{kty:["EC"],crv:e,subtle:{name:"ECDSA",namedCurve:e},signing:{name:"ECDSA",hash:`SHA-${t}`},usages:Fe}}s(Vt,"ecdsa");function rn(){let e={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:e,signing:e,usages:Fe}}s(rn,"eddsa");function Kt(e){let t={name:`ML-DSA-${e}`};return{kty:["AKP"],subtle:t,signing:t,usages:Fe}}s(Kt,"mldsa");var jt=tn({HS256:Ft(256),HS384:Ft(384),HS512:Ft(512),RS256:Se(256),RS384:Se(384),RS512:Se(512),PS256:Se(256,32),PS384:Se(384,48),PS512:Se(512,64),ES256:Vt("P-256",256),ES384:Vt("P-384",384),ES512:Vt("P-521",512),EdDSA:rn(),Ed25519:rn(),"ML-DSA-44":Kt(44),"ML-DSA-65":Kt(65),"ML-DSA-87":Kt(87)});function nn(e){let t=typeof e=="string"?jt[e]:void 0;if(!t)throw new Q(`alg ${e} is not supported either by JOSE or your javascript runtime`);return t}s(nn,"jwsAlgorithm");function on(e){return[e&&Br("algorithms",e.algorithms),e?.crit]}s(on,"prepareVerify");function Fo(e){return e===void 0?{}:Jr(e,F,"JWS Protected Header is invalid")}s(Fo,"parseProtectedHeader");function Vo(e){try{return be(e)}catch{throw new F("JWS Compact Serialization payload must use only ASCII characters")}}s(Vo,"encodeCompactUnencodedPayload");async function Ko(e,t,r,n,o){let{protected:a,header:i,payload:l}=e,u=o??Fo(a);if(!jr(u,i))throw new F("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let d={...u,...i},f=qr(u,Gr(F,zr,t[1],u,d)),{alg:m}=d;if(typeof m!="string"||!m)throw new F('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(t[0]&&!t[0].has(m))throw new ct('"alg" (Algorithm) Header Parameter value not allowed');if(f){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 c=f||typeof l!="string"?l:n(l),E=!1;typeof r=="function"&&(r=await r(u,e),E=!0);let p=nn(m),T=Vr(a!==void 0?be(a):new Uint8Array,be("."),typeof c=="string"?t[2]??=Wr(c,"payload",F):c),R=Ut(e.signature,"signature",F),w=await Qr(p,r,"verify"),g=await en(w,p.subtle,"verify");p.minRsaBits&&Zr(p.alg,g);let S=!1;try{S=await crypto.subtle.verify(p.signing,g,R,T)}catch{}if(!S)throw new ut;let H={payload:typeof c=="string"?Ut(c,"payload",F):c};return a!==void 0&&(H.protectedHeader=u),i!==void 0&&(H.unprotectedHeader=i),E?[{...H,key:w},f]:[H,f]}s(Ko,"verifySignature");async function sn(e,t,r){if(e instanceof Uint8Array&&(e=it.decode(e)),typeof e!="string")throw new F("Compact JWS must be a string or Uint8Array");let{0:n,1:o,2:a,length:i}=e.split(".");if(i!==3)throw new F("Invalid Compact JWS");return Ko({payload:o,protected:n,signature:a},t,r,Vo)}s(sn,"verifyCompact");var jo=s(e=>Math.floor(e.getTime()/1e3),"epoch"),Wo={s:1,m:60,h:3600,d:86400,w:604800,y:31557600},Jo=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,_e="check_failed";function Wt(){throw new TypeError("Invalid time period format")}s(Wt,"invalidDuration");function an(e){typeof e!="string"&&Wt();let t=Jo.exec(e);(!t||t[4]&&t[1])&&Wt();let r=parseFloat(t[2]),n=Math.round(r*Wo[t[3][0].toLowerCase()]);return Number.isFinite(n)||Wt(),t[1]==="-"||t[4]==="ago"?-n:n}s(an,"secs");function Jt(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}s(Jt,"validateInput");var cn=s(e=>{let t=e.toLowerCase();return e.includes("/")?t:`application/${t}`},"normalizeTyp"),zo=s((e,t)=>typeof e=="string"?t.includes(e):Array.isArray(e)?t.some(r=>e.includes(r)):!1,"checkAudiencePresence");function zt(e,t,r=!1){let n=e[t];if(!(n===void 0&&!r)){if(typeof n!="number")throw new se(`"${t}" claim must be a number`,e,t,"invalid");return n}}s(zt,"validateNumericDate");function Bt(e,t){throw new se(`unexpected "${t}" claim value`,e,t,_e)}s(Bt,"unexpectedClaim");function ln(e,t,r={}){let n;try{n=JSON.parse(at.decode(t))}catch{}if(!ce(n))throw new Re("JWT Claims Set must be a top-level JSON object");let{typ:o}=r;if(o!==void 0&&(typeof e.typ!="string"||cn(e.typ)!==cn(o)))throw new se('unexpected "typ" JWT header value',n,"typ",_e);let{requiredClaims:a=[],issuer:i,subject:l,audience:u,maxTokenAge:d}=r,f=[...a];d!==void 0&&f.push("iat"),u!==void 0&&f.push("aud"),l!==void 0&&f.push("sub"),i!==void 0&&f.push("iss");for(let g of new Set(f.reverse()))if(!Object.hasOwn(n,g))throw new se(`missing required "${g}" claim`,n,g,"missing");i!==void 0&&!(Array.isArray(i)?i:[i]).includes(n.iss)&&Bt(n,"iss"),l!==void 0&&n.sub!==l&&Bt(n,"sub"),u!==void 0&&!zo(n.aud,typeof u=="string"?[u]:u)&&Bt(n,"aud");let{clockTolerance:m}=r,c=0;if(typeof m=="string")c=an(m);else if(m!==void 0){if(typeof m!="number")throw new TypeError("Invalid clockTolerance option type");c=m}Jt("clockTolerance option",c);let{currentDate:E}=r,p=Jt("currentDate option",jo(E===void 0?new Date:E)),T=zt(n,"iat",d!==void 0),R=zt(n,"nbf");if(R!==void 0&&R>p+c)throw new se('"nbf" claim timestamp check failed',n,"nbf",_e);let w=zt(n,"exp");if(w!==void 0&&w<=p-c)throw new Me('"exp" claim timestamp check failed',n,"exp",_e);if(d!==void 0){let g=p-T,S=Jt("maxTokenAge option",typeof d=="number"?d:an(d));if(g-c>S)throw new Me('"iat" claim timestamp check failed (too far in the past)',n,"iat",_e);if(g<-c)throw new se('"iat" claim timestamp check failed (it should be in the past)',n,"iat",_e)}return n}s(ln,"validateClaimsSet");async function Gt(e,t,r){let[n,o]=await sn(e,on(r),t);if(!o)throw new Re("JWTs MUST NOT use unencoded payload");let a=ln(n.protectedHeader,n.payload,r);return{...n,payload:a}}s(Gt,"jwtVerify");function Bo(e,t,r,n){let{kty:o,key_ops:a,ext:i,kid:l,alg:u,use:d,crv:f}=e;return(i===void 0||typeof i=="boolean")&&(a===void 0||Array.isArray(a)&&a.every((m,c)=>typeof m=="string"&&a.indexOf(m)===c)&&a.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||f===t.crv)}s(Bo,"isUsableJWK");async function dn(e,t,r){let n=e.get(t)||e.set(t,{}).get(t),{alg:o}=r;if(n[o]===void 0){let a=$t(r,t,!0).then(i=>{if(i.type!=="public")throw new He("JSON Web Key Set members must be public keys");return n[o]=i,i}).catch(i=>{throw n[o]===a&&delete n[o],i});n[o]=a}return n[o]}s(dn,"importWithAlgCache");function qt(e){let t;try{t=structuredClone(e)}catch{}if(!pt(t))throw new He("JSON Web Key Set malformed");let r=t.keys.map(o=>{let a=Ht(o);return Array.isArray(a.key_ops)&&(a.key_ops=[...a.key_ops]),a}),n=new WeakMap;return Object.defineProperty(async(o,a)=>{let{alg:i,kid:l}={...o,...a?.header},u=typeof i=="string"?jt[i]:void 0;if(!u||u.secret)throw new Q('Unsupported "alg" value for a JSON Web Key Set');let d=t.keys.filter((c,E)=>Bo(r[E],u,i,l)),{0:f,length:m}=d;if(!m)throw new Ee;if(m!==1){let c=new lt;throw c[Symbol.asyncIterator]=async function*(){for(let E of d)try{yield await dn(n,E,u)}catch{}},c}return dn(n,f,u)},"jwks",{value:s(()=>structuredClone(t),"value")})}s(qt,"createLocalJWKSet");function Go(){return typeof WebSocketPair<"u"||typeof navigator<"u"&&!0||typeof EdgeRuntime<"u"&&EdgeRuntime==="vercel"}s(Go,"isCloudflareWorkers");var Yt;(typeof navigator>"u"||!"Cloudflare-Workers"?.startsWith?.("Mozilla/5.0 "))&&(Yt="jose/v6.2.12");var mt=Symbol();async function qo(e,t,r,n=fetch){let o=await n(e,{method:"GET",signal:r,redirect:"manual",headers:t}).catch(a=>{throw a.name==="TimeoutError"?new dt:a});if(o.status!==200)throw new V("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await o.json()}catch{throw new V("Failed to parse the JSON Web Key Set HTTP response as JSON")}}s(qo,"fetchJwks");var pn=Symbol();function Ve(e,t){return Number.isFinite(e)&&Date.now()<e+t}s(Ve,"isFreshFor");function un(e,t,r){if(Number.isNaN(e))throw new TypeError(`"${r}" option must not be NaN`);return typeof e=="number"?e:t}s(un,"validateDuration");function Qt(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 a=typeof o=="number"?o:5e3,i=un(n.cooldownDuration,3e4,"cooldownDuration"),l=un(n.cacheMaxAge,6e5,"cacheMaxAge"),u=new Headers(n.headers);Yt&&!u.has("User-Agent")&&u.set("User-Agent",Yt),u.has("accept")||u.set("accept","application/json, application/jwk-set+json");let d=n[mt],f=n[pn],m,c,E=0,p=0,T;if(f&&typeof f=="object"){let{uat:w,jwks:g}=f;Ve(w,l)&&pt(g)&&(m=w,T=qt(g))}let R=s(async()=>{if(c&&Go()&&(c=void 0),!c){let w=++E,g=c=qo(r,u,AbortSignal.timeout(a),d).then(S=>{let H=qt(S);if(w<=p)return;T=H;let $=Date.now();f&&(f.uat=$,f.jwks=S),m=$,p=w}).finally(()=>{c===g&&(c=void 0)})}await c},"reload");return Object.defineProperties(async(w,g)=>{(!T||!Ve(m,l))&&await R();try{return await T(w,g)}catch(S){if(S instanceof Ee&&!Ve(m,i))return await R(),T(w,g);throw S}},{coolingDown:{get:s(()=>Ve(m,i),"get"),enumerable:!0},fresh:{get:s(()=>Ve(m,l),"get"),enumerable:!0},reload:{value:R,enumerable:!0},reloading:{get:s(()=>!!c,"get"),enumerable:!0},jwks:{value:s(()=>T?.jwks(),"value"),enumerable:!0}})}s(Qt,"createRemoteJWKSet");function fn(e,t){let r=e.toLowerCase(),n=t.toLowerCase(),o=r.indexOf("*");if(o===-1)return r===n;let a=r.slice(0,o),i=r.slice(o+1);if(a.includes(".")||!i.startsWith(".")||i.includes("*")||!n.startsWith(a)||!n.endsWith(i))return!1;let l=n.slice(0,-i.length);return l.length>0&&!l.includes(".")}s(fn,"matchesHostname");function Yo(e,t){let r=t.audiences.find(n=>!n.hostname.includes("*")&&fn(n.hostname,e));return r?r.audience:t.audiences.find(n=>fn(n.hostname,e))?.audience??null}s(Yo,"resolveAccessAudience");var Xt=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=Yo(t,n);if(!o||!r||r.length>32*1024)return!1;let a=n.teamDomain.replace(/\/+$/,""),i=new URL(a);if(i.protocol!=="https:"||!i.hostname.endsWith(".cloudflareaccess.com")||i.origin!==a)return!1;let l=this.keys.get(a);l||(this.keys.size>=16&&this.keys.delete(this.keys.keys().next().value),l=Qt(new URL(`${a}/cdn-cgi/access/certs`),{timeoutDuration:1e4,[mt]:async(d,f)=>{let m=await this.request(d,{...f,redirect:"manual"});if(m.status>=300&&m.status<400)throw await m.body?.cancel(),new Error("Access key endpoint redirected.");return m}}),this.keys.set(a,l));let{payload:u}=await Gt(r,l,{issuer:a,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}}},mn=new Xt;function Ke(e){return e.slice(e.lastIndexOf("/")+1).includes(".")}s(Ke,"hasExtension");function X(e){return e==="/api"||e.startsWith("/api/")}s(X,"isApiPath");function Zt(e,t,r=!1){return X(e)?"api":t&&(!Ke(e)||r)?"ssr":null}s(Zt,"classifyDynamicRequestType");var er='system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';function tr(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}s(tr,"escapeHtml");function hn(e,t,r=!1){let n=`${e}: ${t}`,o=`${e}: `;return`<!doctype html>
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>
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>${tr(n)}</title>
6
+ <title>${sr(n)}</title>
7
7
  <style>
8
8
  :root {
9
9
  color-scheme: light;
10
- font-family: ${er};
10
+ font-family: ${or};
11
11
  background: #f5f5f5;
12
12
  color: #171717;
13
13
  }
@@ -25,7 +25,7 @@ var ro=Object.defineProperty;var s=(e,t)=>ro(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 ${er};
28
+ font: 500 16px/1.5 ${or};
29
29
  }
30
30
 
31
31
  main {
@@ -41,7 +41,7 @@ var ro=Object.defineProperty;var s=(e,t)=>ro(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 ${er};
44
+ font: 400 clamp(1.5rem, 1.2rem + 1vw, 2rem) / 1.1 ${or};
45
45
  letter-spacing: -0.03em;
46
46
  }
47
47
 
@@ -59,7 +59,7 @@ var ro=Object.defineProperty;var s=(e,t)=>ro(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>${tr(o)}</strong>${tr(t)}</h1>`}
62
+ <small>If you submitted a form, check whether it succeeded before submitting it again.</small>`:`<h1><strong>${sr(o)}</strong>${sr(t)}</h1>`}
63
63
  </main>
64
64
  </body>
65
- </html>`}s(hn,"renderDefaultErrorPage");function gn(e){let t=new Headers({"Cache-Control":"no-store","Retry-After":"30"});return ht(e)?(t.set("Content-Type","text/html; charset=utf-8"),new Response(e.method==="HEAD"?null:hn(503,"Temporarily unavailable",!0),{status:503,headers:t})):new Response(e.method==="HEAD"?null:"Platform disabled",{status:503,headers:t})}s(gn,"createMaintenanceResponse");function ht(e){if(e.method!=="GET"&&e.method!=="HEAD")return!1;let t=new URL(e.url);if(X(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(ht,"shouldServeHtmlErrorPage");function j(e,t,r,n){if(!ht(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:hn(t,r),{status:t,headers:o})}s(j,"createErrorResponse");function rr(e){let t=e;return t==="/"?t="__index__":(t=t.startsWith("/")?t.slice(1):t,t.endsWith("/")&&(t=t.slice(0,-1))),t}s(rr,"normalizeIsrPath");function Qo(e){return e==="__index__"?"/":`/${e}`}s(Qo,"denormalizeIsrPath");function Xo(e){return Qo(rr(e))}s(Xo,"canonicalIsrPathname");function Zo(e,t,r){return r!==void 0?`${e}/isr/${t}/${r}/`:`${e}/isr/`}s(Zo,"versionedIsrCachePrefix");function wn(e,t){return Zo(e,"v3",t)}s(wn,"isrCachePrefix");var An="#rw=";function je(e,t,r,n,o){let a=`${wn(e,t)}${r}/${rr(n)}`;return o?`${a}${An}${Rn(o)}`:a}s(je,"isrCacheKey");function bn(e,t,r,n){return`${wn(e,t)}${r}/${rr(n)}${An}`}s(bn,"isrCacheVariantPrefix");var es=0xcbf29ce484222325n,ts=0x100000001b3n,yn=0xffffffffffffffffn;function Rn(e){let t=new TextEncoder().encode(e),r=es;for(let n=0;n<t.length;n++)r=(r^BigInt(t[n]))&yn,r=r*ts&yn;return r.toString(16).padStart(16,"0")}s(Rn,"hashOriginalUrl");function nr(e,t,r,n,o){return rs(e,t,r,n,o?Rn(o):null)}s(nr,"isrEdgeCacheUrl");function rs(e,t,r,n,o){let a=Xo(t),i=new URL(`https://${e}${a}`);return n==="json"&&i.searchParams.set("__void","json"),i.searchParams.set("__void_isr",r),o&&i.searchParams.set("__void_orig",o),i.toString()}s(rs,"buildIsrEdgeCacheUrl");var Ie=3,Pe="x-void-shared-cache-policy";function B(e){e.set(Pe,String(Ie))}s(B,"markSharedCachePolicy");function Je(e){return e.headers.get(Pe)===String(Ie)}s(Je,"hasCurrentSharedCachePolicy");var ns=/<script\b[^>]*\bid=(["'])__VOID_PAGE_DATA__\1[^>]*>([\s\S]*?)<\/script>/i,os=new Set(["cache-control","x-isr-cache","x-void-page-data","set-cookie"]);function Te(e,t,r){let n=new URL(e);if(!n.search)return n.toString();let o=En(r,t);if(o.size===0)return n.search="",n.toString();let a=[...new Set(n.searchParams.keys())].filter(u=>o.has(u)).sort(),i=new URLSearchParams;for(let u of a)for(let d of n.searchParams.getAll(u))i.append(u,d);let l=i.toString();return n.search=l?`?${l}`:"",n.toString()}s(Te,"buildVariantOriginalUrl");function or(e,t,r){let n=new URL(e);if(!n.search)return!1;let o=En(r,t);for(let a of n.searchParams.keys())if(!o.has(a))return!0;return!1}s(or,"hasUnlistedQueryParams");function sr(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(sr,"exactQueryAllowlist");function En(e,t){if(!e)return new Set;for(let[r,n]of Object.entries(e))if(ue(r,t))return new Set(n);return new Set}s(En,"resolveQueryAllowlist");function ir(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(ir,"packIsrValue");function Sn(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 a={};for(let[i,l]of Object.entries(o)){if(typeof l!="string")return null;a[i]=l}return{headers:a,body:e.slice(4+r)}}catch{return null}}s(Sn,"unpackIsrValue");function _n(e,t){if(!e||!t)return null;let r=Sn(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!==Ie)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(_n,"decodeIsrCacheEntry");function ar(e,t=Date.now()){return t-e.createdAt>e.ttl*1e3}s(ar,"isStale");function cr(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 B(n),new Response(e.body,{status:e.status,headers:n})}s(cr,"isrCacheResponse");function Ce(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(Ce,"resolveRevalidateTtl");function ss(e){return e.headers.get("Accept")?.toLowerCase().split(",").some(t=>t.split(";",1)[0]?.trim()==="text/event-stream")??!1}s(ss,"acceptsEventStream");function ze(e){return e.headers.has("Cookie")||e.headers.has("Authorization")||e.headers.has("Cf-Access-Jwt-Assertion")||ss(e)}s(ze,"shouldBypassIsr");function gt(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(gt,"isFrameworkDocumentRequest");function ie(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(ie,"hasSharedCacheOptOut");function We(e,t){if(e==null)return 0;if(typeof e=="number")return e;for(let[r,n]of Object.entries(e))if(G(r,t))return n;return 0}s(We,"resolvePathTtl");function Be(e,t,r,n){if(e){for(let o of e)if(G(o.pattern,n))return o.revalidate===void 0?We(r,n):o.revalidate>0?o.revalidate:0}return We(t,n)}s(Be,"resolvePageTtl");function lr(e){let t={};return e.headers.forEach((r,n)=>{os.has(n.toLowerCase())||(t[n]=r)}),t}s(lr,"serializeHeaders");function yt(e){try{let t=JSON.parse(e);return t.deferred===void 0&&t.deferredKeys===void 0?e:null}catch{return null}}s(yt,"normalizePageDataForJsonCache");function dr(e){let t=e.match(ns);return t?yt(t[2]):null}s(dr,"extractPageDataFromHtml");async function Pn(e,t,r,n,o,a){let i=je(t,r,n,o,a);try{let{value:l,metadata:u}=await e.ISR_CACHE.getWithMetadata(i,"arrayBuffer");return _n(l,u)}catch{return null}}s(Pn,"readIsrCache");async function ur(e,t,r,n,o,a){let i=je(t,r,n,o,a);await e.ISR_CACHE.delete(i)}s(ur,"deleteIsrCache");async function wt(e,t,r,n,o,a,i,l){let u=je(t,r,n,o,l),d=a.clone(),f=lr(d),m=d.status;if(l&&!await is(e,t,r,n,o,u))return;let c=await d.arrayBuffer(),E=ir(f,c);await e.ISR_CACHE.put(u,E,{metadata:{s:m,c:Date.now(),t:i,p:Ie}})}s(wt,"writeIsrCache");async function is(e,t,r,n,o,a){let i=bn(t,r,n,o),l=await e.ISR_CACHE.list({prefix:i,limit:1e3});return l.keys.length<Lr?!0:l.keys.some(u=>u.name===a)}s(is,"isVariantWriteAllowed");function Tn(e,t,r){return e.revalidate===void 0?We(t,r):e.revalidate>0?e.revalidate:0}s(Tn,"matchedPageTtl");function as(e){return!/[:{*]/.test(e)}s(as,"isLiteralPattern");function Cn(e,t,r){if(!e)return!1;for(let n of e)if(G(n.pattern,t))return as(n.pattern)&&Tn(n,r,t)>0;return!1}s(Cn,"matchesLiteralPage");function In(e){return e.includes("*")||e.includes("{.+}")}s(In,"isBroadCatchAll");function vn(e,t,r,n){if(e&&e.length>0){for(let o of e)if(G(o.pattern,n))return Tn(o,r,n)>0&&!In(o.pattern)}if(t&&typeof t=="object"){for(let[o,a]of Object.entries(t))if(G(o,n))return a>0&&!In(o)}return!1}s(vn,"isDottedPathIsrEligible");function kn(e,t,r,n){return new Request(nr(new URL(e.url).hostname,t,r,"html",n),{method:"GET"})}s(kn,"isrEdgeCacheKey");function pr(e,t,r,n){return new Request(nr(new URL(e.url).hostname,t,r,"json",n),{method:"GET"})}s(pr,"isrEdgeCacheKeyJson");async function xn(e,t,r){let n=new Headers({"Cache-Control":"no-store",Vary:"Accept, Sec-Fetch-Dest, X-VoidPages"}),o=Lt(t),a=o.headers.get("retry-after");if(a&&n.set("Retry-After",a),e.headers.get("X-VoidPages")==="true"||!ht(e))return n.set("Content-Type","application/json"),new Response(e.method==="HEAD"?null:o.body,{status:429,headers:n});try{let i=await r?.();if(i?.ok&&i.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 i.body?.cancel(),new Response(e.method==="HEAD"?null:i.body,{status:429,headers:n});await i?.body?.cancel()}catch{}return j(e,429,t.message,n)}s(xn,"createLimitResponse");var Dn=Ur,cs="__void:usage-signing-key:v1",Gc=11520*6e4,On=new TextEncoder;function ls(e){let t="";for(let r of new Uint8Array(e))t+=String.fromCharCode(r);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}s(ls,"base64url");async function ds(e,t){let r=await crypto.subtle.importKey("raw",On.encode(t),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return crypto.subtle.sign("HMAC",r,On.encode(e))}s(ds,"hmac");async function Ln(e){return e.get(cs,{cacheTtl:60})}s(Ln,"readUsageSigningKey");function us(e,t,r,n){return JSON.stringify([e,t,r,n])}s(us,"signedPayload");async function Nn(e,t,r,n){return{version:Dn,source:t,eventId:r,event:n,signature:ls(await ds(us(Dn,t,r,n),e))}}s(Nn,"signUsageEvent");function Mn(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(Mn,"recordRequest");function ps(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(ps,"splitWorkerName");var fs=2048,ms=1024;function Un(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(Un,"truncateUtf8");function Hn(e,t){if(!t.workerName)return;let r=ps(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} ${Un(n,ms)} 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()}]),"[]",Un(t.url,fs),t.method,String(t.status),r.deployId],doubles:[Date.now(),t.status]})}catch{}}s(Hn,"recordPlatformLog");async function $n(e,t){let r=await Ln(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 Nn(r,"dispatch",n,t))}s($n,"sendUsageEvent");var fr="__void/platform/disabled/v1",mr="disabled";var Fn="void.app";function Vn(e,t=Fn){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(Vn,"extractSlug");async function Kn(e,t){let r=Ae(t);if(!(!!r.workersDev&&e.endsWith(`.${r.workersDev.subdomain}.workers.dev`)))return{slug:Vn(e,t.BASE_HOSTNAME),workersDev:!1};let o=await t.ROUTING.get(Mr(e));if(o){let a=JSON.parse(o);if($r(a,r.workersDev)===e)return{slug:a.slug,projectId:a.id,workersDev:!0}}return{slug:null,workersDev:!0}}s(Kn,"resolveProjectHostname");function hr(e){return new URL(typeof e=="string"||e instanceof URL?e:e.url).hostname.endsWith(".workers.dev")}s(hr,"isTestHostname");var Z={async match(e,t){return hr(e)?void 0:caches.default.match(e,t)},async put(e,t){hr(e)||await caches.default.put(e,t)},async delete(e,t){return hr(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 me(e,t,r){if(!(t>0)||!Number.isFinite(t))return e;let n=null,o=new Promise((a,i)=>{n=setTimeout(()=>{i(new M(r))},t)});return Promise.race([e,o]).finally(()=>{clearTimeout(n)})}s(me,"withTimeout");async function gr(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(b){return{ok:!1,error:b}}},"run"),a=[],i=s(()=>{let b={id:a.length+1,promise:o()};return a.push(b),b},"startAttempt"),l=null,u=r?new Promise(b=>{l=setTimeout(()=>b({kind:"hedge"}),t.delayMs)}):null,d=null,f=n?new Promise(b=>{d=setTimeout(()=>b({kind:"timeout"}),t.timeoutMs)}):null,m=s(()=>{clearTimeout(l),clearTimeout(d)},"clearTimers"),c=s(b=>{b.promise.then(async W=>{W.ok&&W.value!==null&&await t.discard?.(W.value)}).catch(()=>{})},"discardAttempt"),E=s(b=>{m();for(let W of a)W.id!==b&&c(W)},"finish"),p=s(()=>{throw E(),new M(t.label)},"timeout"),T=s(b=>b.promise.then(W=>({kind:"attempt",attempt:b,outcome:W})),"waitForAttempt"),R=i(),w=await Promise.race([T(R),...u?[u]:[],...f?[f]:[]]);if(w.kind==="timeout")return p();if(w.kind==="attempt"){if(clearTimeout(l),w.outcome.ok)return E(R.id),w.outcome.value;if(!r)throw E(),w.outcome.error;t.onHedge?.();let b=i(),W=await Promise.race([T(b),...f?[f]:[]]);if(W.kind==="timeout")return p();if(E(b.id),W.outcome.ok)return W.outcome.value;throw W.outcome.error}t.onHedge?.();let g=i(),S=await Promise.race([T(R),T(g),...f?[f]:[]]);if(S.kind==="timeout")return p();if(S.outcome.ok&&S.outcome.value!==null)return E(S.attempt.id),S.outcome.value;let H=S.attempt.id===R.id?g:R,$=await Promise.race([T(H),...f?[f]:[]]);if($.kind==="timeout")return p();if($.outcome.ok&&$.outcome.value!==null)return E(H.id),$.outcome.value;if(E(),S.outcome.ok||$.outcome.ok)return null;throw S.outcome.error}s(gr,"withDelayedHedge");function jn(e,t=1e4){return e===void 0?t:Number(e)}s(jn,"resolveTimeoutMs");async function gs(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(gs,"isProjectSuspended");var ys="public, max-age=0, must-revalidate",Qn=1e3,ve=300,Wn=3600,ws=120,ae="platform-static-asset-timeout",le="platform-static-asset-error",ge="platform-static-asset-missing",As=86400;function bs(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(bs,"platformHealthExceptionPath");function Rt(e,t){return new Response(null,{status:e,headers:{"X-Void-Timeout":t,...e===503?{"Retry-After":"5"}:{}}})}s(Rt,"timeoutResponse");function Ge(e){return e===ae?Rt(503,"static-asset"):new Response(null,{status:503,headers:{"X-Void-Storage-Error":e===ge?"static-asset-missing":"static-asset-read","Retry-After":"5"}})}s(Ge,"staticAssetFailureResponse");function ye(e){return e.headers.get("content-type")?.toLowerCase().split(";",1)[0]?.trim()==="text/html"}s(ye,"isHtmlResponse");function Rs(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 B(n.headers),n}s(Rs,"jsonCacheResponse");async function wr(e,t,r,n,o){let a=r.headers.get("x-void-page-data"),i=a?yt(a):dr(await r.clone().text());i&&await e.put(t,Rs(i,n,o))}s(wr,"populateJsonEdgeCache");async function Jn(e,t){await Promise.all([ur(e,t.projectId,t.deploymentId,t.host,t.pathname,t.originalUrl),Z.delete(t.htmlKey),Z.delete(t.jsonKey)])}s(Jn,"deleteSharedIsrEntry");async function Ar(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=ne(e.pathname,e.routing.fallbackRules,e.url.hostname);if(r?.type!=="rewrite")return t;let n=e.originalUrlHeader??e.originalRequestUrl,o=e.originalUrlVariant??Te(e.originalRequestUrl,e.pathname,e.routing.queryAllowlist),a=new URL(e.url.toString());a.pathname=r.destination;let i=ke(e.dispatchReq,a.toString(),l=>l.set("X-Void-Original-URL",n));return{response:e.deadline===void 0?await e.worker.fetch(i):await me(e.worker.fetch(i),z(e.deadline.startedAt,e.deadline.timeoutMs,"dispatch"),"dispatch"),pathname:r.destination,originalUrlVariant:o,applied:!0}}s(Ar,"applyWorkerFallbackRules");function Es(e,t,r,n,o){if(o)return o;let a=Te(e,t,n.queryAllowlist);return(n.fallbackRules?.length?ne(t,n.fallbackRules,r):void 0)?.type==="rewrite"||new URL(a).search?a:void 0}s(Es,"buildFallbackOriginalUrlVariant");function yr(e,t,r){let n=ne(e,t.fallbackRules,r);return n?.type==="rewrite"?n.destination:void 0}s(yr,"resolveCachedWfpFallbackPathname");var Ss="Assets have not yet been deployed to this script";function _s(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(_s,"isLikelyCfAssetStub");function z(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(z,"remainingTimeoutBudget");function Xn(e){return e>0&&Number.isFinite(e)?Math.min(Qn,e/2):0}s(Xn,"staticAssetHedgeDelayMs");async function qe(e,t,r,n){let o=Xn(n);try{let a=await gr(()=>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 a?JSON.parse(a):null}catch(a){throw console.error(JSON.stringify({event:a instanceof M?"wfp-asset-manifest-timeout":"wfp-asset-manifest-read-error",projectId:r,deploymentId:t,error:a instanceof M?void 0:a instanceof Error?a.message:String(a),ts:Date.now()})),a instanceof M?a:new te(a)}}s(qe,"fetchAssetManifest");async function Is(e,t,r,n=1e4,o){if(!t.assetManifestId)return null;let a=Date.now(),i=await qe(e,t.assetManifestId,t.projectId,z(a,n));if(!i)return null;let l=t.assetConfig??{not_found_handling:"none"},u=r,d=pe(r,i,l);if((!d||d.notFound)&&o&&o!==r){let m=pe(o,i,l);m&&!m.notFound&&(d=m,u=o)}if(!d)return null;if(d.redirect)return{response:new Response(null,{status:308,headers:{Location:d.redirect}}),pathname:u};let f=await At(e,d.hash,d.path,t.projectId,t.assetManifestId,z(a,n));return f?{response:new Response(f.body,{status:d.notFound?404:200,headers:f.headers}),pathname:u}:null}s(Is,"serveWfpAssetFallback");function Ps(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(Ps,"logWfpAssetFallback");async function ee(e){let t=e.deadline?.startedAt??Date.now(),r=e.deadline?.timeoutMs??e.timeoutMs??1e4;if(K(e.response))return{response:e.response,pathname:e.pathname};if(!_s(e.response))return{response:e.response,pathname:e.pathname};let n=!1,o;try{if(!(await me(e.response.clone().text(),z(t,r),"static-asset")).includes(Ss))return{response:e.response,pathname:e.pathname};n=!0,o=await Is(e.env,e.routing,e.pathname,z(t,r),e.fallbackPathname)}catch(a){if(a instanceof M)return n?{response:Ge(ae),failureKind:ae,pathname:e.pathname}:{response:Rt(503,"dispatch"),pathname:e.pathname};if(a instanceof te)return{response:Ge(le),failureKind:le,pathname:e.pathname};throw a}return o?(Ps(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:Ge(ge),failureKind:ge,pathname:e.pathname})}s(ee,"maybeServeWfpAssetFallback");function ke(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(ke,"rebuildRequest");var Zn={async fetch(e,t,r,n=!1){t=await Hr(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(`${Nt}.`)&&o.hostname===Fr(Ae(t))&&bs(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(fr)===mr)return gn(e);let a=Date.now(),i=jn(t.DISPATCH_TIMEOUT_MS);if(o.pathname.startsWith("/__void/")||o.pathname==="/__scheduled"||o.pathname==="/__queue")return j(e,404,"Not Found");let l=await Kn(o.hostname,t),u=l.slug;if(l.workersDev&&!l.projectId)return j(e,404,"Not Found");let d=u??`domain:${o.hostname}`,f=await t.ROUTING.get(n?"preview:"+d:d,{cacheTtl:60}),m=n;if(!f&&!n&&u?.startsWith("preview-")&&(f=await t.ROUTING.get("preview:"+d,{cacheTtl:60}),m=!0),!f)return j(e,404,"Not Found",{"Cache-Control":"public, max-age=30"});let c=JSON.parse(f);if(!n&&(c.privatePreview||m)){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(l.projectId&&l.projectId!==c.projectId)return j(e,404,"Not Found");if(c.zeroTrust&&!await mn.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 E=s(y=>xn(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 C=c.staticDeploymentId??c.assetManifestId;if(!C)return null;let x=y==="requests"?"/usage-limit.html":"/execution-limit.html",h=(await qe(t,C,c.projectId,2e3))?.[x];return h?At(t,h,x,c.projectId,C,2e3):null}),"limitResponse");if(c.suspended==="requests_exceeded")return E("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=ke(e,e.url,y=>y.delete("X-Void-Original-URL")));let p=o.pathname,T,R=e.headers.get("upgrade")?.toLowerCase()==="websocket"?"websocket":"static",w=s((y,C)=>{let x=K(y)?0:Number(y.headers.get("content-length")??0);Mn(t,{projectId:c.projectId,type:R,method:e.method,status:y.status,responseBytes:x,durationMs:Date.now()-a,slug:u??o.hostname,...C&&{failureKind:C}}),c.userId&&r.waitUntil($n(t,{projectId:c.projectId,userId:c.userId,slug:u??o.hostname,requests:1,responseBytes:x,...y.status>=500&&{status:y.status},...C&&{failureKind:C}}));let D=new Response(y.body,y);return D.headers.delete("X-Void-No-Match"),D.headers.delete(Pe),D.headers.set("X-Hosted-By","void.cloud"),D},"meter"),g=s(y=>w(Ge(y),y),"meterStaticAssetFailure"),S=s(()=>(Hn(t,{workerName:c.workerName,method:e.method,url:e.url,status:503,timeoutMs:i}),w(Rt(503,"dispatch"))),"meterWorkerTimeout"),H,$;if(c.redirectRules?.length){let y=ne(p,c.redirectRules,o.hostname);if(y?.type==="redirect"){let C=Le(y.destination,o.search);return w(new Response(null,{status:y.status,headers:{Location:C}}))}y?.type==="rewrite"&&($=e.url,H=Te(e.url,p,c.queryAllowlist),p=y.destination,o.pathname=p)}let b=e;if($&&(b=ke(e,o.toString(),y=>y.set("X-Void-Original-URL",$))),c.hashedAssetsPrefix&&Rr(e)){let y="/"+c.hashedAssetsPrefix+"/";if(p.startsWith(y)){let C=new URL(o.toString());C.search="",C.searchParams.set("_p",c.projectId);let x=new Request(C.toString()),D=["cache-control","content-type","content-encoding","content-length","content-range","accept-ranges","transfer-encoding"],h=s((_,v)=>{let O=q(_,p,c.headerRules);if(O!==_)for(let I of D){let k=_.headers.get(I);k===null?O.headers.delete(I):O.headers.set(I,k)}return w(O,v)},"finalizeAsset"),N=Z,U=await N.match(x);if(U?.headers.get("Cache-Control")?.includes("immutable")&&Yn(U)){if(!c.staticDeploymentId){let _=await ee({env:t,routing:c,pathname:p,response:U,userAgent:e.headers.get("user-agent"),timeoutMs:i});if(_.response!==U){if(he(_.response)){let v=new Response(_.response.body,_.response);v.headers.set("Cache-Control","public, max-age=31536000, immutable"),B(v.headers);let O=v.clone();return r.waitUntil(N.delete(x).then(()=>N.put(x,O))),h(v,_.failureKind)}return r.waitUntil(N.delete(x)),h(_.response,_.failureKind)}}return h(U)}if(U&&await N.delete(x),c.staticDeploymentId){let _=Date.now(),v;try{v=await qe(t,c.staticDeploymentId,c.projectId,z(_,i))}catch(A){if(A instanceof M)return g(ae);if(A instanceof te)return g(le);throw A}if(!v)return g(ge);let O=p,I=v[p];if(!I){let A=we(p);A!==p&&v[A]&&(O=A,I=v[A])}let k;if(I)try{let A=await At(t,I,O,c.projectId,c.staticDeploymentId,z(_,i));if(!A)return Bn(c,O,I),g(ge);k=A}catch(A){if(A instanceof M)return g(ae);if(A instanceof te)return g(le);throw A}else k=j(e,404,"Not Found");if(he(k)){let A=new Response(k.body,k);return A.headers.set("Cache-Control","public, max-age=31536000, immutable"),B(A.headers),r.waitUntil(N.put(x,A.clone())),h(A)}return h(k)}try{let _=bt(t,c),v=Date.now(),O=await me(_.fetch(b),z(v,i),"static-asset"),I=await ee({env:t,routing:c,pathname:p,response:O,userAgent:e.headers.get("user-agent"),deadline:{startedAt:v,timeoutMs:i}});O=I.response;let k=I.failureKind;if(he(O)){let A=new Response(O.body,O);return A.headers.set("Cache-Control","public, max-age=31536000, immutable"),B(A.headers),r.waitUntil(N.put(x,A.clone())),h(A,k)}return h(O,k)}catch(_){if(_ instanceof M)return g(ae);if(_ instanceof Error&&_.message.includes("Worker exceeded"))return w(await E("execution"));throw _}}}if(c.ssr===!0&&(c.type!=="framework"||gt(e))&&vs(p,c.pages,c.revalidate,c.pathRevalidate)&&(c.revalidate||c.pages?.length)){let y=Be(c.pages,c.revalidate,c.pathRevalidate,p);if(y>0&&e.method==="GET"&&!e.headers.has("Range")&&!ze(e)){let C=e.headers.has("X-VoidPages"),x=c.version??"legacy",D=Z,h=Es(e.url,p,o.hostname,c,H),N=or(e.url,new URL(e.url).pathname,c.queryAllowlist),U=kn(e,p,x,h),_=pr(e,p,x,h);if(T={projectId:c.projectId,deploymentId:x,host:o.hostname,pathname:p,originalUrl:h,htmlKey:U,jsonKey:_},C){let v=await D.match(_);if(v&&Je(v))return R="isr",w(Y(v));v&&await D.delete(_)}else{let v=s(async()=>{await Jn(t,T)},"purgePoisonedIsrEntry"),O=await D.match(U);if(O&&Je(O)){R="isr";let L=await ee({env:t,routing:c,pathname:p,response:O,userAgent:e.headers.get("user-agent"),timeoutMs:i,fallbackPathname:yr(p,c,o.hostname)});return L.response!==O?(r.waitUntil(v()),w(L.response.ok?Y(L.response):L.response,L.failureKind)):w(Y(O))}O&&await D.delete(U);let I=await Pn(t,c.projectId,x,o.hostname,p,h);if(I){let L=ar(I),J=cr(I,L),de=await ee({env:t,routing:c,pathname:p,response:J,userAgent:e.headers.get("user-agent"),timeoutMs:i,fallbackPathname:yr(p,c,o.hostname)});if(de.response!==J)return r.waitUntil(v()),R="isr",w(de.response.ok?Y(de.response):de.response,de.failureKind);if(L){let De=J.clone(),Ze=b;if(N){let et=new URL(b.url);et.search=h?new URL(h).search:"",Ze=ke(b,et.toString(),to=>{$&&h&&to.set("X-Void-Original-URL",h)})}r.waitUntil(Cs(t,c,Ze,o.hostname,p,y,U,_,I.createdAt+I.ttl*1e3,h,i).then(async et=>{et||await D.put(U,De)}))}return R="isr",L||r.waitUntil(D.put(U,J.clone())),w(Y(J))}R="isr";let k=bt(t,c),A=Date.now(),P;try{P=await me(k.fetch(b),z(A,i,"dispatch"),"dispatch")}catch(L){if(L instanceof M)return S();throw L}let re=K(P),Xe,St=p,_t=!1;if(!re){let L=await ee({env:t,routing:c,pathname:p,response:P,userAgent:e.headers.get("user-agent"),deadline:{startedAt:A,timeoutMs:i}});P=L.response,Xe=L.failureKind,re=K(P)}if(!re){let L;try{L=await Ar({response:P,worker:k,dispatchReq:b,routing:c,pathname:p,url:o,originalRequestUrl:e.url,originalUrlHeader:$,originalUrlVariant:h,deadline:{startedAt:A,timeoutMs:i}})}catch(J){if(J instanceof M)return S();throw J}if(L.applied&&(_t=!0,St=L.pathname,P=L.response,re=K(P),!re)){let J=await ee({env:t,routing:c,pathname:L.pathname,response:P,userAgent:e.headers.get("user-agent"),deadline:{startedAt:A,timeoutMs:i}});P=J.response,Xe=J.failureKind,re=K(P)}}if(re)return w(P);let xe=Ce(P,y);if(!N&&xe>0&&P.status===200&&(c.type!=="framework"||ye(P))&&!X(St)&&!ie(P)&&(!_t||br(c.pages,St,P,c.pathRevalidate))){r.waitUntil(wt(t,c.projectId,x,o.hostname,p,P,xe,h)),r.waitUntil(wr(D,_,P,xe,"HIT"));let L=new Headers(P.headers);L.set("Cache-Control",`public, s-maxage=${xe}, max-age=0, must-revalidate`),L.set("x-isr-cache","MISS"),B(L),L.delete("x-void-page-data"),L.delete("set-cookie");let J=new Headers(L);J.set("x-isr-cache","HIT");let de=new Response(P.clone().body,{status:P.status,headers:J});r.waitUntil(D.put(U,de.clone()));let De=new Headers(L);De.set("Cache-Control",ys),De.delete(Pe);let Ze=new Response(P.body,{status:P.status,headers:De});return w(Ze,Xe)}return P.status===200&&!_t&&(xe===0||ie(P)||c.type==="framework"&&!ye(P))&&r.waitUntil(v()),w(P,Xe)}}}let Ye=p,Et=ks(e,Ye,c)?await xs(t,Ye,c,i):void 0,eo=Et===!0,Qe;if(eo){let y=new URL(Te(e.url,new URL(e.url).pathname,sr(c.queryAllowlist)));y.searchParams.set("_v",String(c.version));let C=new Request(y.toString());Qe=C;let x=Z,D=await x.match(C);if(D&&Yn(D)){if(R="static",!c.staticDeploymentId){let h=await ee({env:t,routing:c,pathname:p,response:D,userAgent:e.headers.get("user-agent"),timeoutMs:i,fallbackPathname:yr(p,c,o.hostname)});if(h.response!==D){if(he(h.response)){let N=q(h.response,h.pathname,c.headerRules),U=new Response(N.clone().body,N);U.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),B(U.headers);let _=U.clone();return r.waitUntil(x.delete(C).then(()=>x.put(C,_))),w(Y(N))}return r.waitUntil(x.delete(C)),w(h.response,h.failureKind)}}return w(Y(D))}D&&await x.delete(C)}if(c.staticDeploymentId){let y=Date.now(),C;try{C=await qe(t,c.staticDeploymentId,c.projectId,z(y,i))}catch(I){if(I instanceof M)return g(ae);if(I instanceof te)return g(le);throw I}if(!C)return g(ge);let x=c.assetConfig??{},D=p,h=pe(p,C,x);if((!h||h.notFound)&&c.fallbackRules?.length){let I=ne(p,c.fallbackRules,o.hostname);I?.type==="rewrite"&&(p=I.destination,o.pathname=p,h=pe(p,C,x))}if(!h)return w(j(e,404,"Not Found"));if(h.redirect)return w(new Response(null,{status:308,headers:{Location:h.redirect}}));let N;try{N=await At(t,h.hash,h.path,c.projectId,c.staticDeploymentId,z(y,i))}catch(I){if(I instanceof M)return w(Rt(h.notFound?404:503,"static-asset"),h.notFound?void 0:ae);if(I instanceof te)return w(h.notFound?j(e,404,"Not Found"):Ge(le),h.notFound?void 0:le);throw I}if(!N)return h.notFound?w(j(e,404,"Not Found")):(Bn(c,h.path,h.hash),g(ge));let U=h.notFound?404:200,_=new Response(N.body,{status:U,headers:N.headers}),v=q(_,p,c.headerRules),O=Qe??(Rr(e)?new Request(`${o.origin}${D}?_v=${c.staticDeploymentId}`):void 0);if(O&&he(v)){let I=new Response(v.clone().body,v);I.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),B(I.headers),r.waitUntil(Z.put(O,I.clone()))}return w(Y(v))}let Er=bt(t,c);try{let y=b;y.bodyUsed&&(y=ke(y,y.url,()=>{}));let x=y.method!=="GET"&&y.method!=="HEAD"&&c.fallbackRules?.length?y.clone():y,D=Date.now(),h=await me(Er.fetch(y),z(D,i,"dispatch"),"dispatch"),N=K(h),U;if(!N){let k=await ee({env:t,routing:c,pathname:p,response:h,userAgent:e.headers.get("user-agent"),deadline:{startedAt:D,timeoutMs:i}});h=k.response,U=k.failureKind,N=K(h)}let _=!1;if(!N){let k=await Ar({response:h,worker:Er,dispatchReq:x,routing:c,pathname:p,url:o,originalRequestUrl:e.url,originalUrlHeader:$,originalUrlVariant:H,deadline:{startedAt:D,timeoutMs:i}});if(k.applied&&(_=!0,p=k.pathname,o.pathname=p,H=k.originalUrlVariant,h=k.response,N=K(h),!N)){let A=await ee({env:t,routing:c,pathname:p,response:h,userAgent:e.headers.get("user-agent"),deadline:{startedAt:D,timeoutMs:i}});h=A.response,U=A.failureKind,N=K(h)}}if(T&&h.status===200&&!_&&(Ce(h,Be(c.pages,c.revalidate,c.pathRevalidate,T.pathname))===0||ie(h)||c.type==="framework"&&!ye(h))&&r.waitUntil(Jn(t,T)),Qe&&!_&&he(h)){let k=new Response(h.body,h);k.headers.delete("x-void-page-data");let A=q(k,p,c.headerRules),P=new Response(A.clone().body,A);return P.headers.set("Cache-Control","public, s-maxage=31536000, max-age=0, must-revalidate"),B(P.headers),r.waitUntil(Z.put(Qe,P.clone())),w(Y(A),U)}let v=p===Ye?Et:void 0,O=!U&&qn(c,v)&&(v===!1||h.status>=500),I=Zt(p,c.ssr,O);if(I&&(R=I),(c.revalidate||c.pages?.length)&&!N&&!e.headers.has("X-VoidPages")&&e.method==="GET"&&!e.headers.has("Range")&&(c.type!=="framework"||gt(e))&&!ze(e)){let k=Be(c.pages,c.revalidate,c.pathRevalidate,p),A=k>0?Ce(h,k):0;if(A>0&&h.status===200&&c.ssr&&!X(p)&&!Ke(p)&&(c.type!=="framework"||ye(h))&&!ie(h)&&(!_||br(c.pages,p,h,c.pathRevalidate))){let P=c.version??"legacy";r.waitUntil(wt(t,c.projectId,P,o.hostname,p,h,A,H));let re=pr(e,p,P,H);r.waitUntil(wr(Z,re,h,A,"HIT"))}}if(h.headers.has("x-void-page-data")){let k=new Response(h.body,h);return k.headers.delete("x-void-page-data"),w(q(k,p,c.headerRules),U)}return w(q(h,p,c.headerRules),U)}catch(y){if(y instanceof M){if(y.label==="static-asset")return g(ae);let C=Zt(p,c.ssr,qn(c,p===Ye?Et:void 0));return C&&(R=C),S()}if(y instanceof te)return g(le);if(y instanceof Error&&y.message.includes("Worker exceeded"))return w(await E("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 ${ve}s`),e.retryAll({delaySeconds:ve});return}if(t.PLATFORM_INSTALLATION_ID){let d;try{d=await t.ROUTING.get(fr)}catch(f){let m=f instanceof Error?f.message:String(f);console.error(`[queue-relay] platform traffic gate read failed; retrying queue="${e.queue}" in ${ve}s error=${JSON.stringify(m)}`),e.retryAll({delaySeconds:ve});return}if(d===mr){console.warn(`[queue-relay] platform traffic is disabled; retrying queue="${e.queue}" in ${ve}s`),e.retryAll({delaySeconds:ve});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:a,proxyToken:i}=JSON.parse(r);if(o&&await gs(t,o)){console.warn(`[queue-relay] project suspended; retrying queue="${e.queue}" in ${Wn}s`),e.retryAll({delaySeconds:Wn});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:a,messages:l}),f={"Content-Type":"application/json"};i&&(f["x-void-internal"]=i);let m=await u.fetch(new Request("https://internal/__void/queue",{method:"POST",headers:f,body:d}));if(m.status===404&&(m=await u.fetch(new Request("https://internal/__queue",{method:"POST",headers:f,body:d}))),!m.ok){let p="";try{p=(await m.clone().text()).slice(0,200)}catch{}console.error(`[queue-relay] relay failed queue="${a}" worker="${n}" status=${m.status} body=${JSON.stringify(p)}`),m.status===401||m.status===403?e.retryAll({delaySeconds:ws}):e.retryAll();return}let c;try{c=await m.json()}catch{e.ackAll();return}if(!c.decisions){c.ok!==!1?e.ackAll():e.retryAll();return}let E=new Map(e.messages.map(p=>[p.id,p]));for(let[p,T]of Object.entries(c.decisions)){let R=E.get(p);R&&(T.action==="ack"?R.ack():T.action==="retry"&&R.retry(T.delaySeconds!=null?{delaySeconds:T.delaySeconds}:void 0))}c.ok===!1&&e.retryAll()}catch(d){let f=d instanceof Error?d.message:String(d);console.error(`[queue-relay] relay threw queue="${a}" worker="${n}" error=${JSON.stringify(f)}`),e.retryAll()}}},Ll=Zn,zn=class extends hs{static{s(this,"PreviewDispatcher")}fetch(t){return Zn.fetch(t,this.env,this.ctx,!0)}},te=class extends Error{static{s(this,"StaticAssetReadError")}constructor(t){super("Static asset storage read failed",{cause:t}),this.name="StaticAssetReadError"}};function Bn(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(Bn,"logStaticAssetMissing");async function At(e,t,r,n,o,a=1e4){let i=Xn(a),l=Date.now(),u=!1;try{let d=await gr(()=>Ts(e,t,r,n),{delayMs:i,timeoutMs:a,label:"static-asset",discard:s(async f=>{await f.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:i,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 te(d)}}s(At,"fetchStaticAsset");async function Ts(e,t,r,n){let o=t.startsWith("!"),a=o?t.slice(1):t,i=n?`assets/${n}/${a}`:null,l=`assets/${a}`;if(o){let d=i?await e.STATIC_ASSETS_R2.get(i)??await e.STATIC_ASSETS_R2.get(l):await e.STATIC_ASSETS_R2.get(l);if(!d)return null;let f=Ne(d.httpMetadata?.contentType,r),m={ETag:d.httpEtag,...d.size?{"Content-Length":String(d.size)}:{}};return f&&(m["Content-Type"]=f),new Response(d.body,{headers:m})}let u=s(async d=>{let{value:f,metadata:m}=await e.STATIC_ASSETS.getWithMetadata(d,{type:"arrayBuffer",cacheTtl:86400});if(!f)return null;let c=Ne(m?.ct,r),E={"Content-Length":String(f.byteLength)};return c&&(E["Content-Type"]=c),new Response(f,{headers:E})},"readKvAsset");return(i?await u(i):null)??u(l)}s(Ts,"fetchStaticAssetOnce");function bt(e,t){return t.limits?e.DISPATCH.get(t.workerName,{},{limits:t.limits}):e.DISPATCH.get(t.workerName)}s(bt,"getWorker");async function Cs(e,t,r,n,o,a,i,l,u,d,f=1e4){try{let m=bt(e,t),c=Date.now(),E=ke(r,r.url,b=>b.delete("X-VoidPages")),p=await me(m.fetch(E),z(c,f,"dispatch"),"dispatch");if(K(p))return!1;let T=p.status,R=await Ar({response:p,worker:m,dispatchReq:E,routing:t,pathname:o,url:new URL(E.url),originalRequestUrl:r.url,originalUrlHeader:r.headers.get("X-Void-Original-URL")??void 0,originalUrlVariant:d??void 0,deadline:{startedAt:c,timeoutMs:f}});if(p=R.response,K(p)||(p=(await ee({env:e,routing:t,pathname:R.pathname,response:p,userAgent:r.headers.get("user-agent"),deadline:{startedAt:c,timeoutMs:f}})).response,K(p)))return!1;let g=Ce(p,a),S=Z,H=s(async()=>{await ur(e,t.projectId,t.version??"legacy",n,o,d),await S.delete(i),await S.delete(l)},"evictSharedEntry"),$=R.applied?R.pathname:o;if(g>0&&p.status===200&&(t.type!=="framework"||ye(p))&&!X($)&&!ie(p)&&(!R.applied||br(t.pages,$,p,t.pathRevalidate))){await wt(e,t.projectId,t.version??"legacy",n,o,p,g,d);let b=new Headers(p.headers);return b.set("x-isr-cache","HIT"),b.set("Cache-Control",`public, s-maxage=${g}, max-age=0, must-revalidate`),B(b),b.delete("set-cookie"),b.delete("x-void-page-data"),await S.put(i,new Response(p.clone().body,{status:p.status,headers:b})),await wr(S,l,p,g,"HIT"),!0}else if(p.status===200&&!X($)&&!R.applied&&(g===0||ie(p)||t.type==="framework"&&!ye(p))){try{await H()}catch(b){console.error("ISR privacy eviction failed:",b)}return!0}else if((T===404||T===410)&&Date.now()-u>As*1e3){try{await H()}catch(b){console.error("ISR stale-entry eviction failed:",b)}return!0}return!1}catch(m){return console.error("ISR revalidation failed:",m),!1}}s(Cs,"revalidateInBackground");function vs(e,t,r,n){return X(e)?!1:Ke(e)?vn(t,r,n,e):!0}s(vs,"isIsrEligiblePath");function br(e,t,r,n){return ye(r)&&Cn(e,t,n)}s(br,"isFallbackTargetCacheable");function Rr(e){return e.method==="GET"&&!e.headers.has("Range")&&!e.headers.has("X-VoidPages")&&!ze(e)}s(Rr,"isSharedStaticCacheRequestEligible");function ks(e,t,r){return!!(Rr(e)&&r.version&&!X(t)&&(Ke(t)||!r.ssr))}s(ks,"isStaticCacheRequestEligible");async function xs(e,t,r,n){if(r.staticDeploymentId||!r.ssr)return!0;if(r.assetManifestId)try{let o=await qe(e,r.assetManifestId,r.projectId,Math.min(n,Qn));if(!o)return;if(Object.hasOwn(o,t))return!0;let a=we(t);return a!==t&&Object.hasOwn(o,a)?!0:(r.assetConfig?.html_handling??"auto-trailing-slash")!=="none"&&(Gn(o,t)||Gn(o,a))?void 0:!1}catch{return}}s(xs,"isKnownStaticAssetPath");function Gn(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(Gn,"hasHtmlHandlingSource");function qn(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(qn,"workerAnsweredPath");function he(e){return e.status===200&&!K(e)&&!ie(e)}s(he,"isStaticCacheResponseEligible");function Yn(e){return Je(e)&&he(e)}s(Yn,"isCurrentStaticCacheResponse");export{zn as PreviewDispatcher,Ll as default,ye as isHtmlResponse,ke as rebuildRequest};
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};
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "email_domain_routes" ADD COLUMN "inbound_mode" text DEFAULT 'managed' NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "email_domain_routes" ADD CONSTRAINT "email_domain_routes_inbound_mode_check" CHECK ("email_domain_routes"."inbound_mode" = 'managed' OR ("email_domain_routes"."inbound_mode" = 'none' AND "email_domain_routes"."addressing" = 'custom'));
@@ -0,0 +1,40 @@
1
+ ALTER TABLE "projects" ADD COLUMN "email_alias" text;--> statement-breakpoint
2
+ CREATE UNIQUE INDEX "idx_projects_email_alias" ON "projects" USING btree ("email_alias") WHERE "projects"."email_alias" IS NOT NULL;--> statement-breakpoint
3
+ -- A slug and an email alias both name a mailbox on the shared mail domain, so
4
+ -- one name may belong to only one project. The unique indexes cover slug vs
5
+ -- slug and alias vs alias; this trigger covers slug vs alias in both
6
+ -- directions, including projects that an older runtime creates. The advisory
7
+ -- lock orders concurrent claims so each check sees the other's commit.
8
+ CREATE FUNCTION "void_project_mailbox_name_guard"() RETURNS trigger
9
+ LANGUAGE plpgsql AS $$
10
+ BEGIN
11
+ IF TG_OP = 'UPDATE'
12
+ AND NEW.slug IS NOT DISTINCT FROM OLD.slug
13
+ AND NEW.email_alias IS NOT DISTINCT FROM OLD.email_alias THEN
14
+ RETURN NEW;
15
+ END IF;
16
+ -- Aliases never start with "preview-", so preview projects cannot collide.
17
+ IF NEW.email_alias IS NULL AND NEW.slug LIKE 'preview-%' THEN
18
+ RETURN NEW;
19
+ END IF;
20
+ PERFORM pg_advisory_xact_lock(5110511);
21
+ IF NEW.email_alias = NEW.slug
22
+ OR EXISTS (
23
+ SELECT 1 FROM "projects"
24
+ WHERE "id" <> NEW.id AND "slug" = NEW.email_alias
25
+ )
26
+ OR EXISTS (
27
+ SELECT 1 FROM "projects"
28
+ WHERE "id" <> NEW.id AND "email_alias" = NEW.slug
29
+ ) THEN
30
+ RAISE EXCEPTION USING
31
+ ERRCODE = '23505',
32
+ MESSAGE = 'A project slug or email alias already uses this name';
33
+ END IF;
34
+ RETURN NEW;
35
+ END;
36
+ $$;
37
+ --> statement-breakpoint
38
+ CREATE TRIGGER "void_project_mailbox_name_guard"
39
+ BEFORE INSERT OR UPDATE OF "slug", "email_alias" ON "projects"
40
+ FOR EACH ROW EXECUTE FUNCTION "void_project_mailbox_name_guard"();
@@ -81,6 +81,22 @@
81
81
  {
82
82
  "platformVersion": "1.1.0",
83
83
  "schemaDigest": "bd1c4f124ee52cde71a9e2e974e3af2f1431cc7c92796be233784d5790b06eb4"
84
+ },
85
+ {
86
+ "platformVersion": "1.1.11",
87
+ "schemaDigest": "d8e007d2bbe02637f6e77a33c1db152e0c4f21b30439ad512e16bce6726d6b9b"
88
+ },
89
+ {
90
+ "platformVersion": "1.1.12",
91
+ "schemaDigest": "d8e007d2bbe02637f6e77a33c1db152e0c4f21b30439ad512e16bce6726d6b9b"
92
+ },
93
+ {
94
+ "platformVersion": "1.2.0",
95
+ "schemaDigest": "d8e007d2bbe02637f6e77a33c1db152e0c4f21b30439ad512e16bce6726d6b9b"
96
+ },
97
+ {
98
+ "platformVersion": "1.2.1",
99
+ "schemaDigest": "d8e007d2bbe02637f6e77a33c1db152e0c4f21b30439ad512e16bce6726d6b9b"
84
100
  }
85
101
  ]
86
102
  }
@@ -379,6 +379,20 @@
379
379
  "when": 1792044332549,
380
380
  "tag": "0060_private_previews",
381
381
  "breakpoints": true
382
+ },
383
+ {
384
+ "idx": 61,
385
+ "version": "7",
386
+ "when": 1792665459659,
387
+ "tag": "0061_email_inbound_mode",
388
+ "breakpoints": true
389
+ },
390
+ {
391
+ "idx": 62,
392
+ "version": "7",
393
+ "when": 1792672482613,
394
+ "tag": "0062_project_email_alias",
395
+ "breakpoints": true
382
396
  }
383
397
  ]
384
398
  }