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