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