@ahmadissa/cloudworker-proxy 1.1.92 → 1.1.93

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.js CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";var Po=Object.create;var gr=Object.defineProperty;var Ho=Object.getOwnPropertyDescriptor;var To=Object.getOwnPropertyNames;var Ko=Object.getPrototypeOf,Oo=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var xo=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of To(t))!Oo.call(e,o)&&o!==r&&gr(e,o,{get:()=>t[o],enumerable:!(n=Ho(t,o))||n.enumerable});return e};var v=(e,t,r)=>(r=e!=null?Po(Ko(e)):{},xo(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var ft=_((rd,Ar)=>{function Ro({host:e=".*",path:t=".*",excludePath:r=null,method:n=[".*"],handler:o,protocol:a=".*",handlerName:s,headers:i={},data:c}){let u=[],f=[],d=e.replace(/(:([^.]+))/g,(T,N,U)=>(u.push(U),"([^.]+)")),p=t.replace(/(:([^/]+))/g,(T,N,U)=>U.slice(-1)==="*"?(f.push(U.slice(0,U.length-1)),"(.*)"):(f.push(U),"([^/]*)")),l=new RegExp(`^${d}$`,"i"),y=new RegExp(`^${p}$`,"i"),w=r?new RegExp(`^${r}$`,"i"):null,m=new RegExp(`^${n.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:u,pathVariables:f,host:l,path:y,excludePath:w,method:m,protocol:g,handler:o,handlerName:s,headers:i,data:c}}function wr(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}async function Uo(e,t=1024*1024){let r=[],n=e.getReader(),o=new TextDecoder,a=0;for(;t&&a<t;){let{done:i,value:c}=await n.read();if(i)break;a+=c.byteLength,r.push(o.decode(c))}let s=r.join("");return t?s.substring(0,t):s}function Io(e){let t=new URL(e.url),r=wr(t.searchParams),n=wr(e.headers);n.host&&(t.hostname=n.host);let o,a;async function s(i){if(a>=i)return o.substring(0,i);let c=e.clone();return o=await Uo(c.body,i),o}return{body:e.body,headers:n,host:t.host,hostname:t.hostname,href:t.href,json:async i=>JSON.parse(s(i)),method:e.method,origin:`${t.protocol}//${t.host}`,path:t.pathname,protocol:t.protocol.slice(0,-1),query:r,querystring:t.search.slice(1),search:t.search,text:async i=>e.headers.get("content-type")==="application/x-www-form-urlencoded"?decodeURIComponent(await s(i)):s(i)}}Ar.exports={parseRoute:Ro,parseRequest:Io}});var Er=_((nd,Sr)=>{function Wo(e,t){let r={},n=t.host.exec(e.host);t.hostVariables.forEach((a,s)=>{r[a]=n[s+1]});let o=t.path.exec(e.path);return t.pathVariables.forEach((a,s)=>{r[a]=o[s+1]}),r}function Jo(e,t){let r=!0;return Object.keys(e.headers).forEach(n=>{t.headers[n]!==e.headers[n]&&(r=!1)}),r}function ko(e,t){return e.protocol.test(t.protocol)}function No(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&Jo(e,t)&&ko(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function lt(e,t){let[r,...n]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!No(r,e.request))return lt(e,n);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=Wo(e.request,r);try{return r.handler(e,async o=>lt(o,n))}catch(o){throw o.route=r.handler.name,o}}Sr.exports={recurseRoutes:lt}});var Cr=_((od,br)=>{br.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var Pr=_((ad,vr)=>{var Do=ft();vr.exports=class _r{constructor(t){this.request=Do.parseRequest(t.request),this.event=t,this.state={},this.cloned=!1,this.response={headers:{}},this.body="",this.status=404,this.query=this.request.query}header(t){return this.request.headers[t]}set(t,r){this.response.headers[t]=r}clone(){let t=new _r(this.event);return t.cloned=!0,t}}});var Tr=_((id,Hr)=>{var ue=ft(),Mo=Er(),_e=Cr(),$o=Pr();Hr.exports=class{constructor(){this.routes=[]}get(t,r){let n=ue.parseRoute({method:[_e.methods.GET,_e.methods.HEAD],path:t,handler:r});this.routes.push(n)}post(t,r){let n=ue.parseRoute({method:[_e.methods.POST],path:t,handler:r});this.routes.push(n)}patch(t,r){let n=ue.parseRoute({method:[_e.methods.PATCH],path:t,handler:r});this.routes.push(n)}del(t,r){let n=ue.parseRoute({method:[_e.methods.DELETE],path:t,handler:r});this.routes.push(n)}use(t){let r=ue.parseRoute({handler:t,middleware:!0});this.routes.push(r)}add({host:t,path:r,excludePath:n,method:o,handlerName:a,headers:s,protocol:i},c){let u=ue.parseRoute({method:o,host:t,path:r,excludePath:n,handler:c,headers:s,handlerName:a,protocol:i});this.routes.push(u)}async resolve(t){let r=new $o(t);try{return await Mo.recurseRoutes(r,this.routes),new Response(r.body,{status:r.status,headers:r.response.headers})}catch(n){return new Response(n.message,{status:500})}}}});var M=_((cd,$r)=>{var qo="Expected a function",Ur="__lodash_hash_undefined__",Ir=1/0,Lo="[object Function]",Fo="[object GeneratorFunction]",Go="[object Symbol]",Bo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Vo=/^\w*$/,zo=/^\./,Xo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,jo=/[\\^$.*+?()[\]{}|]/g,Yo=/\\(\\)?/g,Zo=/^\[object .+?Constructor\]$/,Qo=typeof global=="object"&&global&&global.Object===Object&&global,ea=typeof self=="object"&&self&&self.Object===Object&&self,yt=Qo||ea||Function("return this")();function ta(e,t){return e?.[t]}function ra(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var na=Array.prototype,oa=Function.prototype,Wr=Object.prototype,mt=yt["__core-js_shared__"],Kr=function(){var e=/[^.]+$/.exec(mt&&mt.keys&&mt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Jr=oa.toString,gt=Wr.hasOwnProperty,kr=Wr.toString,aa=RegExp("^"+Jr.call(gt).replace(jo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Or=yt.Symbol,sa=na.splice,ia=Nr(yt,"Map"),ve=Nr(Object,"create"),xr=Or?Or.prototype:void 0,Rr=xr?xr.toString:void 0;function re(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ca(){this.__data__=ve?ve(null):{}}function da(e){return this.has(e)&&delete this.__data__[e]}function ua(e){var t=this.__data__;if(ve){var r=t[e];return r===Ur?void 0:r}return gt.call(t,e)?t[e]:void 0}function pa(e){var t=this.__data__;return ve?t[e]!==void 0:gt.call(t,e)}function ha(e,t){var r=this.__data__;return r[e]=ve&&t===void 0?Ur:t,this}re.prototype.clear=ca;re.prototype.delete=da;re.prototype.get=ua;re.prototype.has=pa;re.prototype.set=ha;function pe(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function fa(){this.__data__=[]}function la(e){var t=this.__data__,r=$e(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():sa.call(t,r,1),!0}function ma(e){var t=this.__data__,r=$e(t,e);return r<0?void 0:t[r][1]}function ya(e){return $e(this.__data__,e)>-1}function ga(e,t){var r=this.__data__,n=$e(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}pe.prototype.clear=fa;pe.prototype.delete=la;pe.prototype.get=ma;pe.prototype.has=ya;pe.prototype.set=ga;function ne(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function wa(){this.__data__={hash:new re,map:new(ia||pe),string:new re}}function Aa(e){return qe(this,e).delete(e)}function Sa(e){return qe(this,e).get(e)}function Ea(e){return qe(this,e).has(e)}function ba(e,t){return qe(this,e).set(e,t),this}ne.prototype.clear=wa;ne.prototype.delete=Aa;ne.prototype.get=Sa;ne.prototype.has=Ea;ne.prototype.set=ba;function $e(e,t){for(var r=e.length;r--;)if(Ua(e[r][0],t))return r;return-1}function Ca(e,t){t=Ha(t,e)?[t]:Pa(t);for(var r=0,n=t.length;e!=null&&r<n;)e=e[xa(t[r++])];return r&&r==n?e:void 0}function _a(e){if(!Mr(e)||Ka(e))return!1;var t=Ia(e)||ra(e)?aa:Zo;return t.test(Ra(e))}function va(e){if(typeof e=="string")return e;if(At(e))return Rr?Rr.call(e):"";var t=e+"";return t=="0"&&1/e==-Ir?"-0":t}function Pa(e){return Dr(e)?e:Oa(e)}function qe(e,t){var r=e.__data__;return Ta(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Nr(e,t){var r=ta(e,t);return _a(r)?r:void 0}function Ha(e,t){if(Dr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||At(e)?!0:Vo.test(e)||!Bo.test(e)||t!=null&&e in Object(t)}function Ta(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ka(e){return!!Kr&&Kr in e}var Oa=wt(function(e){e=Ja(e);var t=[];return zo.test(e)&&t.push(""),e.replace(Xo,function(r,n,o,a){t.push(o?a.replace(Yo,"$1"):n||r)}),t});function xa(e){if(typeof e=="string"||At(e))return e;var t=e+"";return t=="0"&&1/e==-Ir?"-0":t}function Ra(e){if(e!=null){try{return Jr.call(e)}catch{}try{return e+""}catch{}}return""}function wt(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(qo);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var s=e.apply(this,n);return r.cache=a.set(o,s),s};return r.cache=new(wt.Cache||ne),r}wt.Cache=ne;function Ua(e,t){return e===t||e!==e&&t!==t}var Dr=Array.isArray;function Ia(e){var t=Mr(e)?kr.call(e):"";return t==Lo||t==Fo}function Mr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Wa(e){return!!e&&typeof e=="object"}function At(e){return typeof e=="symbol"||Wa(e)&&kr.call(e)==Go}function Ja(e){return e==null?"":va(e)}function ka(e,t,r){var n=e==null?void 0:Ca(e,t);return n===void 0?r:n}$r.exports=ka});var Fe=_((Le,Xr)=>{(function(e,t){typeof Le=="object"&&typeof Xr<"u"?t(Le):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(Le,function(e){"use strict";let t=new TextEncoder,r={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},n=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class o{constructor({accessKeyId:p,secretAccessKey:l,sessionToken:y,service:w,region:m,cache:g,retries:T,initRetryMs:N}){if(p==null)throw new TypeError("accessKeyId is a required option");if(l==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=p,this.secretAccessKey=l,this.sessionToken=y,this.service=w,this.region=m,this.cache=g||new Map,this.retries=T??10,this.initRetryMs=N||50}async sign(p,l){if(p instanceof Request){let{method:m,url:g,headers:T,body:N}=p;l=Object.assign({method:m,url:g,headers:T},l),l.body==null&&T.has("Content-Type")&&(l.body=N!=null&&T.has("X-Amz-Content-Sha256")?N:await p.clone().arrayBuffer()),p=g}let y=new a(Object.assign({url:p},l,this,l&&l.aws)),w=Object.assign({},l,await y.sign());return delete w.aws,new Request(w.url.toString(),w)}async fetch(p,l){for(let y=0;y<=this.retries;y++){let w=fetch(await this.sign(p,l));if(y===this.retries)return w;let m=await w;if(m.status<500&&m.status!==429)return m;await new Promise(g=>setTimeout(g,Math.random()*this.initRetryMs*Math.pow(2,y)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class a{constructor({method:p,url:l,headers:y,body:w,accessKeyId:m,secretAccessKey:g,sessionToken:T,service:N,region:U,cache:ee,datetime:Se,signQuery:ct,appendSessionToken:dt,allHeaders:Ne,singleEncode:ut}){if(l==null)throw new TypeError("url is a required option");if(m==null)throw new TypeError("accessKeyId is a required option");if(g==null)throw new TypeError("secretAccessKey is a required option");this.method=p||(w?"POST":"GET"),this.url=new URL(l),this.headers=new Headers(y||{}),this.body=w,this.accessKeyId=m,this.secretAccessKey=g,this.sessionToken=T;let V,Ee;(!N||!U)&&([V,Ee]=f(this.url,this.headers)),this.service=N||V||"",this.region=U||Ee||"us-east-1",this.cache=ee||new Map,this.datetime=Se||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=ct,this.appendSessionToken=dt||this.service==="iotdevicegateway",this.headers.delete("Host");let q=this.signQuery?this.url.searchParams:this.headers;if(this.service==="s3"&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),q.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&q.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(C=>Ne||!n.includes(C)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(C=>C+":"+(C==="host"?this.url.host:(this.headers.get(C)||"").replace(/\s+/g," "))).join(`
2
- `),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!q.has("X-Amz-Expires")&&q.set("X-Amz-Expires","86400"),q.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),q.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),q.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch{this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");ut||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=u(this.encodedPath);let De=new Set;this.encodedSearch=[...this.url.searchParams].filter(([C])=>{if(!C)return!1;if(this.service==="s3"){if(De.has(C))return!1;De.add(C)}return!0}).map(C=>C.map(be=>u(encodeURIComponent(be)))).sort(([C,be],[Ce,Me])=>C<Ce?-1:C>Ce?1:be<Me?-1:be>Me?1:0).map(C=>C.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let p=this.datetime.slice(0,8),l=[this.secretAccessKey,p,this.region,this.service].join(),y=this.cache.get(l);if(!y){let w=await s("AWS4"+this.secretAccessKey,p),m=await s(w,this.region),g=await s(m,this.service);y=await s(g,"aws4_request"),this.cache.set(l,y)}return c(await s(y,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,c(await i(await this.canonicalString()))].join(`
1
+ "use strict";var Ho=Object.create;var gr=Object.defineProperty;var To=Object.getOwnPropertyDescriptor;var Ko=Object.getOwnPropertyNames;var Oo=Object.getPrototypeOf,xo=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ro=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ko(t))!xo.call(e,o)&&o!==r&&gr(e,o,{get:()=>t[o],enumerable:!(n=To(t,o))||n.enumerable});return e};var v=(e,t,r)=>(r=e!=null?Ho(Oo(e)):{},Ro(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var lt=_((nd,Ar)=>{function Uo({host:e=".*",path:t=".*",excludePath:r=null,method:n=[".*"],handler:o,protocol:a=".*",handlerName:s,headers:i={},data:c}){let u=[],f=[],d=e.replace(/(:([^.]+))/g,(T,N,U)=>(u.push(U),"([^.]+)")),p=t.replace(/(:([^/]+))/g,(T,N,U)=>U.slice(-1)==="*"?(f.push(U.slice(0,U.length-1)),"(.*)"):(f.push(U),"([^/]*)")),l=new RegExp(`^${d}$`,"i"),y=new RegExp(`^${p}$`,"i"),w=r?new RegExp(`^${r}$`,"i"):null,m=new RegExp(`^${n.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:u,pathVariables:f,host:l,path:y,excludePath:w,method:m,protocol:g,handler:o,handlerName:s,headers:i,data:c}}function wr(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}async function Io(e,t=1024*1024){let r=[],n=e.getReader(),o=new TextDecoder,a=0;for(;t&&a<t;){let{done:i,value:c}=await n.read();if(i)break;a+=c.byteLength,r.push(o.decode(c))}let s=r.join("");return t?s.substring(0,t):s}function Wo(e){let t=new URL(e.url),r=wr(t.searchParams),n=wr(e.headers);n.host&&(t.hostname=n.host);let o,a;async function s(i){if(a>=i)return o.substring(0,i);let c=e.clone();return o=await Io(c.body,i),o}return{body:e.body,headers:n,host:t.host,hostname:t.hostname,href:t.href,json:async i=>JSON.parse(s(i)),method:e.method,origin:`${t.protocol}//${t.host}`,path:t.pathname,protocol:t.protocol.slice(0,-1),query:r,querystring:t.search.slice(1),search:t.search,text:async i=>e.headers.get("content-type")==="application/x-www-form-urlencoded"?decodeURIComponent(await s(i)):s(i)}}Ar.exports={parseRoute:Uo,parseRequest:Wo}});var Er=_((od,Sr)=>{function Jo(e,t){let r={},n=t.host.exec(e.host);t.hostVariables.forEach((a,s)=>{r[a]=n[s+1]});let o=t.path.exec(e.path);return t.pathVariables.forEach((a,s)=>{r[a]=o[s+1]}),r}function ko(e,t){let r=!0;return Object.keys(e.headers).forEach(n=>{t.headers[n]!==e.headers[n]&&(r=!1)}),r}function No(e,t){return e.protocol.test(t.protocol)}function Do(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&ko(e,t)&&No(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function mt(e,t){let[r,...n]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!Do(r,e.request))return mt(e,n);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=Jo(e.request,r);try{return r.handler(e,async o=>mt(o,n))}catch(o){throw o.route=r.handler.name,o}}Sr.exports={recurseRoutes:mt}});var Cr=_((ad,br)=>{br.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var Pr=_((sd,vr)=>{var Mo=lt();vr.exports=class _r{constructor(t){this.request=Mo.parseRequest(t.request),this.event=t,this.state={},this.cloned=!1,this.response={headers:{}},this.body="",this.status=404,this.query=this.request.query}header(t){return this.request.headers[t]}set(t,r){this.response.headers[t]=r}clone(){let t=new _r(this.event);return t.cloned=!0,t}}});var Tr=_((cd,Hr)=>{var ue=lt(),$o=Er(),_e=Cr(),qo=Pr();Hr.exports=class{constructor(){this.routes=[]}get(t,r){let n=ue.parseRoute({method:[_e.methods.GET,_e.methods.HEAD],path:t,handler:r});this.routes.push(n)}post(t,r){let n=ue.parseRoute({method:[_e.methods.POST],path:t,handler:r});this.routes.push(n)}patch(t,r){let n=ue.parseRoute({method:[_e.methods.PATCH],path:t,handler:r});this.routes.push(n)}del(t,r){let n=ue.parseRoute({method:[_e.methods.DELETE],path:t,handler:r});this.routes.push(n)}use(t){let r=ue.parseRoute({handler:t,middleware:!0});this.routes.push(r)}add({host:t,path:r,excludePath:n,method:o,handlerName:a,headers:s,protocol:i},c){let u=ue.parseRoute({method:o,host:t,path:r,excludePath:n,handler:c,headers:s,handlerName:a,protocol:i});this.routes.push(u)}async resolve(t){let r=new qo(t);try{return await $o.recurseRoutes(r,this.routes),new Response(r.body,{status:r.status,headers:r.response.headers})}catch(n){return new Response(n.message,{status:500})}}}});var M=_((dd,$r)=>{var Lo="Expected a function",Ur="__lodash_hash_undefined__",Ir=1/0,Fo="[object Function]",Go="[object GeneratorFunction]",Bo="[object Symbol]",Vo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,zo=/^\w*$/,Xo=/^\./,jo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Yo=/[\\^$.*+?()[\]{}|]/g,Zo=/\\(\\)?/g,Qo=/^\[object .+?Constructor\]$/,ea=typeof global=="object"&&global&&global.Object===Object&&global,ta=typeof self=="object"&&self&&self.Object===Object&&self,gt=ea||ta||Function("return this")();function ra(e,t){return e?.[t]}function na(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var oa=Array.prototype,aa=Function.prototype,Wr=Object.prototype,yt=gt["__core-js_shared__"],Kr=function(){var e=/[^.]+$/.exec(yt&&yt.keys&&yt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Jr=aa.toString,wt=Wr.hasOwnProperty,kr=Wr.toString,sa=RegExp("^"+Jr.call(wt).replace(Yo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Or=gt.Symbol,ia=oa.splice,ca=Nr(gt,"Map"),ve=Nr(Object,"create"),xr=Or?Or.prototype:void 0,Rr=xr?xr.toString:void 0;function re(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function da(){this.__data__=ve?ve(null):{}}function ua(e){return this.has(e)&&delete this.__data__[e]}function pa(e){var t=this.__data__;if(ve){var r=t[e];return r===Ur?void 0:r}return wt.call(t,e)?t[e]:void 0}function ha(e){var t=this.__data__;return ve?t[e]!==void 0:wt.call(t,e)}function fa(e,t){var r=this.__data__;return r[e]=ve&&t===void 0?Ur:t,this}re.prototype.clear=da;re.prototype.delete=ua;re.prototype.get=pa;re.prototype.has=ha;re.prototype.set=fa;function pe(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function la(){this.__data__=[]}function ma(e){var t=this.__data__,r=$e(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ia.call(t,r,1),!0}function ya(e){var t=this.__data__,r=$e(t,e);return r<0?void 0:t[r][1]}function ga(e){return $e(this.__data__,e)>-1}function wa(e,t){var r=this.__data__,n=$e(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}pe.prototype.clear=la;pe.prototype.delete=ma;pe.prototype.get=ya;pe.prototype.has=ga;pe.prototype.set=wa;function ne(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Aa(){this.__data__={hash:new re,map:new(ca||pe),string:new re}}function Sa(e){return qe(this,e).delete(e)}function Ea(e){return qe(this,e).get(e)}function ba(e){return qe(this,e).has(e)}function Ca(e,t){return qe(this,e).set(e,t),this}ne.prototype.clear=Aa;ne.prototype.delete=Sa;ne.prototype.get=Ea;ne.prototype.has=ba;ne.prototype.set=Ca;function $e(e,t){for(var r=e.length;r--;)if(Ia(e[r][0],t))return r;return-1}function _a(e,t){t=Ta(t,e)?[t]:Ha(t);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Ra(t[r++])];return r&&r==n?e:void 0}function va(e){if(!Mr(e)||Oa(e))return!1;var t=Wa(e)||na(e)?sa:Qo;return t.test(Ua(e))}function Pa(e){if(typeof e=="string")return e;if(St(e))return Rr?Rr.call(e):"";var t=e+"";return t=="0"&&1/e==-Ir?"-0":t}function Ha(e){return Dr(e)?e:xa(e)}function qe(e,t){var r=e.__data__;return Ka(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Nr(e,t){var r=ra(e,t);return va(r)?r:void 0}function Ta(e,t){if(Dr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||St(e)?!0:zo.test(e)||!Vo.test(e)||t!=null&&e in Object(t)}function Ka(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Oa(e){return!!Kr&&Kr in e}var xa=At(function(e){e=ka(e);var t=[];return Xo.test(e)&&t.push(""),e.replace(jo,function(r,n,o,a){t.push(o?a.replace(Zo,"$1"):n||r)}),t});function Ra(e){if(typeof e=="string"||St(e))return e;var t=e+"";return t=="0"&&1/e==-Ir?"-0":t}function Ua(e){if(e!=null){try{return Jr.call(e)}catch{}try{return e+""}catch{}}return""}function At(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Lo);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var s=e.apply(this,n);return r.cache=a.set(o,s),s};return r.cache=new(At.Cache||ne),r}At.Cache=ne;function Ia(e,t){return e===t||e!==e&&t!==t}var Dr=Array.isArray;function Wa(e){var t=Mr(e)?kr.call(e):"";return t==Fo||t==Go}function Mr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ja(e){return!!e&&typeof e=="object"}function St(e){return typeof e=="symbol"||Ja(e)&&kr.call(e)==Bo}function ka(e){return e==null?"":Pa(e)}function Na(e,t,r){var n=e==null?void 0:_a(e,t);return n===void 0?r:n}$r.exports=Na});var Fe=_((Le,Xr)=>{(function(e,t){typeof Le=="object"&&typeof Xr<"u"?t(Le):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(Le,function(e){"use strict";let t=new TextEncoder,r={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},n=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class o{constructor({accessKeyId:p,secretAccessKey:l,sessionToken:y,service:w,region:m,cache:g,retries:T,initRetryMs:N}){if(p==null)throw new TypeError("accessKeyId is a required option");if(l==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=p,this.secretAccessKey=l,this.sessionToken=y,this.service=w,this.region=m,this.cache=g||new Map,this.retries=T??10,this.initRetryMs=N||50}async sign(p,l){if(p instanceof Request){let{method:m,url:g,headers:T,body:N}=p;l=Object.assign({method:m,url:g,headers:T},l),l.body==null&&T.has("Content-Type")&&(l.body=N!=null&&T.has("X-Amz-Content-Sha256")?N:await p.clone().arrayBuffer()),p=g}let y=new a(Object.assign({url:p},l,this,l&&l.aws)),w=Object.assign({},l,await y.sign());return delete w.aws,new Request(w.url.toString(),w)}async fetch(p,l){for(let y=0;y<=this.retries;y++){let w=fetch(await this.sign(p,l));if(y===this.retries)return w;let m=await w;if(m.status<500&&m.status!==429)return m;await new Promise(g=>setTimeout(g,Math.random()*this.initRetryMs*Math.pow(2,y)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class a{constructor({method:p,url:l,headers:y,body:w,accessKeyId:m,secretAccessKey:g,sessionToken:T,service:N,region:U,cache:ee,datetime:Se,signQuery:dt,appendSessionToken:ut,allHeaders:Ne,singleEncode:pt}){if(l==null)throw new TypeError("url is a required option");if(m==null)throw new TypeError("accessKeyId is a required option");if(g==null)throw new TypeError("secretAccessKey is a required option");this.method=p||(w?"POST":"GET"),this.url=new URL(l),this.headers=new Headers(y||{}),this.body=w,this.accessKeyId=m,this.secretAccessKey=g,this.sessionToken=T;let V,Ee;(!N||!U)&&([V,Ee]=f(this.url,this.headers)),this.service=N||V||"",this.region=U||Ee||"us-east-1",this.cache=ee||new Map,this.datetime=Se||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=dt,this.appendSessionToken=ut||this.service==="iotdevicegateway",this.headers.delete("Host");let q=this.signQuery?this.url.searchParams:this.headers;if(this.service==="s3"&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),q.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&q.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(C=>Ne||!n.includes(C)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(C=>C+":"+(C==="host"?this.url.host:(this.headers.get(C)||"").replace(/\s+/g," "))).join(`
2
+ `),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!q.has("X-Amz-Expires")&&q.set("X-Amz-Expires","86400"),q.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),q.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),q.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch{this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");pt||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=u(this.encodedPath);let De=new Set;this.encodedSearch=[...this.url.searchParams].filter(([C])=>{if(!C)return!1;if(this.service==="s3"){if(De.has(C))return!1;De.add(C)}return!0}).map(C=>C.map(be=>u(encodeURIComponent(be)))).sort(([C,be],[Ce,Me])=>C<Ce?-1:C>Ce?1:be<Me?-1:be>Me?1:0).map(C=>C.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let p=this.datetime.slice(0,8),l=[this.secretAccessKey,p,this.region,this.service].join(),y=this.cache.get(l);if(!y){let w=await s("AWS4"+this.secretAccessKey,p),m=await s(w,this.region),g=await s(m,this.service);y=await s(g,"aws4_request"),this.cache.set(l,y)}return c(await s(y,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,c(await i(await this.canonicalString()))].join(`
3
3
  `)}async canonicalString(){return[this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+`
4
4
  `,this.signedHeaders,await this.hexBodyHash()].join(`
5
- `)}async hexBodyHash(){let p=this.headers.get("X-Amz-Content-Sha256");if(p==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");p=c(await i(this.body||""))}return p}}async function s(d,p){let l=await crypto.subtle.importKey("raw",typeof d=="string"?t.encode(d):d,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",l,t.encode(p))}async function i(d){return crypto.subtle.digest("SHA-256",typeof d=="string"?t.encode(d):d)}function c(d){return Array.prototype.map.call(new Uint8Array(d),p=>("0"+p.toString(16)).slice(-2)).join("")}function u(d){return d.replace(/[!'()*]/g,p=>"%"+p.charCodeAt(0).toString(16).toUpperCase())}function f(d,p){let{hostname:l,pathname:y}=d,w=l.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[m,g]=(w||["",""]).slice(1,3);if(g==="us-gov")g="us-gov-west-1";else if(g==="s3"||g==="s3-accelerate")g="us-east-1",m="s3";else if(m==="iot")l.startsWith("iot.")?m="execute-api":l.startsWith("data.jobs.iot.")?m="iot-jobs-data":m=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(m==="autoscaling"){let T=(p.get("X-Amz-Target")||"").split(".")[0];T==="AnyScaleFrontendService"?m="application-autoscaling":T==="AnyScaleScalingPlannerFrontendService"&&(m="autoscaling-plans")}else g==null&&m.startsWith("s3-")?(g=m.slice(3).replace(/^fips-|^external-1/,""),m="s3"):m.endsWith("-fips")?m=m.slice(0,-5):g&&/-\d$/.test(m)&&!/-\d$/.test(g)&&([m,g]=[g,m]);return[r[m]||m,g]}e.AwsClient=o,e.AwsV4Signer=a,Object.defineProperty(e,"__esModule",{value:!0})})});var Xe=_((xd,un)=>{var as="Expected a function",tn="__lodash_hash_undefined__",rn=1/0,ss=9007199254740991,is="[object Function]",cs="[object GeneratorFunction]",ds="[object Symbol]",us=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ps=/^\w*$/,hs=/^\./,fs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ls=/[\\^$.*+?()[\]{}|]/g,ms=/\\(\\)?/g,ys=/^\[object .+?Constructor\]$/,gs=/^(?:0|[1-9]\d*)$/,ws=typeof global=="object"&&global&&global.Object===Object&&global,As=typeof self=="object"&&self&&self.Object===Object&&self,Ut=ws||As||Function("return this")();function Ss(e,t){return e?.[t]}function Es(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var bs=Array.prototype,Cs=Function.prototype,nn=Object.prototype,Rt=Ut["__core-js_shared__"],Yr=function(){var e=/[^.]+$/.exec(Rt&&Rt.keys&&Rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),on=Cs.toString,Be=nn.hasOwnProperty,an=nn.toString,_s=RegExp("^"+on.call(Be).replace(ls,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Zr=Ut.Symbol,vs=bs.splice,Ps=sn(Ut,"Map"),Pe=sn(Object,"create"),Qr=Zr?Zr.prototype:void 0,en=Qr?Qr.toString:void 0;function ae(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Hs(){this.__data__=Pe?Pe(null):{}}function Ts(e){return this.has(e)&&delete this.__data__[e]}function Ks(e){var t=this.__data__;if(Pe){var r=t[e];return r===tn?void 0:r}return Be.call(t,e)?t[e]:void 0}function Os(e){var t=this.__data__;return Pe?t[e]!==void 0:Be.call(t,e)}function xs(e,t){var r=this.__data__;return r[e]=Pe&&t===void 0?tn:t,this}ae.prototype.clear=Hs;ae.prototype.delete=Ts;ae.prototype.get=Ks;ae.prototype.has=Os;ae.prototype.set=xs;function he(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Rs(){this.__data__=[]}function Us(e){var t=this.__data__,r=Ve(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():vs.call(t,r,1),!0}function Is(e){var t=this.__data__,r=Ve(t,e);return r<0?void 0:t[r][1]}function Ws(e){return Ve(this.__data__,e)>-1}function Js(e,t){var r=this.__data__,n=Ve(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}he.prototype.clear=Rs;he.prototype.delete=Us;he.prototype.get=Is;he.prototype.has=Ws;he.prototype.set=Js;function se(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function ks(){this.__data__={hash:new ae,map:new(Ps||he),string:new ae}}function Ns(e){return ze(this,e).delete(e)}function Ds(e){return ze(this,e).get(e)}function Ms(e){return ze(this,e).has(e)}function $s(e,t){return ze(this,e).set(e,t),this}se.prototype.clear=ks;se.prototype.delete=Ns;se.prototype.get=Ds;se.prototype.has=Ms;se.prototype.set=$s;function qs(e,t,r){var n=e[t];(!(Be.call(e,t)&&cn(n,r))||r===void 0&&!(t in e))&&(e[t]=r)}function Ve(e,t){for(var r=e.length;r--;)if(cn(e[r][0],t))return r;return-1}function Ls(e){if(!Ge(e)||js(e))return!1;var t=ei(e)||Es(e)?_s:ys;return t.test(Qs(e))}function Fs(e,t,r,n){if(!Ge(e))return e;t=zs(t,e)?[t]:Bs(t);for(var o=-1,a=t.length,s=a-1,i=e;i!=null&&++o<a;){var c=Zs(t[o]),u=r;if(o!=s){var f=i[c];u=n?n(f,c,i):void 0,u===void 0&&(u=Ge(f)?f:Vs(t[o+1])?[]:{})}qs(i,c,u),i=i[c]}return e}function Gs(e){if(typeof e=="string")return e;if(Wt(e))return en?en.call(e):"";var t=e+"";return t=="0"&&1/e==-rn?"-0":t}function Bs(e){return dn(e)?e:Ys(e)}function ze(e,t){var r=e.__data__;return Xs(t)?r[typeof t=="string"?"string":"hash"]:r.map}function sn(e,t){var r=Ss(e,t);return Ls(r)?r:void 0}function Vs(e,t){return t=t??ss,!!t&&(typeof e=="number"||gs.test(e))&&e>-1&&e%1==0&&e<t}function zs(e,t){if(dn(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Wt(e)?!0:ps.test(e)||!us.test(e)||t!=null&&e in Object(t)}function Xs(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function js(e){return!!Yr&&Yr in e}var Ys=It(function(e){e=ri(e);var t=[];return hs.test(e)&&t.push(""),e.replace(fs,function(r,n,o,a){t.push(o?a.replace(ms,"$1"):n||r)}),t});function Zs(e){if(typeof e=="string"||Wt(e))return e;var t=e+"";return t=="0"&&1/e==-rn?"-0":t}function Qs(e){if(e!=null){try{return on.call(e)}catch{}try{return e+""}catch{}}return""}function It(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(as);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var s=e.apply(this,n);return r.cache=a.set(o,s),s};return r.cache=new(It.Cache||se),r}It.Cache=se;function cn(e,t){return e===t||e!==e&&t!==t}var dn=Array.isArray;function ei(e){var t=Ge(e)?an.call(e):"";return t==is||t==cs}function Ge(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function ti(e){return!!e&&typeof e=="object"}function Wt(e){return typeof e=="symbol"||ti(e)&&an.call(e)==ds}function ri(e){return e==null?"":Gs(e)}function ni(e,t,r){return e==null?e:Fs(e,t,r)}un.exports=ni});var gn=_(Dt=>{"use strict";Dt.parse=pi;Dt.serialize=hi;var ci=decodeURIComponent,di=encodeURIComponent,ui=/; */,Ye=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function pi(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(ui),a=n.decode||ci,s=0;s<o.length;s++){var i=o[s],c=i.indexOf("=");if(!(c<0)){var u=i.substr(0,c).trim(),f=i.substr(++c,i.length).trim();f[0]=='"'&&(f=f.slice(1,-1)),r[u]==null&&(r[u]=fi(f,a))}}return r}function hi(e,t,r){var n=r||{},o=n.encode||di;if(typeof o!="function")throw new TypeError("option encode is invalid");if(!Ye.test(e))throw new TypeError("argument name is invalid");var a=o(t);if(a&&!Ye.test(a))throw new TypeError("argument val is invalid");var s=e+"="+a;if(n.maxAge!=null){var i=n.maxAge-0;if(isNaN(i)||!isFinite(i))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+Math.floor(i)}if(n.domain){if(!Ye.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!Ye.test(n.path))throw new TypeError("option path is invalid");s+="; Path="+n.path}if(n.expires){if(typeof n.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires="+n.expires.toUTCString()}if(n.httpOnly&&(s+="; HttpOnly"),n.secure&&(s+="; Secure"),n.sameSite){var c=typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite;switch(c){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function fi(e,t){try{return t(e)}catch{return e}}});var An=_((Xd,wn)=>{"use strict";var Ze=1;function li(){return Ze=(Ze*9301+49297)%233280,Ze/233280}function mi(e){Ze=e}wn.exports={nextValue:li,seed:mi}});var Oe=_((jd,Cn)=>{"use strict";var Mt=An(),ce="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",z,Sn,Ke;function $t(){Ke=!1}function En(e){if(!e){z!==ce&&(z=ce,$t());return}if(e!==z){if(e.length!==ce.length)throw new Error("Custom alphabet for shortid must be "+ce.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter(function(r,n,o){return n!==o.lastIndexOf(r)});if(t.length)throw new Error("Custom alphabet for shortid must be "+ce.length+" unique characters. These characters were not unique: "+t.join(", "));z=e,$t()}}function yi(e){return En(e),z}function gi(e){Mt.seed(e),Sn!==e&&($t(),Sn=e)}function wi(){z||En(ce);for(var e=z.split(""),t=[],r=Mt.nextValue(),n;e.length>0;)r=Mt.nextValue(),n=Math.floor(r*e.length),t.push(e.splice(n,1)[0]);return t.join("")}function bn(){return Ke||(Ke=wi(),Ke)}function Ai(e){var t=bn();return t[e]}function Si(){return z||ce}Cn.exports={get:Si,characters:yi,seed:gi,lookup:Ai,shuffled:bn}});var vn=_((Yd,_n)=>{"use strict";var qt=typeof window=="object"&&(window.crypto||window.msCrypto),Lt;!qt||!qt.getRandomValues?Lt=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:Lt=function(e){return qt.getRandomValues(new Uint8Array(e))};_n.exports=Lt});var Hn=_((Zd,Pn)=>{Pn.exports=function(e,t,r){for(var n=(2<<Math.log(t.length-1)/Math.LN2)-1,o=-~(1.6*n*r/t.length),a="";;)for(var s=e(o),i=o;i--;)if(a+=t[s[i]&n]||"",a.length===+r)return a}});var Kn=_((Qd,Tn)=>{"use strict";var Ei=Oe(),bi=vn(),Ci=Hn();function _i(e){for(var t=0,r,n="";!r;)n=n+Ci(bi,Ei.get(),1),r=e<Math.pow(16,t+1),t++;return n}Tn.exports=_i});var Rn=_((tu,xn)=>{"use strict";var Qe=Kn(),eu=Oe(),vi=1567752802062,Pi=7,et,On;function Hi(e){var t="",r=Math.floor((Date.now()-vi)*.001);return r===On?et++:(et=0,On=r),t=t+Qe(Pi),t=t+Qe(e),et>0&&(t=t+Qe(et)),t=t+Qe(r),t}xn.exports=Hi});var In=_((ru,Un)=>{"use strict";var Ti=Oe();function Ki(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+Ti.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Un.exports=Ki});var Jn=_((nu,Wn)=>{"use strict";Wn.exports=0});var Dn=_((ou,G)=>{"use strict";var Ft=Oe(),Oi=Rn(),xi=In(),kn=Jn()||0;function Ri(e){return Ft.seed(e),G.exports}function Ui(e){return kn=e,G.exports}function Ii(e){return e!==void 0&&Ft.characters(e),Ft.shuffled()}function Nn(){return Oi(kn)}G.exports=Nn;G.exports.generate=Nn;G.exports.seed=Ri;G.exports.worker=Ui;G.exports.characters=Ii;G.exports.isValid=xi});var $n=_((au,Mn)=>{"use strict";Mn.exports=Dn()});var So=v(Tr());var qr=v(M()),Na={get:qr.default};function St(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function Et(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return St(t);let n=Na.get(t,"request.headers.authorization");if(!n||!n.startsWith("Basic "))return St(t);let o=e.users.map(i=>i.authToken),a=n.substring(6),s=o.indexOf(a);return s===-1?St(t):(t.state.user=e.users[s].username,r(t))}}var Lr=caches.default;async function Da(e){return await Lr.match(e)}async function Ma(e,t){return Lr.put(e.href,t)}var bt={get:Da,set:Ma};async function $a(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(a=>a.toString(16).padStart(2,"0")).join("")}var Fr=$a;function qa(e,t={}){return Object.keys(t).reduce((r,n)=>r.replace(`{${n}}`,t[n]),e)}function Ct(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}var S={resolveParams:qa,instanceToJson:Ct};var La=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function Fa(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}async function Ga(e,t){if(!t)return e.event.request;let r=t.match(/{.*?}/gi).map(a=>a.slice(1,-1)),n={};for(let a=0;a<r.length;a+=1){let s=r[a],i=s.split(":");switch(i[0]){case"method":n[s]=e.request.method;break;case"path":n[s]=e.request.path;break;case"bodyHash":n[s]=await Fr(await Fa(e.request));break;case"header":n[s]=e.request.headers[i[1]]||"";break;default:n[s]=s}}let o=encodeURIComponent(t.replace(/({(.*?)})/gi,(a,s,i)=>n[i]));return new Request(`http://${e.request.hostname}/${o}`)}function _t({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=La}){return async(n,o)=>{let a=await Ga(n,t),s=await bt.get(a);if(s){n.body=s.body,n.status=s.status;let i=Ct(s.headers);Object.keys(i).forEach(c=>{n.set(c,i[c])}),n.set("X-Cache-Hit",!0)}else{await o(n);let i;n.body.tee?[n.body,i]=n.body.tee():i=n.body;let c=new Response(i,{status:n.status});Object.keys(n.response.headers).forEach(u=>{r.indexOf(u.toLowerCase())===-1&&c.headers.set(u,n.response.headers[u])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),n.event.waitUntil(bt.set(a,c))}}}function vt({allowedOrigins:e=["*"],allowedMethods:t=["GET","PUT","POST","PATCH","DELETE","HEAD","OPTIONS"],allowCredentials:r=!0,allowedHeaders:n=["Content-Type"],allowedExposeHeaders:o=[],maxAge:a=600,optionsSuccessStatus:s=204,terminatePreflight:i=!1}){return async(c,u)=>{let{method:f}=c.request,{origin:d}=c.request.headers,p=c.request.headers["access-control-request-headers"];if(Ba(c,d,e),Va(c,r),Ya(c,o),f==="OPTIONS"&&(za(c,t),Xa(c,p,n),ja(c,a),i)){c.status=s,c.set("content-length","0"),c.body="",Gr(c);return}Gr(c),await u(c)}}function Gr(e){let t=e.response?.headers,r=new Headers;if(t instanceof Headers)for(let[n,o]of t.entries())r.set(n.toLowerCase(),String(o));else if(t&&typeof t.entries=="function")for(let[n,o]of t.entries())r.set(String(n).toLowerCase(),String(o));else if(t&&typeof t=="object")for(let[n,o]of Object.entries(t))r.set(String(n).toLowerCase(),String(o));e.response.headers=r}function Ba(e,t,r){Array.isArray(r)&&(r[0]==="*"?e.set("Access-Control-Allow-Origin","*"):r.indexOf(t)!==-1&&(e.set("Access-Control-Allow-Origin",t),Za(e,"Origin")))}function Va(e,t){t&&e.set("Access-Control-Allow-Credentials",String(t))}function za(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function Xa(e,t,r){r.length===0&&t?e.set("Access-Control-Allow-Headers",t):r.length&&e.set("Access-Control-Allow-Headers",r.join(","))}function ja(e,t){t&&e.set("Access-Control-Max-Age",String(t))}function Ya(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}function Za(e,t){let r=e.header("vary")||e.header("Vary");(r?.split(",").map(o=>o.trim().toLowerCase())||[]).includes(t.toLowerCase())||e.set("Vary",r?`${r}, ${t}`:t)}var Qa={AF:"AS",AL:"EU",AQ:"AN",DZ:"AF",AS:"OC",AD:"EU",AO:"AF",AG:"NA",AZ:"EU",AR:"SA",AU:"OC",AT:"EU",BS:"NA",BH:"AS",BD:"AS",AM:"EU",BB:"NA",BE:"EU",BM:"NA",BT:"AS",BO:"SA",BA:"EU",BW:"AF",BV:"AN",BR:"SA",BZ:"NA",IO:"AS",SB:"OC",VG:"NA",BN:"AS",BG:"EU",MM:"AS",BI:"AF",BY:"EU",KH:"AS",CM:"AF",CA:"NA",CV:"AF",KY:"NA",CF:"AF",LK:"AS",TD:"AF",CL:"SA",CN:"AS",TW:"AS",CX:"AS",CC:"AS",CO:"SA",KM:"AF",YT:"AF",CG:"AF",CD:"AF",CK:"OC",CR:"NA",HR:"EU",CU:"NA",CY:"EU",CZ:"EU",BJ:"AF",DK:"EU",DM:"NA",DO:"NA",EC:"SA",SV:"NA",GQ:"AF",ET:"AF",ER:"AF",EE:"EU",FO:"EU",FK:"SA",GS:"AN",FJ:"OC",FI:"EU",AX:"EU",FR:"EU",GF:"SA",PF:"OC",TF:"AN",DJ:"AF",GA:"AF",GE:"EU",GM:"AF",PS:"AS",DE:"EU",GH:"AF",GI:"EU",KI:"OC",GR:"EU",GL:"NA",GD:"NA",GP:"NA",GU:"OC",GT:"NA",GN:"AF",GY:"SA",HT:"NA",HM:"AN",VA:"EU",HN:"NA",HK:"AS",HU:"EU",IS:"EU",IN:"AS",ID:"AS",IR:"AS",IQ:"AS",IE:"EU",IL:"AS",IT:"EU",CI:"AF",JM:"NA",JP:"AS",KZ:"EU",JO:"AS",KE:"AF",KP:"AS",KR:"AS",KW:"AS",KG:"AS",LA:"AS",LB:"AS",LS:"AF",LV:"EU",LR:"AF",LY:"AF",LI:"EU",LT:"EU",LU:"EU",MO:"AS",MG:"AF",MW:"AF",MY:"AS",MV:"AS",ML:"AF",MT:"EU",MQ:"NA",MR:"AF",MU:"AF",MX:"NA",MC:"EU",MN:"AS",MD:"EU",ME:"EU",MS:"NA",MA:"AF",MZ:"AF",OM:"AS",NA:"AF",NR:"OC",NP:"AS",NL:"EU",AN:"NA",CW:"NA",AW:"NA",SX:"NA",BQ:"NA",NC:"OC",VU:"OC",NZ:"OC",NI:"NA",NE:"AF",NG:"AF",NU:"OC",NF:"OC",NO:"EU",MP:"OC",UM:"OC",FM:"OC",MH:"OC",PW:"OC",PK:"AS",PA:"NA",PG:"OC",PY:"SA",PE:"SA",PH:"AS",PN:"OC",PL:"EU",PT:"EU",GW:"AF",TL:"AS",PR:"NA",QA:"AS",RE:"AF",RO:"EU",RU:"EU",RW:"AF",BL:"NA",SH:"AF",KN:"NA",AI:"NA",LC:"NA",MF:"NA",PM:"NA",VC:"NA",SM:"EU",ST:"AF",SA:"AS",SN:"AF",RS:"EU",SC:"AF",SL:"AF",SG:"AS",SK:"EU",VN:"AS",SI:"EU",SO:"AF",ZA:"AF",ZW:"AF",ES:"EU",SS:"AF",EH:"AF",SD:"AF",SR:"SA",SJ:"EU",SZ:"AF",SE:"EU",CH:"EU",SY:"AS",TJ:"AS",TH:"AS",TG:"AF",TK:"OC",TO:"OC",TT:"NA",AE:"AS",TN:"AF",TR:"EU",TM:"AS",TC:"NA",TV:"OC",UG:"AF",UA:"EU",MK:"EU",EG:"AF",GB:"EU",GG:"EU",JE:"EU",IM:"EU",TZ:"AF",US:"NA",VI:"NA",BF:"AF",UY:"SA",UZ:"AS",VE:"SA",WF:"OC",WS:"OC",YE:"AS",ZM:"AF",XX:"XX"};function Pt(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=Qa[r],await t(e)}}function Br(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=atob(t),n=Uint8Array.from(r,o=>o.charCodeAt(0));return new TextDecoder().decode(n)}function es(e){let t=e.split("."),r=JSON.parse(Br(t[0])),n=JSON.parse(Br(t[1])),o=atob(t[2].replace(/-/g,"+").replace(/_/g,"/"));return{header:r,payload:n,signature:o,raw:{header:t[0],payload:t[1],signature:t[2]}}}function Ht({jwksUri:e,iss:t,aud:r,allowPublicAccess:n=!1}){async function o(){return(await(await fetch(e)).json()).keys}function a(c){return c.status=403,c.body="Forbidden",c}async function s(c){let f=new TextEncoder().encode([c.raw.header,c.raw.payload].join(".")),d=new Uint8Array(Array.from(c.signature).map(y=>y.charCodeAt(0))),p=await o();return(await Promise.all(p.map(async y=>{let w=await crypto.subtle.importKey("jwk",y,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",w,d,f)}))).some(y=>y)}async function i(c,u){if(c.request.method==="OPTIONS"||n)return u(c);if((c.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let d=es(c.request.headers.authorization.slice(7)),p=new Date(d.payload.exp*1e3),l=new Date(Date.now());return p<=l||!t||d.payload.iss!==t||!r||d.payload.aud!==r||!await s(d)?a(c):(c.state.user=d.payload,u(c))}return a(c)}return i}var Vr=v(M()),ts={get:Vr.default},oe=class{constructor({accountId:t,namespace:r,authEmail:n,authKey:o,ttl:a}){this.accountId=t,this.namespace=r,this.authEmail=n,this.authKey=o,this.ttl=a}getNamespaceUrl(){return new URL(`https://api.cloudflare.com/client/v4/accounts/${this.accountId}/storage/kv/namespaces/${this.namespace}`)}getUrlForKey(t){return new URL(`${this.getNamespaceUrl()}/values/${t}`)}async list(t,r=10){let n=`${this.getNamespaceUrl()}/keys?prefix=${t}&limit=${r}`,o=await fetch(n,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});return o.ok?o.json():null}async get(t,r){let n=this.getUrlForKey(t),o=await fetch(n,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});if(o.ok)switch(r){case"json":return o.json();case"stream":return o;case"arrayBuffer":return o.arrayBuffer();default:return o.text()}return null}async getWithMetadata(t,r){let[n,o]=await Promise.all([this.get(t,r),this.list(t)]),a=ts.get(o,"result.0.metadata",{});return{value:n,metadata:a}}async put(t,r,n={}){let o=this.getUrlForKey(t),a=new URLSearchParams;this.ttl&&a.append("expiration_ttl",this.ttl.toString());let s={"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey};o.search=a.toString();let i=new FormData;return i.append("value",r),i.append("metadata",JSON.stringify(n)),(await fetch(o.toString(),{method:"PUT",headers:s,body:r})).ok}async delete(t){let r=this.getUrlForKey(t);return fetch(r,{method:"DELETE",headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}})}};var O={methodsMethodsWithBody:["POST","PUT","PATCH"],http:{statusMessages:{404:"Not Found"}},mime:{css:"text/css",csv:"text/csv",html:"text/html",ico:"image/microsoft.vnd.icon",jpeg:"image/jpeg",js:"application/javascript",json:"application/json",png:"image/png",svg:"image/svg+xml",xml:"application/xml"}};function rs(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Tt({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:n,kvBasePath:o="",kvKey:a="{file}",defaultExtension:s="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:u={},mode:f="rest"}){let d=new oe({accountId:e,namespace:t,authEmail:r,authKey:n,mode:f}),p={...O.mime,...u};return async l=>{let y=S.resolveParams(a,l.params),w=y===""&&i?i:rs(y,s),m=await d.get(o+w);!m&&c&&(m=await d.get(o+c)),m?(l.status=200,l.body=m,l.set("Content-Type",p[w.split(".").pop()]||"text/plain")):(l.status=404,l.body=O.http.statusMessages[404],l.set("Content-Type","text/plain"))}}var zr=v(M());var Kt={get:zr.default};function ns(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function os(e,t){let r=Kt.get(e,"headers.if-none-match"),n=Kt.get(t,"metadata.headers.etag");return r?r===n:!1}function Ot({kvNamespaceBinding:e,kvBasePath:t="",kvKey:r="{file}",defaultExtension:n="html",defaultIndexDocument:o,defaultErrorDocument:a}){async function s(i){return await global[e].getWithMetadata(i)}return async i=>{let c=S.resolveParams(r,i.params),u=c===""&&o?o:ns(c,n),f=await s(t+u);if(!f&&a&&(f=await s(t+a)),f)if(os(i.request,f))i.status=304;else{i.status=f.status,i.body=f.value;let d=Kt.get(f,"metadata.headers",{});Object.keys(d).forEach(p=>{i.set(p,d[p])})}else i.status=404,i.body=O.http.statusMessages[404],i.set("Content-Type","text/plain")}}var jr=v(Fe());function xt({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:n}){let o=new jr.AwsClient({accessKeyId:e,secretAccessKey:t});return async a=>{let s=`https://lambda.${r}.amazonaws.com/2015-03-31/functions/${n}/invocations`,i={},c=await o.fetch(s,{body:JSON.stringify(i)});a.status=c.status,a.body=c.body;let u=S.instanceToJson(c.headers);Object.keys(u).forEach(f=>{a.set(f,u[f])})}}var hn=v(M()),fn=v(Xe());var pn={get:hn.default,set:fn.default};function oi(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function ai(e){return e[Math.floor(Math.random()*e.length)]}function Jt({sources:e=[]}){return async t=>{let r=ai(e),n={method:t.request.method,headers:oi(t.request.headers),redirect:"manual",cf:t.request.cf};if(O.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&pn.get(t,"event.request.body")){let i=t.event.request.clone();n.body=i.body}let o=S.resolveParams(r.url,t.params);if(r.resolveOverride){let i=S.resolveParams(r.resolveOverride,t.request.params);pn.set(n,"cf.resolveOverride",i)}let a=await fetch(o+t.request.search,n);t.body=a.body,t.status=a.status;let s=S.instanceToJson(a.headers);Object.keys(s).forEach(i=>{t.set(i,s[i])})}}var yn=v(M());var kt={name:"@ahmadissa/cloudworker-proxy",version:"1.1.92",description:"An api gateway for cloudflare workers",license:"MIT",repository:{type:"git",url:"git+https://github.com/ahmadissa/cloudworker-proxy.git"},bugs:{url:"https://github.com/ahmadissa/cloudworker-proxy/issues"},homepage:"https://github.com/ahmadissa/cloudworker-proxy#readme",author:"Ahmad Issa",keywords:["cloudflare","workers","api","gateway","proxy"],main:"dist/index.js",files:["dist/**"],scripts:{build:"esbuild --bundle src/index.ts --format=cjs --outdir=dist --sourcemap --minify",lint:"eslint src",package:"bun install; npm run build",test:"npm run unit && npm run lint","test:integration":"node integration/run.js",unit:"bun test","semantic-release":"semantic-release",prepare:"husky install"},release:{branches:["master"],plugins:["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/npm",{npmPublish:!1}],["@semantic-release/git",{assets:["docs","package.json"],message:"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},dependencies:{aws4fetch:"1.0.13",build:"^0.1.4","cloudworker-router":"1.11.2",cookie:"0.4.1",jose:"^5.1.0","lodash.get":"4.4.2","lodash.set":"4.3.2",package:"^1.0.1",redaxios:"^0.5.1",shortid:"2.2.16"},devDependencies:{"@semantic-release/git":"^10.0.1","@types/jest":"^29.5.5","@types/mocha":"^10.0.1","@types/node":"^20.5.9","@typescript-eslint/eslint-plugin":"^6.6.0","@typescript-eslint/parser":"^6.6.0",bun:"1.0.3",dotenv:"8.2.0",esbuild:"^0.19.2",eslint:"7.13.0","eslint-config-airbnb-base":"14.2.1","eslint-config-prettier":"6.15.0","eslint-plugin-import":"2.22.1","eslint-plugin-prettier":"3.1.4","fetch-mock":"9.11.0",husky:"^8.0.3","node-fetch":"2.6.1",prettier:"2.1.2","semantic-release":"^22.0.4",typescript:"^5.2.2",wrangler:"^3.7.0"},directories:{example:"examples",test:"test"}};var ie=class{constructor({maxSize:t=10,maxSeconds:r=10,sink:n}){this.maxSize=t,this.maxSeconds=r,this.queue=[],this.sink=n,this.flushing=!1,this.timer=null}async push(t){return this.queue.push(t),this.queue.length>this.maxSize?this.flush():(this.timer||(this.timer=new Promise((r,n)=>{this.resolveTimer=r,this.rejectTimer=n,this.cancelationToken=setTimeout(async()=>{try{r(await this.flush())}catch(o){n(o)}},this.maxSeconds*1e3)})),this.timer)}async flush(){if(!this.flushing){this.flushing=!0;try{let t=this.queue.join(`
5
+ `)}async hexBodyHash(){let p=this.headers.get("X-Amz-Content-Sha256");if(p==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");p=c(await i(this.body||""))}return p}}async function s(d,p){let l=await crypto.subtle.importKey("raw",typeof d=="string"?t.encode(d):d,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",l,t.encode(p))}async function i(d){return crypto.subtle.digest("SHA-256",typeof d=="string"?t.encode(d):d)}function c(d){return Array.prototype.map.call(new Uint8Array(d),p=>("0"+p.toString(16)).slice(-2)).join("")}function u(d){return d.replace(/[!'()*]/g,p=>"%"+p.charCodeAt(0).toString(16).toUpperCase())}function f(d,p){let{hostname:l,pathname:y}=d,w=l.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[m,g]=(w||["",""]).slice(1,3);if(g==="us-gov")g="us-gov-west-1";else if(g==="s3"||g==="s3-accelerate")g="us-east-1",m="s3";else if(m==="iot")l.startsWith("iot.")?m="execute-api":l.startsWith("data.jobs.iot.")?m="iot-jobs-data":m=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(m==="autoscaling"){let T=(p.get("X-Amz-Target")||"").split(".")[0];T==="AnyScaleFrontendService"?m="application-autoscaling":T==="AnyScaleScalingPlannerFrontendService"&&(m="autoscaling-plans")}else g==null&&m.startsWith("s3-")?(g=m.slice(3).replace(/^fips-|^external-1/,""),m="s3"):m.endsWith("-fips")?m=m.slice(0,-5):g&&/-\d$/.test(m)&&!/-\d$/.test(g)&&([m,g]=[g,m]);return[r[m]||m,g]}e.AwsClient=o,e.AwsV4Signer=a,Object.defineProperty(e,"__esModule",{value:!0})})});var Xe=_((Rd,un)=>{var ss="Expected a function",tn="__lodash_hash_undefined__",rn=1/0,is=9007199254740991,cs="[object Function]",ds="[object GeneratorFunction]",us="[object Symbol]",ps=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hs=/^\w*$/,fs=/^\./,ls=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ms=/[\\^$.*+?()[\]{}|]/g,ys=/\\(\\)?/g,gs=/^\[object .+?Constructor\]$/,ws=/^(?:0|[1-9]\d*)$/,As=typeof global=="object"&&global&&global.Object===Object&&global,Ss=typeof self=="object"&&self&&self.Object===Object&&self,It=As||Ss||Function("return this")();function Es(e,t){return e?.[t]}function bs(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Cs=Array.prototype,_s=Function.prototype,nn=Object.prototype,Ut=It["__core-js_shared__"],Yr=function(){var e=/[^.]+$/.exec(Ut&&Ut.keys&&Ut.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),on=_s.toString,Be=nn.hasOwnProperty,an=nn.toString,vs=RegExp("^"+on.call(Be).replace(ms,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Zr=It.Symbol,Ps=Cs.splice,Hs=sn(It,"Map"),Pe=sn(Object,"create"),Qr=Zr?Zr.prototype:void 0,en=Qr?Qr.toString:void 0;function ae(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Ts(){this.__data__=Pe?Pe(null):{}}function Ks(e){return this.has(e)&&delete this.__data__[e]}function Os(e){var t=this.__data__;if(Pe){var r=t[e];return r===tn?void 0:r}return Be.call(t,e)?t[e]:void 0}function xs(e){var t=this.__data__;return Pe?t[e]!==void 0:Be.call(t,e)}function Rs(e,t){var r=this.__data__;return r[e]=Pe&&t===void 0?tn:t,this}ae.prototype.clear=Ts;ae.prototype.delete=Ks;ae.prototype.get=Os;ae.prototype.has=xs;ae.prototype.set=Rs;function he(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Us(){this.__data__=[]}function Is(e){var t=this.__data__,r=Ve(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Ps.call(t,r,1),!0}function Ws(e){var t=this.__data__,r=Ve(t,e);return r<0?void 0:t[r][1]}function Js(e){return Ve(this.__data__,e)>-1}function ks(e,t){var r=this.__data__,n=Ve(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}he.prototype.clear=Us;he.prototype.delete=Is;he.prototype.get=Ws;he.prototype.has=Js;he.prototype.set=ks;function se(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Ns(){this.__data__={hash:new ae,map:new(Hs||he),string:new ae}}function Ds(e){return ze(this,e).delete(e)}function Ms(e){return ze(this,e).get(e)}function $s(e){return ze(this,e).has(e)}function qs(e,t){return ze(this,e).set(e,t),this}se.prototype.clear=Ns;se.prototype.delete=Ds;se.prototype.get=Ms;se.prototype.has=$s;se.prototype.set=qs;function Ls(e,t,r){var n=e[t];(!(Be.call(e,t)&&cn(n,r))||r===void 0&&!(t in e))&&(e[t]=r)}function Ve(e,t){for(var r=e.length;r--;)if(cn(e[r][0],t))return r;return-1}function Fs(e){if(!Ge(e)||Ys(e))return!1;var t=ti(e)||bs(e)?vs:gs;return t.test(ei(e))}function Gs(e,t,r,n){if(!Ge(e))return e;t=Xs(t,e)?[t]:Vs(t);for(var o=-1,a=t.length,s=a-1,i=e;i!=null&&++o<a;){var c=Qs(t[o]),u=r;if(o!=s){var f=i[c];u=n?n(f,c,i):void 0,u===void 0&&(u=Ge(f)?f:zs(t[o+1])?[]:{})}Ls(i,c,u),i=i[c]}return e}function Bs(e){if(typeof e=="string")return e;if(Jt(e))return en?en.call(e):"";var t=e+"";return t=="0"&&1/e==-rn?"-0":t}function Vs(e){return dn(e)?e:Zs(e)}function ze(e,t){var r=e.__data__;return js(t)?r[typeof t=="string"?"string":"hash"]:r.map}function sn(e,t){var r=Es(e,t);return Fs(r)?r:void 0}function zs(e,t){return t=t??is,!!t&&(typeof e=="number"||ws.test(e))&&e>-1&&e%1==0&&e<t}function Xs(e,t){if(dn(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Jt(e)?!0:hs.test(e)||!ps.test(e)||t!=null&&e in Object(t)}function js(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ys(e){return!!Yr&&Yr in e}var Zs=Wt(function(e){e=ni(e);var t=[];return fs.test(e)&&t.push(""),e.replace(ls,function(r,n,o,a){t.push(o?a.replace(ys,"$1"):n||r)}),t});function Qs(e){if(typeof e=="string"||Jt(e))return e;var t=e+"";return t=="0"&&1/e==-rn?"-0":t}function ei(e){if(e!=null){try{return on.call(e)}catch{}try{return e+""}catch{}}return""}function Wt(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(ss);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var s=e.apply(this,n);return r.cache=a.set(o,s),s};return r.cache=new(Wt.Cache||se),r}Wt.Cache=se;function cn(e,t){return e===t||e!==e&&t!==t}var dn=Array.isArray;function ti(e){var t=Ge(e)?an.call(e):"";return t==cs||t==ds}function Ge(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function ri(e){return!!e&&typeof e=="object"}function Jt(e){return typeof e=="symbol"||ri(e)&&an.call(e)==us}function ni(e){return e==null?"":Bs(e)}function oi(e,t,r){return e==null?e:Gs(e,t,r)}un.exports=oi});var gn=_(Mt=>{"use strict";Mt.parse=hi;Mt.serialize=fi;var di=decodeURIComponent,ui=encodeURIComponent,pi=/; */,Ye=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function hi(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(pi),a=n.decode||di,s=0;s<o.length;s++){var i=o[s],c=i.indexOf("=");if(!(c<0)){var u=i.substr(0,c).trim(),f=i.substr(++c,i.length).trim();f[0]=='"'&&(f=f.slice(1,-1)),r[u]==null&&(r[u]=li(f,a))}}return r}function fi(e,t,r){var n=r||{},o=n.encode||ui;if(typeof o!="function")throw new TypeError("option encode is invalid");if(!Ye.test(e))throw new TypeError("argument name is invalid");var a=o(t);if(a&&!Ye.test(a))throw new TypeError("argument val is invalid");var s=e+"="+a;if(n.maxAge!=null){var i=n.maxAge-0;if(isNaN(i)||!isFinite(i))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+Math.floor(i)}if(n.domain){if(!Ye.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!Ye.test(n.path))throw new TypeError("option path is invalid");s+="; Path="+n.path}if(n.expires){if(typeof n.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires="+n.expires.toUTCString()}if(n.httpOnly&&(s+="; HttpOnly"),n.secure&&(s+="; Secure"),n.sameSite){var c=typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite;switch(c){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function li(e,t){try{return t(e)}catch{return e}}});var An=_((jd,wn)=>{"use strict";var Ze=1;function mi(){return Ze=(Ze*9301+49297)%233280,Ze/233280}function yi(e){Ze=e}wn.exports={nextValue:mi,seed:yi}});var Oe=_((Yd,Cn)=>{"use strict";var $t=An(),ce="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",z,Sn,Ke;function qt(){Ke=!1}function En(e){if(!e){z!==ce&&(z=ce,qt());return}if(e!==z){if(e.length!==ce.length)throw new Error("Custom alphabet for shortid must be "+ce.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter(function(r,n,o){return n!==o.lastIndexOf(r)});if(t.length)throw new Error("Custom alphabet for shortid must be "+ce.length+" unique characters. These characters were not unique: "+t.join(", "));z=e,qt()}}function gi(e){return En(e),z}function wi(e){$t.seed(e),Sn!==e&&(qt(),Sn=e)}function Ai(){z||En(ce);for(var e=z.split(""),t=[],r=$t.nextValue(),n;e.length>0;)r=$t.nextValue(),n=Math.floor(r*e.length),t.push(e.splice(n,1)[0]);return t.join("")}function bn(){return Ke||(Ke=Ai(),Ke)}function Si(e){var t=bn();return t[e]}function Ei(){return z||ce}Cn.exports={get:Ei,characters:gi,seed:wi,lookup:Si,shuffled:bn}});var vn=_((Zd,_n)=>{"use strict";var Lt=typeof window=="object"&&(window.crypto||window.msCrypto),Ft;!Lt||!Lt.getRandomValues?Ft=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:Ft=function(e){return Lt.getRandomValues(new Uint8Array(e))};_n.exports=Ft});var Hn=_((Qd,Pn)=>{Pn.exports=function(e,t,r){for(var n=(2<<Math.log(t.length-1)/Math.LN2)-1,o=-~(1.6*n*r/t.length),a="";;)for(var s=e(o),i=o;i--;)if(a+=t[s[i]&n]||"",a.length===+r)return a}});var Kn=_((eu,Tn)=>{"use strict";var bi=Oe(),Ci=vn(),_i=Hn();function vi(e){for(var t=0,r,n="";!r;)n=n+_i(Ci,bi.get(),1),r=e<Math.pow(16,t+1),t++;return n}Tn.exports=vi});var Rn=_((ru,xn)=>{"use strict";var Qe=Kn(),tu=Oe(),Pi=1567752802062,Hi=7,et,On;function Ti(e){var t="",r=Math.floor((Date.now()-Pi)*.001);return r===On?et++:(et=0,On=r),t=t+Qe(Hi),t=t+Qe(e),et>0&&(t=t+Qe(et)),t=t+Qe(r),t}xn.exports=Ti});var In=_((nu,Un)=>{"use strict";var Ki=Oe();function Oi(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+Ki.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Un.exports=Oi});var Jn=_((ou,Wn)=>{"use strict";Wn.exports=0});var Dn=_((au,G)=>{"use strict";var Gt=Oe(),xi=Rn(),Ri=In(),kn=Jn()||0;function Ui(e){return Gt.seed(e),G.exports}function Ii(e){return kn=e,G.exports}function Wi(e){return e!==void 0&&Gt.characters(e),Gt.shuffled()}function Nn(){return xi(kn)}G.exports=Nn;G.exports.generate=Nn;G.exports.seed=Ui;G.exports.worker=Ii;G.exports.characters=Wi;G.exports.isValid=Ri});var $n=_((su,Mn)=>{"use strict";Mn.exports=Dn()});var Eo=v(Tr());var qr=v(M()),Da={get:qr.default};function Et(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function bt(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return Et(t);let n=Da.get(t,"request.headers.authorization");if(!n||!n.startsWith("Basic "))return Et(t);let o=e.users.map(i=>i.authToken),a=n.substring(6),s=o.indexOf(a);return s===-1?Et(t):(t.state.user=e.users[s].username,r(t))}}var Lr=caches.default;async function Ma(e){return await Lr.match(e)}async function $a(e,t){return Lr.put(e.href,t)}var Ct={get:Ma,set:$a};async function qa(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(a=>a.toString(16).padStart(2,"0")).join("")}var Fr=qa;function La(e,t={}){return Object.keys(t).reduce((r,n)=>r.replace(`{${n}}`,t[n]),e)}function _t(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}var S={resolveParams:La,instanceToJson:_t};var Fa=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function Ga(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}async function Ba(e,t){if(!t)return e.event.request;let r=t.match(/{.*?}/gi).map(a=>a.slice(1,-1)),n={};for(let a=0;a<r.length;a+=1){let s=r[a],i=s.split(":");switch(i[0]){case"method":n[s]=e.request.method;break;case"path":n[s]=e.request.path;break;case"bodyHash":n[s]=await Fr(await Ga(e.request));break;case"header":n[s]=e.request.headers[i[1]]||"";break;default:n[s]=s}}let o=encodeURIComponent(t.replace(/({(.*?)})/gi,(a,s,i)=>n[i]));return new Request(`http://${e.request.hostname}/${o}`)}function vt({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=Fa}){return async(n,o)=>{let a=await Ba(n,t),s=await Ct.get(a);if(s){n.body=s.body,n.status=s.status;let i=_t(s.headers);Object.keys(i).forEach(c=>{n.set(c,i[c])}),n.set("X-Cache-Hit",!0)}else{await o(n);let i;n.body.tee?[n.body,i]=n.body.tee():i=n.body;let c=new Response(i,{status:n.status});Object.keys(n.response.headers).forEach(u=>{r.indexOf(u.toLowerCase())===-1&&c.headers.set(u,n.response.headers[u])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),n.event.waitUntil(Ct.set(a,c))}}}function Pt({allowedOrigins:e=["*"],allowedMethods:t=["GET","PUT","POST","PATCH","DELETE","HEAD","OPTIONS"],allowCredentials:r=!0,allowedHeaders:n=["Content-Type"],allowedExposeHeaders:o=[],maxAge:a=600,optionsSuccessStatus:s=204,terminatePreflight:i=!1}){return async(c,u)=>{let{method:f}=c.request,{origin:d}=c.request.headers,p=c.request.headers["access-control-request-headers"];if(Va(c,d,e),za(c,r),Za(c,o),f==="OPTIONS"&&(Xa(c,t),ja(c,p,n),Ya(c,a),i)){c.status=s,c.set("content-length","0"),c.body="",Gr(c);return}Gr(c),await u(c)}}function Gr(e){let t=e.response?.headers,r=new Headers;if(t instanceof Headers)for(let[n,o]of t.entries())r.set(n.toLowerCase(),String(o));else if(t&&typeof t.entries=="function")for(let[n,o]of t.entries())r.set(String(n).toLowerCase(),String(o));else if(t&&typeof t=="object")for(let[n,o]of Object.entries(t))r.set(String(n).toLowerCase(),String(o));e.response.headers=r}function Va(e,t,r){Array.isArray(r)&&(r[0]==="*"?e.set("Access-Control-Allow-Origin","*"):r.indexOf(t)!==-1&&(e.set("Access-Control-Allow-Origin",t),Qa(e,"Origin")))}function za(e,t){t&&e.set("Access-Control-Allow-Credentials",String(t))}function Xa(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function ja(e,t,r){r.length===0&&t?e.set("Access-Control-Allow-Headers",t):r.length&&e.set("Access-Control-Allow-Headers",r.join(","))}function Ya(e,t){t&&e.set("Access-Control-Max-Age",String(t))}function Za(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}function Qa(e,t){let r=e.header("vary")||e.header("Vary");(r?.split(",").map(o=>o.trim().toLowerCase())||[]).includes(t.toLowerCase())||e.set("Vary",r?`${r}, ${t}`:t)}var es={AF:"AS",AL:"EU",AQ:"AN",DZ:"AF",AS:"OC",AD:"EU",AO:"AF",AG:"NA",AZ:"EU",AR:"SA",AU:"OC",AT:"EU",BS:"NA",BH:"AS",BD:"AS",AM:"EU",BB:"NA",BE:"EU",BM:"NA",BT:"AS",BO:"SA",BA:"EU",BW:"AF",BV:"AN",BR:"SA",BZ:"NA",IO:"AS",SB:"OC",VG:"NA",BN:"AS",BG:"EU",MM:"AS",BI:"AF",BY:"EU",KH:"AS",CM:"AF",CA:"NA",CV:"AF",KY:"NA",CF:"AF",LK:"AS",TD:"AF",CL:"SA",CN:"AS",TW:"AS",CX:"AS",CC:"AS",CO:"SA",KM:"AF",YT:"AF",CG:"AF",CD:"AF",CK:"OC",CR:"NA",HR:"EU",CU:"NA",CY:"EU",CZ:"EU",BJ:"AF",DK:"EU",DM:"NA",DO:"NA",EC:"SA",SV:"NA",GQ:"AF",ET:"AF",ER:"AF",EE:"EU",FO:"EU",FK:"SA",GS:"AN",FJ:"OC",FI:"EU",AX:"EU",FR:"EU",GF:"SA",PF:"OC",TF:"AN",DJ:"AF",GA:"AF",GE:"EU",GM:"AF",PS:"AS",DE:"EU",GH:"AF",GI:"EU",KI:"OC",GR:"EU",GL:"NA",GD:"NA",GP:"NA",GU:"OC",GT:"NA",GN:"AF",GY:"SA",HT:"NA",HM:"AN",VA:"EU",HN:"NA",HK:"AS",HU:"EU",IS:"EU",IN:"AS",ID:"AS",IR:"AS",IQ:"AS",IE:"EU",IL:"AS",IT:"EU",CI:"AF",JM:"NA",JP:"AS",KZ:"EU",JO:"AS",KE:"AF",KP:"AS",KR:"AS",KW:"AS",KG:"AS",LA:"AS",LB:"AS",LS:"AF",LV:"EU",LR:"AF",LY:"AF",LI:"EU",LT:"EU",LU:"EU",MO:"AS",MG:"AF",MW:"AF",MY:"AS",MV:"AS",ML:"AF",MT:"EU",MQ:"NA",MR:"AF",MU:"AF",MX:"NA",MC:"EU",MN:"AS",MD:"EU",ME:"EU",MS:"NA",MA:"AF",MZ:"AF",OM:"AS",NA:"AF",NR:"OC",NP:"AS",NL:"EU",AN:"NA",CW:"NA",AW:"NA",SX:"NA",BQ:"NA",NC:"OC",VU:"OC",NZ:"OC",NI:"NA",NE:"AF",NG:"AF",NU:"OC",NF:"OC",NO:"EU",MP:"OC",UM:"OC",FM:"OC",MH:"OC",PW:"OC",PK:"AS",PA:"NA",PG:"OC",PY:"SA",PE:"SA",PH:"AS",PN:"OC",PL:"EU",PT:"EU",GW:"AF",TL:"AS",PR:"NA",QA:"AS",RE:"AF",RO:"EU",RU:"EU",RW:"AF",BL:"NA",SH:"AF",KN:"NA",AI:"NA",LC:"NA",MF:"NA",PM:"NA",VC:"NA",SM:"EU",ST:"AF",SA:"AS",SN:"AF",RS:"EU",SC:"AF",SL:"AF",SG:"AS",SK:"EU",VN:"AS",SI:"EU",SO:"AF",ZA:"AF",ZW:"AF",ES:"EU",SS:"AF",EH:"AF",SD:"AF",SR:"SA",SJ:"EU",SZ:"AF",SE:"EU",CH:"EU",SY:"AS",TJ:"AS",TH:"AS",TG:"AF",TK:"OC",TO:"OC",TT:"NA",AE:"AS",TN:"AF",TR:"EU",TM:"AS",TC:"NA",TV:"OC",UG:"AF",UA:"EU",MK:"EU",EG:"AF",GB:"EU",GG:"EU",JE:"EU",IM:"EU",TZ:"AF",US:"NA",VI:"NA",BF:"AF",UY:"SA",UZ:"AS",VE:"SA",WF:"OC",WS:"OC",YE:"AS",ZM:"AF",XX:"XX"};function Ht(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=es[r],await t(e)}}function Br(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=atob(t),n=Uint8Array.from(r,o=>o.charCodeAt(0));return new TextDecoder().decode(n)}function ts(e){let t=e.split("."),r=JSON.parse(Br(t[0])),n=JSON.parse(Br(t[1])),o=atob(t[2].replace(/-/g,"+").replace(/_/g,"/"));return{header:r,payload:n,signature:o,raw:{header:t[0],payload:t[1],signature:t[2]}}}function Tt({jwksUri:e,iss:t,aud:r,allowPublicAccess:n=!1}){async function o(){return(await(await fetch(e)).json()).keys}function a(c){return c.status=403,c.body="Forbidden",c}async function s(c){let f=new TextEncoder().encode([c.raw.header,c.raw.payload].join(".")),d=new Uint8Array(Array.from(c.signature).map(y=>y.charCodeAt(0))),p=await o();return(await Promise.all(p.map(async y=>{let w=await crypto.subtle.importKey("jwk",y,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",w,d,f)}))).some(y=>y)}async function i(c,u){if(c.request.method==="OPTIONS"||n)return u(c);if((c.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let d=ts(c.request.headers.authorization.slice(7)),p=new Date(d.payload.exp*1e3),l=new Date(Date.now());return p<=l||!t||d.payload.iss!==t||!r||d.payload.aud!==r||!await s(d)?a(c):(c.state.user=d.payload,u(c))}return a(c)}return i}var Vr=v(M()),rs={get:Vr.default},oe=class{constructor({accountId:t,namespace:r,authEmail:n,authKey:o,ttl:a}){this.accountId=t,this.namespace=r,this.authEmail=n,this.authKey=o,this.ttl=a}getNamespaceUrl(){return new URL(`https://api.cloudflare.com/client/v4/accounts/${this.accountId}/storage/kv/namespaces/${this.namespace}`)}getUrlForKey(t){return new URL(`${this.getNamespaceUrl()}/values/${t}`)}async list(t,r=10){let n=`${this.getNamespaceUrl()}/keys?prefix=${t}&limit=${r}`,o=await fetch(n,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});return o.ok?o.json():null}async get(t,r){let n=this.getUrlForKey(t),o=await fetch(n,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});if(o.ok)switch(r){case"json":return o.json();case"stream":return o;case"arrayBuffer":return o.arrayBuffer();default:return o.text()}return null}async getWithMetadata(t,r){let[n,o]=await Promise.all([this.get(t,r),this.list(t)]),a=rs.get(o,"result.0.metadata",{});return{value:n,metadata:a}}async put(t,r,n={}){let o=this.getUrlForKey(t),a=new URLSearchParams;this.ttl&&a.append("expiration_ttl",this.ttl.toString());let s={"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey};o.search=a.toString();let i=new FormData;return i.append("value",r),i.append("metadata",JSON.stringify(n)),(await fetch(o.toString(),{method:"PUT",headers:s,body:r})).ok}async delete(t){let r=this.getUrlForKey(t);return fetch(r,{method:"DELETE",headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}})}};var O={methodsMethodsWithBody:["POST","PUT","PATCH"],http:{statusMessages:{404:"Not Found"}},mime:{css:"text/css",csv:"text/csv",html:"text/html",ico:"image/microsoft.vnd.icon",jpeg:"image/jpeg",js:"application/javascript",json:"application/json",png:"image/png",svg:"image/svg+xml",xml:"application/xml"}};function ns(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Kt({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:n,kvBasePath:o="",kvKey:a="{file}",defaultExtension:s="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:u={},mode:f="rest"}){let d=new oe({accountId:e,namespace:t,authEmail:r,authKey:n,mode:f}),p={...O.mime,...u};return async l=>{let y=S.resolveParams(a,l.params),w=y===""&&i?i:ns(y,s),m=await d.get(o+w);!m&&c&&(m=await d.get(o+c)),m?(l.status=200,l.body=m,l.set("Content-Type",p[w.split(".").pop()]||"text/plain")):(l.status=404,l.body=O.http.statusMessages[404],l.set("Content-Type","text/plain"))}}var zr=v(M());var Ot={get:zr.default};function os(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function as(e,t){let r=Ot.get(e,"headers.if-none-match"),n=Ot.get(t,"metadata.headers.etag");return r?r===n:!1}function xt({kvNamespaceBinding:e,kvBasePath:t="",kvKey:r="{file}",defaultExtension:n="html",defaultIndexDocument:o,defaultErrorDocument:a}){async function s(i){return await global[e].getWithMetadata(i)}return async i=>{let c=S.resolveParams(r,i.params),u=c===""&&o?o:os(c,n),f=await s(t+u);if(!f&&a&&(f=await s(t+a)),f)if(as(i.request,f))i.status=304;else{i.status=f.status,i.body=f.value;let d=Ot.get(f,"metadata.headers",{});Object.keys(d).forEach(p=>{i.set(p,d[p])})}else i.status=404,i.body=O.http.statusMessages[404],i.set("Content-Type","text/plain")}}var jr=v(Fe());function Rt({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:n}){let o=new jr.AwsClient({accessKeyId:e,secretAccessKey:t});return async a=>{let s=`https://lambda.${r}.amazonaws.com/2015-03-31/functions/${n}/invocations`,i={},c=await o.fetch(s,{body:JSON.stringify(i)});a.status=c.status,a.body=c.body;let u=S.instanceToJson(c.headers);Object.keys(u).forEach(f=>{a.set(f,u[f])})}}var hn=v(M()),fn=v(Xe());var pn={get:hn.default,set:fn.default};function ai(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function si(e){return e[Math.floor(Math.random()*e.length)]}function kt({sources:e=[]}){return async t=>{let r=si(e),n={method:t.request.method,headers:ai(t.request.headers),redirect:"manual",cf:t.request.cf};if(O.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&pn.get(t,"event.request.body")){let i=t.event.request.clone();n.body=i.body}let o=S.resolveParams(r.url,t.params);if(r.resolveOverride){let i=S.resolveParams(r.resolveOverride,t.request.params);pn.set(n,"cf.resolveOverride",i)}let a=await fetch(o+t.request.search,n);t.body=a.body,t.status=a.status;let s=S.instanceToJson(a.headers);Object.keys(s).forEach(i=>{t.set(i,s[i])})}}var yn=v(M());var Nt={name:"@ahmadissa/cloudworker-proxy",version:"1.1.93",description:"An api gateway for cloudflare workers",license:"MIT",repository:{type:"git",url:"git+https://github.com/ahmadissa/cloudworker-proxy.git"},bugs:{url:"https://github.com/ahmadissa/cloudworker-proxy/issues"},homepage:"https://github.com/ahmadissa/cloudworker-proxy#readme",author:"Ahmad Issa",keywords:["cloudflare","workers","api","gateway","proxy"],main:"dist/index.js",files:["dist/**"],scripts:{build:"esbuild --bundle src/index.ts --format=cjs --outdir=dist --sourcemap --minify",lint:"eslint src",package:"bun install; npm run build",test:"npm run unit && npm run lint","test:integration":"node integration/run.js",unit:"bun test","semantic-release":"semantic-release",prepare:"husky install"},release:{branches:["master"],plugins:["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/npm",{npmPublish:!1}],["@semantic-release/git",{assets:["docs","package.json"],message:"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},dependencies:{aws4fetch:"1.0.13",build:"^0.1.4","cloudworker-router":"1.11.2",cookie:"0.4.1",jose:"^5.1.0","lodash.get":"4.4.2","lodash.set":"4.3.2",package:"^1.0.1",redaxios:"^0.5.1",shortid:"2.2.16"},devDependencies:{"@semantic-release/git":"^10.0.1","@types/jest":"^29.5.5","@types/mocha":"^10.0.1","@types/node":"^20.5.9","@typescript-eslint/eslint-plugin":"^6.6.0","@typescript-eslint/parser":"^6.6.0",bun:"1.0.3",dotenv:"8.2.0",esbuild:"^0.19.2",eslint:"7.13.0","eslint-config-airbnb-base":"14.2.1","eslint-config-prettier":"6.15.0","eslint-plugin-import":"2.22.1","eslint-plugin-prettier":"3.1.4","fetch-mock":"9.11.0",husky:"^8.0.3","node-fetch":"2.6.1",prettier:"2.1.2","semantic-release":"^22.0.4",typescript:"^5.2.2",wrangler:"^3.7.0"},directories:{example:"examples",test:"test"}};var ie=class{constructor({maxSize:t=10,maxSeconds:r=10,sink:n}){this.maxSize=t,this.maxSeconds=r,this.queue=[],this.sink=n,this.flushing=!1,this.timer=null}async push(t){return this.queue.push(t),this.queue.length>this.maxSize?this.flush():(this.timer||(this.timer=new Promise((r,n)=>{this.resolveTimer=r,this.rejectTimer=n,this.cancelationToken=setTimeout(async()=>{try{r(await this.flush())}catch(o){n(o)}},this.maxSeconds*1e3)})),this.timer)}async flush(){if(!this.flushing){this.flushing=!0;try{let t=this.queue.join(`
6
6
  `);this.queue=[];let r=await this.sink(t);this.timer&&(clearTimeout(this.cancelationToken),this.resolveTimer(r))}catch(t){this.timer&&this.rejectTimer(t)}finally{this.timer=null,this.flushing=!1}}}};function ln(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((n,o)=>e[o]==null?n:{...n,...ln(e[o],t,r+o+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var je=ln;var He=class{constructor(t){this.url=t.url,this.contentType=t.contentType,this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t})}async log(t){let r=je(t,this.delimiter);await this.chunker.push(JSON.stringify(r))}async sendMessage(t){return fetch(this.url,{body:t,method:"POST",headers:{"Content-Type":this.contentType}})}};var mn=v(Fe());var Te=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t}),this.awsClient=new mn.AwsClient({accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,region:t.region}),this.streamName=t.streamName,this.region=t.region}async log(t){let r=je(t,this.delimiter);await this.chunker.push(JSON.stringify(r))}async sendMessage(t){let r=btoa(`${JSON.stringify(t)}
7
- `),n=JSON.stringify({DeliveryStreamName:this.streamName,Record:{Data:r}}),o=`https://firehose.${this.region}.amazonaws.com`,a=new Request(o,{method:"POST",body:n,headers:{"X-Amz-Target":"Firehose_20150804.PutRecord","Content-Type":" application/x-amz-json-1.1"}});return this.awsClient.fetch(a)}};var I={get:yn.default};async function ii(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}function Nt(e){let t;switch(e.type){case"http":t=new He(e);break;case"kinesis":t=new Te(e);break;default:throw new Error(`Log service type not supported: ${e.type}`)}return async(r,n)=>{r.state["logger-startDate"]=new Date;let o=await ii(r.request);try{await n(r);let a={message:"START",requestIp:I.get(r,"request.headers.x-real-ip"),requestId:I.get(r,"request.requestId"),request:{headers:I.get(r,"request.headers"),method:I.get(r,"request.method"),url:I.get(r,"request.href"),protocol:I.get(r,"request.protocol"),body:o},response:{status:r.status,headers:I.get(r,"response.headers")},handlers:I.get(r,"state.handlers",[]).join(","),route:I.get(r,"route.name"),timestamp:new Date().toISOString(),ttfb:new Date-r.state["logger-startDate"],redirectUrl:r.userRedirect,severity:30,proxyVersion:kt.version};r.event.waitUntil(t.log(a))}catch(a){let s={request:{headers:I.get(r,"request.headers"),method:I.get(r,"request.method"),handlers:I.get(r,"state.handlers",[]).join(","),url:I.get(r,"request.href"),body:o},message:"ERROR",stack:a.stack,error:a.message,severity:50,proxyVersion:kt.version};r.event.waitUntil(t.log(s))}}}var xe=v(gn()),Gn=v(M()),Bn=v(Xe()),Vn=v($n());async function Gt({refresh_token:e,authDomain:t,clientId:r,clientSecret:n}){let o=`${t}/oauth/token`,a=await fetch(o,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:r,client_secret:n,refresh_token:e})});if(!a.ok)throw new Error("Authentication failed");let s=await a.json();return{...s,expires:Date.now()+s.expires_in*1e3,refresh_token:e}}var qn="PBKDF2",Bt="AES-GCM",Wi="SHA-256",Ji="raw";function ki(e){let t=atob(e.replace(/_/g,"/").replace(/-/g,"+")),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o+=1)n[o]=t.charCodeAt(o);return n.buffer}function Ln(e){let t="",r=new Uint8Array(e),n=r.byteLength;for(let o=0;o<n;o+=1)t+=String.fromCharCode(r[o]);return btoa(t).replace(/\//g,"_").replace(/\+/g,"-")}function Ni(e){return new TextEncoder().encode(e).buffer}function Di(e){return new TextDecoder().decode(e)}async function Mi(e){let t=new TextEncoder;return crypto.subtle.importKey(Ji,t.encode(e),{name:qn},!1,["deriveKey"])}async function $i(e,t){let r=await Mi(e),o=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:qn,salt:o,iterations:1e3,hash:{name:Wi}},r,{name:Bt,length:256},!0,["encrypt","decrypt"])}async function qi(){let e=crypto.getRandomValues(new Uint8Array(8));return Ln(e)}async function Li(e,t){let r=ki(t),n=r.slice(0,16),o=r.slice(16),a=await crypto.subtle.decrypt({name:Bt,iv:n},e,o);return Di(a)}async function Fi(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),n=await crypto.subtle.encrypt({name:Bt,iv:r},e,Ni(t)),o=new Uint8Array(n.byteLength+r.byteLength);return o.set(r,0),o.set(new Uint8Array(n),r.byteLength),Ln(o)}var de={decrypt:Li,deriveAesGcmKey:$i,encrypt:Fi,getSalt:qi};var fe={get:Gn.default,set:Bn.default};function Fn({cookieHeader:e="",cookieName:t}){return xe.default.parse(e)[t]}function Gi(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function Bi(e=""){return e.split(",").indexOf("text/html")!==-1}function Vt({cookieName:e="proxy",cookieHttpOnly:t=!0,allowPublicAccess:r=!1,kvAccountId:n,kvNamespace:o,kvAuthEmail:a,kvAuthKey:s,kvTtl:i=2592e3,oauth2AuthDomain:c,oauth2ClientId:u,oauth2ClientSecret:f,oauth2Audience:d,oauth2Scopes:p=[],oauth2CallbackPath:l="/callback",oauth2CallbackType:y="cookie",oauth2LogoutPath:w="/logout",oauth2LoginPath:m="/login",oauth2ServerTokenPath:g="/oauth/token",oauth2ServerAuthorizePath:T="",oauth2ServerLogoutPath:N}){let U=new oe({accountId:n,namespace:o,authEmail:a,authKey:s,ttl:i}),ee=c,Se=l,ct=y,dt=g,Ne=T,ut=N,V=u,Ee=f,q=d,De=w,C=m,Ce=p.join("%20");async function Me(h,H){let P=`${ee}${dt}`,K=await fetch(P,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Gi({code:h,grant_type:"authorization_code",client_id:V,client_secret:Ee,redirect_uri:H})});if(!K.ok)throw new Error("Authentication failed");let L=await K.json();return{...L,expires:Date.now()+L.expires_in*1e3}}async function Eo(h){if(Fn({cookieHeader:h.request.headers.cookie,cookieName:e})){let K=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${K}`,path:"/",maxAge:0}))}let P=yr(h);if(N){let K=encodeURIComponent(`${h.request.protocol}://${h.request.host}${P}`);h.set("Location",`${ee}${ut}?client_id=${V}&returnTo=${K}`)}else h.set("Location",P);h.status=302}async function bo(h){let H=h.request.href.split("?")[0],P=await Me(h.request.query.code,H),K=Vn.default.generate(),L=await de.getSalt(),F=`${K}.${L}`,pt=await de.deriveAesGcmKey(K,L),te=await de.encrypt(pt,JSON.stringify(P));await U.put(K,te);let ht=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.status=302,ct==="query"?h.set("Location",`${h.request.query.state}?auth=${F}`):(h.set("Set-Cookie",xe.default.serialize(e,F,{httpOnly:t,domain:`.${ht}`,path:"/",maxAge:60*60*24*365})),h.set("Location",h.request.query.state))}async function Co(h,H){let[P,K]=H.split("."),L=await U.get(P);if(L){let F=await de.deriveAesGcmKey(P,K),pt=await de.decrypt(F,L),te=JSON.parse(pt);if(te.expires<Date.now()){te=await Gt({refresh_token:te.refresh_token,clientId:V,authDomain:ee,clientSecret:Ee});let ht=await de.encrypt(F,JSON.stringify(te));await U.put(P,ht)}h.state.accessToken=te.access_token,h.state.accessToken&&(h.request.headers.authorization=`bearer ${h.state.accessToken}`)}else{let F=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${F}`,maxAge:0}))}}function yr(h){let H=fe.get(h,"request.query.redirect-to");if(H)return H;let P=fe.get(h,"request.headers.referer");return P||"/"}async function _o(h){if(h.request.method==="OPTIONS")h.status=200;else{let H=yr(h),P=encodeURIComponent(H||"/"),K=encodeURIComponent(`${h.request.protocol}://${h.request.host}${Se}`);h.status=302,h.set("location",`${ee}${Ne}/authorize?state=${P}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${K}`)}}async function vo(h,H){if(h.request.method==="OPTIONS")await H(h);else if(fe.get(h,"request.headers.authorization","").toLowerCase().startsWith("bearer "))fe.set(h,"state.access_token",h.request.headers.authorization.slice(7)),await H(h);else{let P=fe.get(h,"request.query.auth")||Fn({cookieHeader:h.request.headers.cookie,cookieName:e});if(P&&await Co(h,P),fe.get(h,"state.accessToken")||r)await H(h);else if(Bi(h.request.headers.accept)){let L=encodeURIComponent(h.request.href),F=encodeURIComponent(`${h.request.protocol}://${h.request.host}${Se}`);h.status=302,h.set("location",`${ee}${Ne}/authorize?state=${L}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${F}`)}else h.status=403,h.body="Forbidden"}}return async(h,H)=>{switch(h.request.path){case Se:await bo(h);break;case De:await Eo(h);break;case C:await _o(h);break;default:await vo(h,H)}}}var zn=v(M());var Vi={get:zn.default};function zi(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function zt(e){let{localOriginOverride:t,backend:r}=e;return async n=>{let o=process.env.LOCAL?`${t||n.request.origin}${n.request.path}`:`${r}${n.request.path}`,a={headers:zi(n.request.headers),method:n.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(n.request.method)!==-1&&Vi.get(n,"event.request.body")){let c=n.event.request.clone();a.body=c.body}let s=await fetch(o,a);n.body=s.body,n.status=s.status;let i=S.instanceToJson(s.headers);Object.keys(i).forEach(c=>{n.set(c,i[c])})}}function Xt({body:e="",headers:t={},status:r=200}){return async n=>{e instanceof Object?(n.body=JSON.stringify(e),n.set("Content-Type","application/json")):n.body=S.resolveParams(e,n.params),n.status=r,Object.keys(t).forEach(o=>{n.set(o,S.resolveParams(t[o],n.params))})}}var Xn=v(M()),jn=v(Xe()),jt={get:Xn.default,set:jn.default};function Yt({type:e="IP",scope:t="default",limit:r=1e3}){let n={};function o(s,i){let c=i["x-real-ip"];return e==="IP"?`minute.${s}.${t}.${c}`:`minute.${s}.${t}.account`}function a(s){let i=jt.get(n,"minutes",{});Object.keys(i).forEach(c=>{c!==s&&delete n.minutes.minute})}return async(s,i)=>{let c=Math.trunc(Date.now()/6e4),u=Math.trunc(c*60+60-Date.now()/1e3),f=o(c,s.request.headers),d=jt.get(n,f,0);if(["HEAD","OPTIONS"].indexOf(s.request.method)===-1&&(d+=1),jt.set(n,f,d),r<d){s.status=429;return}a(c),await i(s)}}var Yn=v(Fe());function Xi(e,t={}){if(e&&t.forcePathStyle){let r=new URL(e);return`${r.protocol}//${r.host}/${t.bucket}`}if(e){let r=new URL(e);return`${r.protocol}//${t.bucket}.${r.host}`}return t.forcePathStyle&&t.region?`https://s3.${t.region}.amazonaws.com/${t.bucket}`:t.forcePathStyle?`https://s3.amazonaws.com/${t.bucket}`:t.region?`https://${t.bucket}.s3.${t.region}.amazonaws.com`:`https://${t.bucket}.s3.amazonaws.com`}function Zt({accessKeyId:e,secretAccessKey:t,bucket:r,region:n,endpoint:o,forcePathStyle:a,enableBucketOperations:s=!1}){let i=new Yn.AwsClient({accessKeyId:e,region:n,secretAccessKey:t}),c=Xi(o,{region:n,bucket:r,forcePathStyle:a});return async u=>{if(u.params.file===void 0&&!s){u.status=404,u.body=O.http.statusMessages[404],u.set("Content-Type","text/plain");return}let f=u.params.file?S.resolveParams(`${c}/{file}`,u.params):c,d={};u.request.headers.range&&(d.range=u.request.headers.range);let p=await i.fetch(f,{method:u.method||u.request.method,headers:d});u.status=p.status,u.body=p.body;let l=S.instanceToJson(p.headers);Object.keys(l).forEach(y=>{u.set(y,l[y])})}}var Qt;function Zn(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function ji(e){return Qt||(Qt=await crypto.subtle.importKey("raw",Zn(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),Qt}async function Yi(e,t){let r=await ji(t),n=await crypto.subtle.sign({name:"HMAC"},r,Zn(e));return btoa(String.fromCharCode.apply(null,new Uint8Array(n))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function er({secret:e}){return async(t,r)=>{let n=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Yi(n,e)!==t.query.sign){t.status=403;return}await r(t)}}function tr({host:e}){if(!e)throw new Error("Need to specify a host for the split middleware.");return async(t,r)=>{let n=t.clone();n.cloned=!0,n.request={...n.request,href:n.request.href.replace(n.request.href,e),host:e},t.event.waitUntil(r(n)),await r(t)}}async function Zi(e,t,r){let n=e.getReader(),o=t.getWriter(),a=new TextDecoder,s=new TextEncoder;for(;;){let{done:i,value:c}=await n.read();if(i)break;let u=a.decode(c),f=Qn(u,r),d=s.encode(f);await o.write(d)}await o.close()}function Qi(e,t){return e.replace(/{{\$(\d)}}/g,(r,n)=>t[parseInt(n,10)])}function Qn(e,t){return t.reduce((r,n)=>r.replace(n.regex,(...o)=>Qi(n.replace,o)),e)}function rr({transforms:e=[],statusCodes:t=[200]}){let r=e.map(n=>({regex:new RegExp(n.regex,"g"),replace:n.replace}));return async(n,o)=>{await o(n);let{body:a}=n;if(t.indexOf(n.status)!==-1)if(typeof a=="string")n.body=Qn(a,r);else{let{readable:s,writable:i}=new TransformStream;Zi(a,i,r),n.body=s}}}async function ec({projectID:e="your-project-id",API_KEY:t="GCP_API_KEY",token:r="action-token",siteKey:n="siteKey",expectedAction:o="action-name"}){let s=await(await fetch(`https://recaptchaenterprise.googleapis.com/v1/projects/${e}/assessments?key=${t}`,{body:JSON.stringify({event:{token:r,siteKey:n,expectedAction:o}}),headers:{"Content-Type":"application/json"},method:"POST"})).json();return s.tokenProperties.valid?s.tokenProperties.action===o?(s.riskAnalysis.reasons.forEach(i=>{console.log(i)}),s.riskAnalysis.score):(console.error("reCAPTCHA action error:"+o+":action:"+s.tokenProperties.action),null):(console.error("The CreateAssessment call failed because the token was: "+s.tokenProperties.invalidReason),0)}var tc=e=>(e=e.split("?")[0],e.replace(/\W/g,"").slice(0,100));function nr({projectID:e,API_KEY:t,siteKey:r}){function n(o){return{token:o["g-recaptcha-token"]}}return async(o,a)=>{let{token:s}=n(o.request.headers),i=tc(o.request.path);if((await ec({projectID:e,API_KEY:t,token:s,siteKey:r,expectedAction:i})||0)<.5){o.status=409;return}await a(o)}}async function rc({secret:e,token:t,expectedAction:r,remoteip:n}){if(!t)return{ok:!1,score:0,errorCodes:["missing-input-response"]};let o=new URLSearchParams({secret:e,response:t,...n?{remoteip:n}:{}}),s=await(await fetch("https://www.google.com/recaptcha/api/siteverify",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o})).json(),i=!!s.success,c=s.action===r,u=typeof s.score=="number"?s.score:0;return{ok:i&&c,score:u,action:s.action,errorCodes:s["error-codes"]}}var nc=e=>{let t=e;try{t=new URL(e,"http://dummy").pathname}catch{}return t=t.split("?")[0]||"/",t.replace(/\W/g,"").slice(0,100)},Re=(e,t)=>{if(e instanceof Headers)return e.get(t);let r=e[t]??e[t.toLowerCase()];return Array.isArray(r)?r[0]??null:r??null};function or({secret:e,headerName:t="x-recaptcha-token",minScore:r=.5,requireActionMatch:n=!0}){return async(o,a)=>{let s=o.request?.req||o.request||o,i=s.headers??o.request?.headers??{},c=Re(i,t)||Re(i,"g-recaptcha-token")||null,f=Re(i,"x-recaptcha-action")||nc(o.request?.path||o.request?.url||s.url||"/"),d=Re(i,"cf-connecting-ip")||Re(i,"x-forwarded-for")||void 0,p=await rc({secret:e,token:c,expectedAction:f,remoteip:d});if(!(p.score>=r&&p.ok)){let y={action:p.action,expectedAction:f,score:p.score??0,errors:p.errorCodes??[]};console.warn("[reCAPTCHA] failed:"+JSON.stringify(y)),o.status=409,o.set?.("Content-Type","application/json"),o.body=JSON.stringify({error:"reCAPTCHA verification failed"});return}await a(o)}}var oc=e=>!new RegExp("(\b)(onS+)(s*)=|javascript|<(|/|[^/>][^>]+|/[^>][^>]+)>").test(e),ac=(e,t,r)=>!(!oc(t)||!r[e](t)),sc=e=>!(e===null||typeof e!="object"||Array.isArray(e)&&(!e[0]||typeof e[0]!="object")),ar=(e,t)=>{let r=Object.keys(e);for(let n of r){if(!t[n])return console.error("key not allowed",n),!1;if(e[n]===null&&(e[n]=""),sc(e[n])){if(!ar(e[n],t))return console.error("error validating key+validateObject:",n),!1}else if(!ac(n,e[n],t))return console.error("error validating key+validateKeyValue:",n),!1}return!0},ic=e=>!(e==null||typeof e!="object"),cc=(e,t)=>{let r=e.query;return ic(r)?ar(r,t):!1};async function dc(e){if(["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1)return{};try{let t=await e.text();return JSON.parse(t)}catch{}return{}}function sr({allowedKeys:e}){return async(r,n)=>{if(!e)return r.status=501,!1;if(!cc(r,e))return r.status=422,!1;let o=await dc(r.request);if(!ar(o,e))return r.status=422,!1;await n(r)}}var yo=v(M());var E=crypto,D=e=>e instanceof CryptoKey;var x=new TextEncoder,W=new TextDecoder,xu=2**32;function X(...e){let t=e.reduce((o,{length:a})=>o+a,0),r=new Uint8Array(t),n=0;return e.forEach(o=>{r.set(o,n),n+=o.length}),r}var eo=e=>{let t=e;typeof t=="string"&&(t=x.encode(t));let r=32768,n=[];for(let o=0;o<t.length;o+=r)n.push(String.fromCharCode.apply(null,t.subarray(o,o+r)));return btoa(n.join(""))},J=e=>eo(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");var le=class extends Error{static get code(){return"ERR_JOSE_GENERIC"}constructor(t){super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}};var A=class extends le{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}};var k=class extends le{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}static get code(){return"ERR_JWS_INVALID"}},j=class extends le{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}static get code(){return"ERR_JWT_INVALID"}};var tt=E.getRandomValues.bind(E);function B(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function rt(e,t){return e.name===t}function ir(e){return parseInt(e.name.slice(4),10)}function hc(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function fc(e,t){if(t.length&&!t.some(r=>e.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(t.length>2){let n=t.pop();r+=`one of ${t.join(", ")}, or ${n}.`}else t.length===2?r+=`one of ${t[0]} or ${t[1]}.`:r+=`${t[0]}.`;throw new TypeError(r)}}function ro(e,t,...r){switch(t){case"HS256":case"HS384":case"HS512":{if(!rt(e.algorithm,"HMAC"))throw B("HMAC");let n=parseInt(t.slice(2),10);if(ir(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!rt(e.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let n=parseInt(t.slice(2),10);if(ir(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!rt(e.algorithm,"RSA-PSS"))throw B("RSA-PSS");let n=parseInt(t.slice(2),10);if(ir(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"EdDSA":{if(e.algorithm.name!=="Ed25519"&&e.algorithm.name!=="Ed448")throw B("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!rt(e.algorithm,"ECDSA"))throw B("ECDSA");let n=hc(t);if(e.algorithm.namedCurve!==n)throw B(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}fc(e,r)}function no(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&&t.constructor.name&&(e+=` Received an instance of ${t.constructor.name}`),e}var $=(e,...t)=>no("Key must be ",e,...t);function cr(e,t,...r){return no(`Key for the ${e} algorithm must be `,t,...r)}var dr=e=>D(e),b=["CryptoKey"];var wc=(...e)=>{let t=e.filter(Boolean);if(t.length===0||t.length===1)return!0;let r;for(let n of t){let o=Object.keys(n);if(!r||r.size===0){r=new Set(o);continue}for(let a of o){if(r.has(a))return!1;r.add(a)}}return!0},me=wc;function Ac(e){return typeof e=="object"&&e!==null}function R(e){if(!Ac(e)||Object.prototype.toString.call(e)!=="[object Object]")return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var nt=(e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){let{modulusLength:r}=t.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};var Z=(e,t,r=0)=>{r===0&&(t.unshift(t.length),t.unshift(6));let n=e.indexOf(t[0],r);if(n===-1)return!1;let o=e.subarray(n,n+t.length);return o.length!==t.length?!1:o.every((a,s)=>a===t[s])||Z(e,t,n+1)},ao=e=>{switch(!0){case Z(e,[42,134,72,206,61,3,1,7]):return"P-256";case Z(e,[43,129,4,0,34]):return"P-384";case Z(e,[43,129,4,0,35]):return"P-521";case Z(e,[43,101,110]):return"X25519";case Z(e,[43,101,111]):return"X448";case Z(e,[43,101,112]):return"Ed25519";case Z(e,[43,101,113]):return"Ed448";default:throw new A("Invalid or unsupported EC Key Curve or OKP Key Sub Type")}},Cc=async(e,t,r,n,o)=>{let a,s,i=new Uint8Array(atob(r.replace(e,"")).split("").map(u=>u.charCodeAt(0))),c=t==="spki";switch(n){case"PS256":case"PS384":case"PS512":a={name:"RSA-PSS",hash:`SHA-${n.slice(-3)}`},s=c?["verify"]:["sign"];break;case"RS256":case"RS384":case"RS512":a={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${n.slice(-3)}`},s=c?["verify"]:["sign"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":a={name:"RSA-OAEP",hash:`SHA-${parseInt(n.slice(-3),10)||1}`},s=c?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":a={name:"ECDSA",namedCurve:"P-256"},s=c?["verify"]:["sign"];break;case"ES384":a={name:"ECDSA",namedCurve:"P-384"},s=c?["verify"]:["sign"];break;case"ES512":a={name:"ECDSA",namedCurve:"P-521"},s=c?["verify"]:["sign"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{let u=ao(i);a=u.startsWith("P-")?{name:"ECDH",namedCurve:u}:{name:u},s=c?[]:["deriveBits"];break}case"EdDSA":a={name:ao(i)},s=c?["verify"]:["sign"];break;default:throw new A('Invalid or unsupported "alg" (Algorithm) value')}return E.subtle.importKey(t,i,a,o?.extractable??!1,s)},so=(e,t,r)=>Cc(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r);async function ur(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return so(e,t,r)}var _c=(e,t)=>{if(!(t instanceof Uint8Array)){if(!dr(t))throw new TypeError(cr(e,t,...b,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${b.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},vc=(e,t,r)=>{if(!dr(t))throw new TypeError(cr(e,t,...b));if(t.type==="secret")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&t.type==="public")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&t.type==="public")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm decryption must be of type "private"`);if(t.algorithm&&r==="verify"&&t.type==="private")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);if(t.algorithm&&r==="encrypt"&&t.type==="private")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm encryption must be of type "public"`)},Pc=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?_c(e,t):vc(e,t,r)},We=Pc;function Uc(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 new Set;if(!Array.isArray(n.crit)||n.crit.length===0||n.crit.some(s=>typeof s!="string"||s.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a;r!==void 0?a=new Map([...Object.entries(r),...t.entries()]):a=t;for(let s of n.crit){if(!a.has(s))throw new A(`Extension Header Parameter "${s}" is not recognized`);if(o[s]===void 0)throw new e(`Extension Header Parameter "${s}" is missing`);if(a.get(s)&&n[s]===void 0)throw new e(`Extension Header Parameter "${s}" MUST be integrity protected`)}return new Set(n.crit)}var ye=Uc;var Nc=Symbol();function ot(e,t){let r=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:r,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:r,name:"RSA-PSS",saltLength:e.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:r,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:r,name:"ECDSA",namedCurve:t.namedCurve};case"EdDSA":return{name:t.name};default:throw new A(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}function at(e,t,r){if(D(t))return ro(t,e,r),t;if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError($(t,...b));return E.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[r])}throw new TypeError($(t,...b,"Uint8Array"))}var Q=e=>Math.floor(e.getTime()/1e3);var Mc=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,st=e=>{let t=Mc.exec(e);if(!t)throw new TypeError("Invalid time period format");let r=parseFloat(t[1]);switch(t[2].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":return Math.round(r);case"minute":case"minutes":case"min":case"mins":case"m":return Math.round(r*60);case"hour":case"hours":case"hr":case"hrs":case"h":return Math.round(r*3600);case"day":case"days":case"d":return Math.round(r*86400);case"week":case"weeks":case"w":return Math.round(r*604800);default:return Math.round(r*31557600)}};var Fc=async(e,t,r)=>{let n=await at(e,t,"sign");nt(e,n);let o=await E.subtle.sign(ot(e,n.algorithm),n,r);return new Uint8Array(o)},fo=Fc;var ge=class{constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=t}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}async sign(t,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new k("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!me(this._protectedHeader,this._unprotectedHeader))throw new k("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader},o=ye(k,new Map([["b64",!0]]),r?.crit,this._protectedHeader,n),a=!0;if(o.has("b64")&&(a=this._protectedHeader.b64,typeof a!="boolean"))throw new k('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=n;if(typeof s!="string"||!s)throw new k('JWS "alg" (Algorithm) Header Parameter missing or invalid');We(s,t,"sign");let i=this._payload;a&&(i=x.encode(J(i)));let c;this._protectedHeader?c=x.encode(J(JSON.stringify(this._protectedHeader))):c=x.encode("");let u=X(c,x.encode("."),i),f=await fo(s,t,u),d={signature:J(f),payload:""};return a&&(d.payload=W.decode(i)),this._unprotectedHeader&&(d.header=this._unprotectedHeader),this._protectedHeader&&(d.protected=W.decode(c)),d}};var Je=class{constructor(t){this._flattened=new ge(t)}setProtectedHeader(t){return this._flattened.setProtectedHeader(t),this}async sign(t,r){let n=await this._flattened.sign(t,r);if(n.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${n.protected}.${n.payload}.${n.signature}`}};function we(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}var Ae=class{constructor(t={}){if(!R(t))throw new TypeError("JWT Claims Set MUST be an object");this._payload=t}setIssuer(t){return this._payload={...this._payload,iss:t},this}setSubject(t){return this._payload={...this._payload,sub:t},this}setAudience(t){return this._payload={...this._payload,aud:t},this}setJti(t){return this._payload={...this._payload,jti:t},this}setNotBefore(t){return typeof t=="number"?this._payload={...this._payload,nbf:we("setNotBefore",t)}:t instanceof Date?this._payload={...this._payload,nbf:we("setNotBefore",Q(t))}:this._payload={...this._payload,nbf:Q(new Date)+st(t)},this}setExpirationTime(t){return typeof t=="number"?this._payload={...this._payload,exp:we("setExpirationTime",t)}:t instanceof Date?this._payload={...this._payload,exp:we("setExpirationTime",Q(t))}:this._payload={...this._payload,exp:Q(new Date)+st(t)},this}setIssuedAt(t){return typeof t>"u"?this._payload={...this._payload,iat:Q(new Date)}:t instanceof Date?this._payload={...this._payload,iat:we("setIssuedAt",Q(t))}:this._payload={...this._payload,iat:we("setIssuedAt",t)},this}};var ke=class extends Ae{setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){let n=new Je(x.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new j("JWTs MUST NOT use unencoded payload");return n.sign(t,r)}};var zc;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(zc="jose/v5.1.0");var lo=function e(t){function r(o,a,s){var i,c={};if(Array.isArray(o))return o.concat(a);for(i in o)c[s?i.toLowerCase():i]=o[i];for(i in a){var u=s?i.toLowerCase():i,f=a[i];c[u]=u in c&&typeof f=="object"?r(c[u],f,u=="headers"):f}return c}function n(o,a,s,i,c){var u=typeof o!="string"?(a=o).url:o,f={config:a},d=r(t,a),p={};i=i||d.data,(d.transformRequest||[]).map(function(l){i=l(i,d.headers)||i}),d.auth&&(p.authorization=d.auth),i&&typeof i=="object"&&typeof i.append!="function"&&typeof i.text!="function"&&(i=JSON.stringify(i),p["content-type"]="application/json");try{p[d.xsrfHeaderName]=decodeURIComponent(document.cookie.match(RegExp("(^|; )"+d.xsrfCookieName+"=([^;]*)"))[2])}catch{}return d.baseURL&&(u=u.replace(/^(?!.*\/\/)\/?/,d.baseURL+"/")),d.params&&(u+=(~u.indexOf("?")?"&":"?")+(d.paramsSerializer?d.paramsSerializer(d.params):new URLSearchParams(d.params))),(d.fetch||fetch)(u,{method:(s||d.method||"get").toUpperCase(),body:i,headers:r(d.headers,p,!0),credentials:d.withCredentials?"include":c}).then(function(l){for(var y in l)typeof l[y]!="function"&&(f[y]=l[y]);return d.responseType=="stream"?(f.data=l.body,f):l[d.responseType||"text"]().then(function(w){f.data=w,f.data=JSON.parse(w)}).catch(Object).then(function(){return(d.validateStatus?d.validateStatus(l.status):l.ok)?f:Promise.reject(f)})})}return t=t||{},n.request=n,n.get=function(o,a){return n(o,a,"get")},n.delete=function(o,a){return n(o,a,"delete")},n.head=function(o,a){return n(o,a,"head")},n.options=function(o,a){return n(o,a,"options")},n.post=function(o,a,s){return n(o,s,"post",a)},n.put=function(o,a,s){return n(o,s,"put",a)},n.patch=function(o,a,s){return n(o,s,"patch",a)},n.all=Promise.all.bind(Promise),n.spread=function(o){return o.apply.bind(o,o)},n.CancelToken=typeof AbortController=="function"?AbortController:Object,n.defaults=t,n.create=e,n}();var Yc=e=>{if(!e)return!1;let t=JSON.parse(atob(e.split(".")[1])),r=Math.floor(Date.now()/1e3);return t.exp>r-600},it=async(e,t)=>{let r=await GCP_INVOKER_TOKEN.get(t);if(Yc(r))return r;let n=await ur(e.private_key,"RS256"),o=e.client_email,a={iss:o,sub:o,aud:"https://www.googleapis.com/oauth2/v4/token",target_audience:t,iat:Math.floor(Date.now()/1e3),exp:Math.floor(Date.now()/1e3)+3600},s=await new ke(a).setProtectedHeader({alg:"RS256",typ:"JWT"}).sign(n),i=await lo.post("https://www.googleapis.com/oauth2/v4/token",{grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:s});return await GCP_INVOKER_TOKEN.delete(t),await GCP_INVOKER_TOKEN.put(t,i.data.id_token),i.data.id_token};var mo={get:yo.default};function hr({project_id:e,region:t,functionName:r,serviceAccount:n}){return async o=>{let a=mo.get(o,"request.query",{}),s=new URLSearchParams(a).toString(),i=`https://${t}-${e}.cloudfunctions.net/${r}`,c=`https://${t}-${e}.cloudfunctions.net/${r}${s?`?${s}`:""}`;console.log("urlWithParms:",c);let u=await it(n,i);o.request.headers["X-Serverless-Authorization"]=`Bearer ${u}`;let f={headers:o.request.headers,method:o.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(o.request.method)!==-1&&mo.get(o,"event.request.body")){let l=o.event.request.clone();f.body=l.body}let d=await fetch(c,f);o.body=d.body,o.status=d.status;let p=S.instanceToJson(d.headers);Object.keys(p).forEach(l=>{o.set(l,p[l])})}}var go=v(M());var Zc={get:go.default};function fr({domain:e,serviceAccount:t}){return async r=>{let n=`${e}${r.request.path}`,o=await it(t,e),a=new Headers(r.request.headers);a.set("X-Serverless-Authorization",`Bearer ${o}`),a.set("X-Token",a.get("authorization")||"N/A"),a.set("authorization","");let s=r.event.cf||{},i={"X-Geo-Country":s.country,"X-Geo-City":s.city,"X-Geo-Latitude":s.latitude,"X-Geo-Longitude":s.longitude,"X-Geo-Timezone":s.timezone,"X-Geo-Region":s.region,"X-Geo-PostalCode":s.postalCode,"X-Geo-RegionCode":s.regionCode,"X-Geo-EU-Country":s.isEUCountry?"1":"0"};for(let[d,p]of Object.entries(i))p!==void 0&&a.set(d,p);let c={method:r.request.method,headers:a,redirect:"manual"};if(O.methodsMethodsWithBody.includes(r.request.method)&&Zc.get(r,"event.request.body")){let d=r.event.request.clone();c.body=d.body}let u=await fetch(n,c),f=S.instanceToJson(u.headers);r.status=u.status,r.body=await u.text(),Object.entries(f).forEach(([d,p])=>{d=d.toLowerCase(),r.header(d)||r.set(d,p)})}}function lr({headers:e={},headersFN:t}){return async(r,n)=>{if(e)for(let o of Object.keys(e))r.set(o,e[o]);if(t){let o=await t();for(let a of Object.keys(o))r.set(a,o[a])}await n(r)}}async function Qc(e){if(["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1)return"";try{return await e.text()}catch{return""}}function ed(e){return new TextEncoder().encode(e).length}function wo(e,t,r){e.status=413;let n=JSON.stringify({error:"Payload too large",limit:t,...r!=null?{received:r}:{}});e.set("content-type","application/json"),e.set("content-length",String(n.length)),e.body=n}function mr({bodySizeLimit:e=512}={}){return async(t,r)=>{let n=t.request?.method||"GET";if(["POST","PATCH","PUT","DELETE"].indexOf(n)===-1)return r(t);let o=t.request?.headers?.["content-length"],a=o?Number(o):NaN;if(Number.isFinite(a)&&a>e)return wo(t,e,a);let s=await Qc(t.request),i=typeof s=="string"?ed(s):0;if(i>e)return wo(t,e,i);await r(t)}}var Ao={basicAuth:Et,cache:_t,cors:vt,geoDecorator:Pt,jwt:Ht,kvStorage:Tt,kvStorageBinding:Ot,lambda:xt,loadbalancer:Jt,logger:Nt,oauth2:Vt,origin:zt,rateLimit:Yt,response:Xt,s3:Zt,signature:er,split:tr,transform:rr,recaptcha:nr,recaptchaV3:or,userInputValidation:sr,cloudfunction:hr,gcpCloudrun:fr,headers:lr,bodySizeLimit:mr};module.exports=class{constructor(t=[],r={}){this.router=new So.default,t.forEach(n=>{let o=r[n.handlerName]||Ao[n.handlerName];if(!o)throw new Error(`Handler ${n.handlerName} is not supported`);this.router.add(n,o(n.options))})}async resolve(t){return t.cf=t?.request?.cf||{},this.router.resolve(t)}};
7
+ `),n=JSON.stringify({DeliveryStreamName:this.streamName,Record:{Data:r}}),o=`https://firehose.${this.region}.amazonaws.com`,a=new Request(o,{method:"POST",body:n,headers:{"X-Amz-Target":"Firehose_20150804.PutRecord","Content-Type":" application/x-amz-json-1.1"}});return this.awsClient.fetch(a)}};var I={get:yn.default};async function ci(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}function Dt(e){let t;switch(e.type){case"http":t=new He(e);break;case"kinesis":t=new Te(e);break;default:throw new Error(`Log service type not supported: ${e.type}`)}return async(r,n)=>{r.state["logger-startDate"]=new Date;let o=await ci(r.request);try{await n(r);let a={message:"START",requestIp:I.get(r,"request.headers.x-real-ip"),requestId:I.get(r,"request.requestId"),request:{headers:I.get(r,"request.headers"),method:I.get(r,"request.method"),url:I.get(r,"request.href"),protocol:I.get(r,"request.protocol"),body:o},response:{status:r.status,headers:I.get(r,"response.headers")},handlers:I.get(r,"state.handlers",[]).join(","),route:I.get(r,"route.name"),timestamp:new Date().toISOString(),ttfb:new Date-r.state["logger-startDate"],redirectUrl:r.userRedirect,severity:30,proxyVersion:Nt.version};r.event.waitUntil(t.log(a))}catch(a){let s={request:{headers:I.get(r,"request.headers"),method:I.get(r,"request.method"),handlers:I.get(r,"state.handlers",[]).join(","),url:I.get(r,"request.href"),body:o},message:"ERROR",stack:a.stack,error:a.message,severity:50,proxyVersion:Nt.version};r.event.waitUntil(t.log(s))}}}var xe=v(gn()),Gn=v(M()),Bn=v(Xe()),Vn=v($n());async function Bt({refresh_token:e,authDomain:t,clientId:r,clientSecret:n}){let o=`${t}/oauth/token`,a=await fetch(o,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:r,client_secret:n,refresh_token:e})});if(!a.ok)throw new Error("Authentication failed");let s=await a.json();return{...s,expires:Date.now()+s.expires_in*1e3,refresh_token:e}}var qn="PBKDF2",Vt="AES-GCM",Ji="SHA-256",ki="raw";function Ni(e){let t=atob(e.replace(/_/g,"/").replace(/-/g,"+")),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o+=1)n[o]=t.charCodeAt(o);return n.buffer}function Ln(e){let t="",r=new Uint8Array(e),n=r.byteLength;for(let o=0;o<n;o+=1)t+=String.fromCharCode(r[o]);return btoa(t).replace(/\//g,"_").replace(/\+/g,"-")}function Di(e){return new TextEncoder().encode(e).buffer}function Mi(e){return new TextDecoder().decode(e)}async function $i(e){let t=new TextEncoder;return crypto.subtle.importKey(ki,t.encode(e),{name:qn},!1,["deriveKey"])}async function qi(e,t){let r=await $i(e),o=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:qn,salt:o,iterations:1e3,hash:{name:Ji}},r,{name:Vt,length:256},!0,["encrypt","decrypt"])}async function Li(){let e=crypto.getRandomValues(new Uint8Array(8));return Ln(e)}async function Fi(e,t){let r=Ni(t),n=r.slice(0,16),o=r.slice(16),a=await crypto.subtle.decrypt({name:Vt,iv:n},e,o);return Mi(a)}async function Gi(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),n=await crypto.subtle.encrypt({name:Vt,iv:r},e,Di(t)),o=new Uint8Array(n.byteLength+r.byteLength);return o.set(r,0),o.set(new Uint8Array(n),r.byteLength),Ln(o)}var de={decrypt:Fi,deriveAesGcmKey:qi,encrypt:Gi,getSalt:Li};var fe={get:Gn.default,set:Bn.default};function Fn({cookieHeader:e="",cookieName:t}){return xe.default.parse(e)[t]}function Bi(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function Vi(e=""){return e.split(",").indexOf("text/html")!==-1}function zt({cookieName:e="proxy",cookieHttpOnly:t=!0,allowPublicAccess:r=!1,kvAccountId:n,kvNamespace:o,kvAuthEmail:a,kvAuthKey:s,kvTtl:i=2592e3,oauth2AuthDomain:c,oauth2ClientId:u,oauth2ClientSecret:f,oauth2Audience:d,oauth2Scopes:p=[],oauth2CallbackPath:l="/callback",oauth2CallbackType:y="cookie",oauth2LogoutPath:w="/logout",oauth2LoginPath:m="/login",oauth2ServerTokenPath:g="/oauth/token",oauth2ServerAuthorizePath:T="",oauth2ServerLogoutPath:N}){let U=new oe({accountId:n,namespace:o,authEmail:a,authKey:s,ttl:i}),ee=c,Se=l,dt=y,ut=g,Ne=T,pt=N,V=u,Ee=f,q=d,De=w,C=m,Ce=p.join("%20");async function Me(h,H){let P=`${ee}${ut}`,K=await fetch(P,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Bi({code:h,grant_type:"authorization_code",client_id:V,client_secret:Ee,redirect_uri:H})});if(!K.ok)throw new Error("Authentication failed");let L=await K.json();return{...L,expires:Date.now()+L.expires_in*1e3}}async function bo(h){if(Fn({cookieHeader:h.request.headers.cookie,cookieName:e})){let K=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${K}`,path:"/",maxAge:0}))}let P=yr(h);if(N){let K=encodeURIComponent(`${h.request.protocol}://${h.request.host}${P}`);h.set("Location",`${ee}${pt}?client_id=${V}&returnTo=${K}`)}else h.set("Location",P);h.status=302}async function Co(h){let H=h.request.href.split("?")[0],P=await Me(h.request.query.code,H),K=Vn.default.generate(),L=await de.getSalt(),F=`${K}.${L}`,ht=await de.deriveAesGcmKey(K,L),te=await de.encrypt(ht,JSON.stringify(P));await U.put(K,te);let ft=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.status=302,dt==="query"?h.set("Location",`${h.request.query.state}?auth=${F}`):(h.set("Set-Cookie",xe.default.serialize(e,F,{httpOnly:t,domain:`.${ft}`,path:"/",maxAge:60*60*24*365})),h.set("Location",h.request.query.state))}async function _o(h,H){let[P,K]=H.split("."),L=await U.get(P);if(L){let F=await de.deriveAesGcmKey(P,K),ht=await de.decrypt(F,L),te=JSON.parse(ht);if(te.expires<Date.now()){te=await Bt({refresh_token:te.refresh_token,clientId:V,authDomain:ee,clientSecret:Ee});let ft=await de.encrypt(F,JSON.stringify(te));await U.put(P,ft)}h.state.accessToken=te.access_token,h.state.accessToken&&(h.request.headers.authorization=`bearer ${h.state.accessToken}`)}else{let F=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${F}`,maxAge:0}))}}function yr(h){let H=fe.get(h,"request.query.redirect-to");if(H)return H;let P=fe.get(h,"request.headers.referer");return P||"/"}async function vo(h){if(h.request.method==="OPTIONS")h.status=200;else{let H=yr(h),P=encodeURIComponent(H||"/"),K=encodeURIComponent(`${h.request.protocol}://${h.request.host}${Se}`);h.status=302,h.set("location",`${ee}${Ne}/authorize?state=${P}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${K}`)}}async function Po(h,H){if(h.request.method==="OPTIONS")await H(h);else if(fe.get(h,"request.headers.authorization","").toLowerCase().startsWith("bearer "))fe.set(h,"state.access_token",h.request.headers.authorization.slice(7)),await H(h);else{let P=fe.get(h,"request.query.auth")||Fn({cookieHeader:h.request.headers.cookie,cookieName:e});if(P&&await _o(h,P),fe.get(h,"state.accessToken")||r)await H(h);else if(Vi(h.request.headers.accept)){let L=encodeURIComponent(h.request.href),F=encodeURIComponent(`${h.request.protocol}://${h.request.host}${Se}`);h.status=302,h.set("location",`${ee}${Ne}/authorize?state=${L}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${F}`)}else h.status=403,h.body="Forbidden"}}return async(h,H)=>{switch(h.request.path){case Se:await Co(h);break;case De:await bo(h);break;case C:await vo(h);break;default:await Po(h,H)}}}var zn=v(M());var zi={get:zn.default};function Xi(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Xt(e){let{localOriginOverride:t,backend:r}=e;return async n=>{let o=process.env.LOCAL?`${t||n.request.origin}${n.request.path}`:`${r}${n.request.path}`,a={headers:Xi(n.request.headers),method:n.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(n.request.method)!==-1&&zi.get(n,"event.request.body")){let c=n.event.request.clone();a.body=c.body}let s=await fetch(o,a);n.body=s.body,n.status=s.status;let i=S.instanceToJson(s.headers);Object.keys(i).forEach(c=>{n.set(c,i[c])})}}function jt({body:e="",headers:t={},status:r=200}){return async n=>{e instanceof Object?(n.body=JSON.stringify(e),n.set("Content-Type","application/json")):n.body=S.resolveParams(e,n.params),n.status=r,Object.keys(t).forEach(o=>{n.set(o,S.resolveParams(t[o],n.params))})}}var Xn=v(M()),jn=v(Xe()),Yt={get:Xn.default,set:jn.default};function Zt({type:e="IP",scope:t="default",limit:r=1e3}){let n={};function o(s,i){let c=i["x-real-ip"];return e==="IP"?`minute.${s}.${t}.${c}`:`minute.${s}.${t}.account`}function a(s){let i=Yt.get(n,"minutes",{});Object.keys(i).forEach(c=>{c!==s&&delete n.minutes.minute})}return async(s,i)=>{let c=Math.trunc(Date.now()/6e4),u=Math.trunc(c*60+60-Date.now()/1e3),f=o(c,s.request.headers),d=Yt.get(n,f,0);if(["HEAD","OPTIONS"].indexOf(s.request.method)===-1&&(d+=1),Yt.set(n,f,d),r<d){s.status=429;return}a(c),await i(s)}}var Yn=v(Fe());function ji(e,t={}){if(e&&t.forcePathStyle){let r=new URL(e);return`${r.protocol}//${r.host}/${t.bucket}`}if(e){let r=new URL(e);return`${r.protocol}//${t.bucket}.${r.host}`}return t.forcePathStyle&&t.region?`https://s3.${t.region}.amazonaws.com/${t.bucket}`:t.forcePathStyle?`https://s3.amazonaws.com/${t.bucket}`:t.region?`https://${t.bucket}.s3.${t.region}.amazonaws.com`:`https://${t.bucket}.s3.amazonaws.com`}function Qt({accessKeyId:e,secretAccessKey:t,bucket:r,region:n,endpoint:o,forcePathStyle:a,enableBucketOperations:s=!1}){let i=new Yn.AwsClient({accessKeyId:e,region:n,secretAccessKey:t}),c=ji(o,{region:n,bucket:r,forcePathStyle:a});return async u=>{if(u.params.file===void 0&&!s){u.status=404,u.body=O.http.statusMessages[404],u.set("Content-Type","text/plain");return}let f=u.params.file?S.resolveParams(`${c}/{file}`,u.params):c,d={};u.request.headers.range&&(d.range=u.request.headers.range);let p=await i.fetch(f,{method:u.method||u.request.method,headers:d});u.status=p.status,u.body=p.body;let l=S.instanceToJson(p.headers);Object.keys(l).forEach(y=>{u.set(y,l[y])})}}var er;function Zn(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Yi(e){return er||(er=await crypto.subtle.importKey("raw",Zn(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),er}async function Zi(e,t){let r=await Yi(t),n=await crypto.subtle.sign({name:"HMAC"},r,Zn(e));return btoa(String.fromCharCode.apply(null,new Uint8Array(n))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function tr({secret:e}){return async(t,r)=>{let n=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Zi(n,e)!==t.query.sign){t.status=403;return}await r(t)}}function rr({host:e}){if(!e)throw new Error("Need to specify a host for the split middleware.");return async(t,r)=>{let n=t.clone();n.cloned=!0,n.request={...n.request,href:n.request.href.replace(n.request.href,e),host:e},t.event.waitUntil(r(n)),await r(t)}}async function Qi(e,t,r){let n=e.getReader(),o=t.getWriter(),a=new TextDecoder,s=new TextEncoder;for(;;){let{done:i,value:c}=await n.read();if(i)break;let u=a.decode(c),f=Qn(u,r),d=s.encode(f);await o.write(d)}await o.close()}function ec(e,t){return e.replace(/{{\$(\d)}}/g,(r,n)=>t[parseInt(n,10)])}function Qn(e,t){return t.reduce((r,n)=>r.replace(n.regex,(...o)=>ec(n.replace,o)),e)}function nr({transforms:e=[],statusCodes:t=[200]}){let r=e.map(n=>({regex:new RegExp(n.regex,"g"),replace:n.replace}));return async(n,o)=>{await o(n);let{body:a}=n;if(t.indexOf(n.status)!==-1)if(typeof a=="string")n.body=Qn(a,r);else{let{readable:s,writable:i}=new TransformStream;Qi(a,i,r),n.body=s}}}async function tc({projectID:e="your-project-id",API_KEY:t="GCP_API_KEY",token:r="action-token",siteKey:n="siteKey",expectedAction:o="action-name"}){let s=await(await fetch(`https://recaptchaenterprise.googleapis.com/v1/projects/${e}/assessments?key=${t}`,{body:JSON.stringify({event:{token:r,siteKey:n,expectedAction:o}}),headers:{"Content-Type":"application/json"},method:"POST"})).json();return s.tokenProperties.valid?s.tokenProperties.action===o?(s.riskAnalysis.reasons.forEach(i=>{console.log(i)}),s.riskAnalysis.score):(console.error("reCAPTCHA action error:"+o+":action:"+s.tokenProperties.action),null):(console.error("The CreateAssessment call failed because the token was: "+s.tokenProperties.invalidReason),0)}var rc=e=>(e=e.split("?")[0],e.replace(/\W/g,"").slice(0,100));function or({projectID:e,API_KEY:t,siteKey:r}){function n(o){return{token:o["g-recaptcha-token"]}}return async(o,a)=>{let{token:s}=n(o.request.headers),i=rc(o.request.path);if((await tc({projectID:e,API_KEY:t,token:s,siteKey:r,expectedAction:i})||0)<.5){o.status=409;return}await a(o)}}async function nc({secret:e,token:t,expectedAction:r,remoteip:n}){if(!t)return{ok:!1,score:0,errorCodes:["missing-input-response"]};let o=new URLSearchParams({secret:e,response:t,...n?{remoteip:n}:{}}),s=await(await fetch("https://www.google.com/recaptcha/api/siteverify",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o})).json(),i=!!s.success,c=s.action===r,u=typeof s.score=="number"?s.score:0;return{ok:i&&c,score:u,action:s.action,errorCodes:s["error-codes"]}}var oc=e=>{let t=e;try{t=new URL(e,"http://dummy").pathname}catch{}return t=t.split("?")[0]||"/",t.replace(/\W/g,"").slice(0,100)},Re=(e,t)=>{if(e instanceof Headers)return e.get(t);let r=e[t]??e[t.toLowerCase()];return Array.isArray(r)?r[0]??null:r??null};function ar({secret:e,headerName:t="x-recaptcha-token",minScore:r=.5,requireActionMatch:n=!0}){return async(o,a)=>{let s=o.request?.req||o.request||o,i=s.headers??o.request?.headers??{},c=Re(i,t)||Re(i,"g-recaptcha-token")||null,f=Re(i,"x-recaptcha-action")||oc(o.request?.path||o.request?.url||s.url||"/"),d=Re(i,"cf-connecting-ip")||Re(i,"x-forwarded-for")||void 0,p=await nc({secret:e,token:c,expectedAction:f,remoteip:d});if(!(p.score>=r&&p.ok)){let y={action:p.action,expectedAction:f,score:p.score??0,errors:p.errorCodes??[]};console.warn("[reCAPTCHA] failed:"+JSON.stringify(y)),o.status=409,o.set?.("Content-Type","application/json"),o.body=JSON.stringify({error:"reCAPTCHA verification failed"});return}await a(o)}}var ac=e=>!new RegExp("(\b)(onS+)(s*)=|javascript|<(|/|[^/>][^>]+|/[^>][^>]+)>").test(e),sc=(e,t,r)=>!(!ac(t)||!r[e](t)),ic=e=>!(e===null||typeof e!="object"||Array.isArray(e)&&(!e[0]||typeof e[0]!="object")),tt=(e,t)=>{let r=Object.keys(e);for(let n of r){if(!t[n])return console.error("key not allowed",n),!1;if(e[n]===null&&(e[n]=""),ic(e[n])){if(!tt(e[n],t))return console.error("error validating key+validateObject:",n),!1}else if(!sc(n,e[n],t))return console.error("error validating key+validateKeyValue:",n),!1}return!0},eo=e=>!(e==null||typeof e!="object"),cc=(e,t)=>{let r=e.query;return eo(r)?tt(r,t):!1},dc=(e,t)=>{let r=e.params;return console.log("params"+JSON.stringify(r)),eo(r)?tt(r,t):!1};async function uc(e){if(["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1)return{};try{let t=await e.text();return JSON.parse(t)}catch{}return{}}function sr({allowedKeys:e}){return async(r,n)=>{if(!e)return r.status=501,!1;if(!dc(r,e)||!cc(r,e))return r.status=422,!1;let o=await uc(r.request);if(!tt(o,e))return r.status=422,!1;await n(r)}}var go=v(M());var E=crypto,D=e=>e instanceof CryptoKey;var x=new TextEncoder,W=new TextDecoder,Ru=2**32;function X(...e){let t=e.reduce((o,{length:a})=>o+a,0),r=new Uint8Array(t),n=0;return e.forEach(o=>{r.set(o,n),n+=o.length}),r}var to=e=>{let t=e;typeof t=="string"&&(t=x.encode(t));let r=32768,n=[];for(let o=0;o<t.length;o+=r)n.push(String.fromCharCode.apply(null,t.subarray(o,o+r)));return btoa(n.join(""))},J=e=>to(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");var le=class extends Error{static get code(){return"ERR_JOSE_GENERIC"}constructor(t){super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}};var A=class extends le{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}};var k=class extends le{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}static get code(){return"ERR_JWS_INVALID"}},j=class extends le{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}static get code(){return"ERR_JWT_INVALID"}};var rt=E.getRandomValues.bind(E);function B(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function nt(e,t){return e.name===t}function ir(e){return parseInt(e.name.slice(4),10)}function fc(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function lc(e,t){if(t.length&&!t.some(r=>e.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(t.length>2){let n=t.pop();r+=`one of ${t.join(", ")}, or ${n}.`}else t.length===2?r+=`one of ${t[0]} or ${t[1]}.`:r+=`${t[0]}.`;throw new TypeError(r)}}function no(e,t,...r){switch(t){case"HS256":case"HS384":case"HS512":{if(!nt(e.algorithm,"HMAC"))throw B("HMAC");let n=parseInt(t.slice(2),10);if(ir(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!nt(e.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let n=parseInt(t.slice(2),10);if(ir(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!nt(e.algorithm,"RSA-PSS"))throw B("RSA-PSS");let n=parseInt(t.slice(2),10);if(ir(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"EdDSA":{if(e.algorithm.name!=="Ed25519"&&e.algorithm.name!=="Ed448")throw B("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!nt(e.algorithm,"ECDSA"))throw B("ECDSA");let n=fc(t);if(e.algorithm.namedCurve!==n)throw B(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}lc(e,r)}function oo(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&&t.constructor.name&&(e+=` Received an instance of ${t.constructor.name}`),e}var $=(e,...t)=>oo("Key must be ",e,...t);function cr(e,t,...r){return oo(`Key for the ${e} algorithm must be `,t,...r)}var dr=e=>D(e),b=["CryptoKey"];var Ac=(...e)=>{let t=e.filter(Boolean);if(t.length===0||t.length===1)return!0;let r;for(let n of t){let o=Object.keys(n);if(!r||r.size===0){r=new Set(o);continue}for(let a of o){if(r.has(a))return!1;r.add(a)}}return!0},me=Ac;function Sc(e){return typeof e=="object"&&e!==null}function R(e){if(!Sc(e)||Object.prototype.toString.call(e)!=="[object Object]")return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var ot=(e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){let{modulusLength:r}=t.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};var Z=(e,t,r=0)=>{r===0&&(t.unshift(t.length),t.unshift(6));let n=e.indexOf(t[0],r);if(n===-1)return!1;let o=e.subarray(n,n+t.length);return o.length!==t.length?!1:o.every((a,s)=>a===t[s])||Z(e,t,n+1)},so=e=>{switch(!0){case Z(e,[42,134,72,206,61,3,1,7]):return"P-256";case Z(e,[43,129,4,0,34]):return"P-384";case Z(e,[43,129,4,0,35]):return"P-521";case Z(e,[43,101,110]):return"X25519";case Z(e,[43,101,111]):return"X448";case Z(e,[43,101,112]):return"Ed25519";case Z(e,[43,101,113]):return"Ed448";default:throw new A("Invalid or unsupported EC Key Curve or OKP Key Sub Type")}},_c=async(e,t,r,n,o)=>{let a,s,i=new Uint8Array(atob(r.replace(e,"")).split("").map(u=>u.charCodeAt(0))),c=t==="spki";switch(n){case"PS256":case"PS384":case"PS512":a={name:"RSA-PSS",hash:`SHA-${n.slice(-3)}`},s=c?["verify"]:["sign"];break;case"RS256":case"RS384":case"RS512":a={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${n.slice(-3)}`},s=c?["verify"]:["sign"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":a={name:"RSA-OAEP",hash:`SHA-${parseInt(n.slice(-3),10)||1}`},s=c?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":a={name:"ECDSA",namedCurve:"P-256"},s=c?["verify"]:["sign"];break;case"ES384":a={name:"ECDSA",namedCurve:"P-384"},s=c?["verify"]:["sign"];break;case"ES512":a={name:"ECDSA",namedCurve:"P-521"},s=c?["verify"]:["sign"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{let u=so(i);a=u.startsWith("P-")?{name:"ECDH",namedCurve:u}:{name:u},s=c?[]:["deriveBits"];break}case"EdDSA":a={name:so(i)},s=c?["verify"]:["sign"];break;default:throw new A('Invalid or unsupported "alg" (Algorithm) value')}return E.subtle.importKey(t,i,a,o?.extractable??!1,s)},io=(e,t,r)=>_c(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r);async function ur(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return io(e,t,r)}var vc=(e,t)=>{if(!(t instanceof Uint8Array)){if(!dr(t))throw new TypeError(cr(e,t,...b,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${b.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},Pc=(e,t,r)=>{if(!dr(t))throw new TypeError(cr(e,t,...b));if(t.type==="secret")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&t.type==="public")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&t.type==="public")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm decryption must be of type "private"`);if(t.algorithm&&r==="verify"&&t.type==="private")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);if(t.algorithm&&r==="encrypt"&&t.type==="private")throw new TypeError(`${b.join(" or ")} instances for asymmetric algorithm encryption must be of type "public"`)},Hc=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?vc(e,t):Pc(e,t,r)},We=Hc;function Ic(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 new Set;if(!Array.isArray(n.crit)||n.crit.length===0||n.crit.some(s=>typeof s!="string"||s.length===0))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a;r!==void 0?a=new Map([...Object.entries(r),...t.entries()]):a=t;for(let s of n.crit){if(!a.has(s))throw new A(`Extension Header Parameter "${s}" is not recognized`);if(o[s]===void 0)throw new e(`Extension Header Parameter "${s}" is missing`);if(a.get(s)&&n[s]===void 0)throw new e(`Extension Header Parameter "${s}" MUST be integrity protected`)}return new Set(n.crit)}var ye=Ic;var Dc=Symbol();function at(e,t){let r=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:r,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:r,name:"RSA-PSS",saltLength:e.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:r,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:r,name:"ECDSA",namedCurve:t.namedCurve};case"EdDSA":return{name:t.name};default:throw new A(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}function st(e,t,r){if(D(t))return no(t,e,r),t;if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError($(t,...b));return E.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[r])}throw new TypeError($(t,...b,"Uint8Array"))}var Q=e=>Math.floor(e.getTime()/1e3);var $c=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,it=e=>{let t=$c.exec(e);if(!t)throw new TypeError("Invalid time period format");let r=parseFloat(t[1]);switch(t[2].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":return Math.round(r);case"minute":case"minutes":case"min":case"mins":case"m":return Math.round(r*60);case"hour":case"hours":case"hr":case"hrs":case"h":return Math.round(r*3600);case"day":case"days":case"d":return Math.round(r*86400);case"week":case"weeks":case"w":return Math.round(r*604800);default:return Math.round(r*31557600)}};var Gc=async(e,t,r)=>{let n=await st(e,t,"sign");ot(e,n);let o=await E.subtle.sign(at(e,n.algorithm),n,r);return new Uint8Array(o)},lo=Gc;var ge=class{constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=t}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}async sign(t,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new k("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!me(this._protectedHeader,this._unprotectedHeader))throw new k("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader},o=ye(k,new Map([["b64",!0]]),r?.crit,this._protectedHeader,n),a=!0;if(o.has("b64")&&(a=this._protectedHeader.b64,typeof a!="boolean"))throw new k('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=n;if(typeof s!="string"||!s)throw new k('JWS "alg" (Algorithm) Header Parameter missing or invalid');We(s,t,"sign");let i=this._payload;a&&(i=x.encode(J(i)));let c;this._protectedHeader?c=x.encode(J(JSON.stringify(this._protectedHeader))):c=x.encode("");let u=X(c,x.encode("."),i),f=await lo(s,t,u),d={signature:J(f),payload:""};return a&&(d.payload=W.decode(i)),this._unprotectedHeader&&(d.header=this._unprotectedHeader),this._protectedHeader&&(d.protected=W.decode(c)),d}};var Je=class{constructor(t){this._flattened=new ge(t)}setProtectedHeader(t){return this._flattened.setProtectedHeader(t),this}async sign(t,r){let n=await this._flattened.sign(t,r);if(n.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${n.protected}.${n.payload}.${n.signature}`}};function we(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}var Ae=class{constructor(t={}){if(!R(t))throw new TypeError("JWT Claims Set MUST be an object");this._payload=t}setIssuer(t){return this._payload={...this._payload,iss:t},this}setSubject(t){return this._payload={...this._payload,sub:t},this}setAudience(t){return this._payload={...this._payload,aud:t},this}setJti(t){return this._payload={...this._payload,jti:t},this}setNotBefore(t){return typeof t=="number"?this._payload={...this._payload,nbf:we("setNotBefore",t)}:t instanceof Date?this._payload={...this._payload,nbf:we("setNotBefore",Q(t))}:this._payload={...this._payload,nbf:Q(new Date)+it(t)},this}setExpirationTime(t){return typeof t=="number"?this._payload={...this._payload,exp:we("setExpirationTime",t)}:t instanceof Date?this._payload={...this._payload,exp:we("setExpirationTime",Q(t))}:this._payload={...this._payload,exp:Q(new Date)+it(t)},this}setIssuedAt(t){return typeof t>"u"?this._payload={...this._payload,iat:Q(new Date)}:t instanceof Date?this._payload={...this._payload,iat:we("setIssuedAt",Q(t))}:this._payload={...this._payload,iat:we("setIssuedAt",t)},this}};var ke=class extends Ae{setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){let n=new Je(x.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new j("JWTs MUST NOT use unencoded payload");return n.sign(t,r)}};var Xc;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Xc="jose/v5.1.0");var mo=function e(t){function r(o,a,s){var i,c={};if(Array.isArray(o))return o.concat(a);for(i in o)c[s?i.toLowerCase():i]=o[i];for(i in a){var u=s?i.toLowerCase():i,f=a[i];c[u]=u in c&&typeof f=="object"?r(c[u],f,u=="headers"):f}return c}function n(o,a,s,i,c){var u=typeof o!="string"?(a=o).url:o,f={config:a},d=r(t,a),p={};i=i||d.data,(d.transformRequest||[]).map(function(l){i=l(i,d.headers)||i}),d.auth&&(p.authorization=d.auth),i&&typeof i=="object"&&typeof i.append!="function"&&typeof i.text!="function"&&(i=JSON.stringify(i),p["content-type"]="application/json");try{p[d.xsrfHeaderName]=decodeURIComponent(document.cookie.match(RegExp("(^|; )"+d.xsrfCookieName+"=([^;]*)"))[2])}catch{}return d.baseURL&&(u=u.replace(/^(?!.*\/\/)\/?/,d.baseURL+"/")),d.params&&(u+=(~u.indexOf("?")?"&":"?")+(d.paramsSerializer?d.paramsSerializer(d.params):new URLSearchParams(d.params))),(d.fetch||fetch)(u,{method:(s||d.method||"get").toUpperCase(),body:i,headers:r(d.headers,p,!0),credentials:d.withCredentials?"include":c}).then(function(l){for(var y in l)typeof l[y]!="function"&&(f[y]=l[y]);return d.responseType=="stream"?(f.data=l.body,f):l[d.responseType||"text"]().then(function(w){f.data=w,f.data=JSON.parse(w)}).catch(Object).then(function(){return(d.validateStatus?d.validateStatus(l.status):l.ok)?f:Promise.reject(f)})})}return t=t||{},n.request=n,n.get=function(o,a){return n(o,a,"get")},n.delete=function(o,a){return n(o,a,"delete")},n.head=function(o,a){return n(o,a,"head")},n.options=function(o,a){return n(o,a,"options")},n.post=function(o,a,s){return n(o,s,"post",a)},n.put=function(o,a,s){return n(o,s,"put",a)},n.patch=function(o,a,s){return n(o,s,"patch",a)},n.all=Promise.all.bind(Promise),n.spread=function(o){return o.apply.bind(o,o)},n.CancelToken=typeof AbortController=="function"?AbortController:Object,n.defaults=t,n.create=e,n}();var Zc=e=>{if(!e)return!1;let t=JSON.parse(atob(e.split(".")[1])),r=Math.floor(Date.now()/1e3);return t.exp>r-600},ct=async(e,t)=>{let r=await GCP_INVOKER_TOKEN.get(t);if(Zc(r))return r;let n=await ur(e.private_key,"RS256"),o=e.client_email,a={iss:o,sub:o,aud:"https://www.googleapis.com/oauth2/v4/token",target_audience:t,iat:Math.floor(Date.now()/1e3),exp:Math.floor(Date.now()/1e3)+3600},s=await new ke(a).setProtectedHeader({alg:"RS256",typ:"JWT"}).sign(n),i=await mo.post("https://www.googleapis.com/oauth2/v4/token",{grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:s});return await GCP_INVOKER_TOKEN.delete(t),await GCP_INVOKER_TOKEN.put(t,i.data.id_token),i.data.id_token};var yo={get:go.default};function hr({project_id:e,region:t,functionName:r,serviceAccount:n}){return async o=>{let a=yo.get(o,"request.query",{}),s=new URLSearchParams(a).toString(),i=`https://${t}-${e}.cloudfunctions.net/${r}`,c=`https://${t}-${e}.cloudfunctions.net/${r}${s?`?${s}`:""}`;console.log("urlWithParms:",c);let u=await ct(n,i);o.request.headers["X-Serverless-Authorization"]=`Bearer ${u}`;let f={headers:o.request.headers,method:o.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(o.request.method)!==-1&&yo.get(o,"event.request.body")){let l=o.event.request.clone();f.body=l.body}let d=await fetch(c,f);o.body=d.body,o.status=d.status;let p=S.instanceToJson(d.headers);Object.keys(p).forEach(l=>{o.set(l,p[l])})}}var wo=v(M());var Qc={get:wo.default};function fr({domain:e,serviceAccount:t}){return async r=>{let n=`${e}${r.request.path}`,o=await ct(t,e),a=new Headers(r.request.headers);a.set("X-Serverless-Authorization",`Bearer ${o}`),a.set("X-Token",a.get("authorization")||"N/A"),a.set("authorization","");let s=r.event.cf||{},i={"X-Geo-Country":s.country,"X-Geo-City":s.city,"X-Geo-Latitude":s.latitude,"X-Geo-Longitude":s.longitude,"X-Geo-Timezone":s.timezone,"X-Geo-Region":s.region,"X-Geo-PostalCode":s.postalCode,"X-Geo-RegionCode":s.regionCode,"X-Geo-EU-Country":s.isEUCountry?"1":"0"};for(let[d,p]of Object.entries(i))p!==void 0&&a.set(d,p);let c={method:r.request.method,headers:a,redirect:"manual"};if(O.methodsMethodsWithBody.includes(r.request.method)&&Qc.get(r,"event.request.body")){let d=r.event.request.clone();c.body=d.body}let u=await fetch(n,c),f=S.instanceToJson(u.headers);r.status=u.status,r.body=await u.text(),Object.entries(f).forEach(([d,p])=>{d=d.toLowerCase(),r.header(d)||r.set(d,p)})}}function lr({headers:e={},headersFN:t}){return async(r,n)=>{if(e)for(let o of Object.keys(e))r.set(o,e[o]);if(t){let o=await t();for(let a of Object.keys(o))r.set(a,o[a])}await n(r)}}async function ed(e){if(["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1)return"";try{return await e.text()}catch{return""}}function td(e){return new TextEncoder().encode(e).length}function Ao(e,t,r){e.status=413;let n=JSON.stringify({error:"Payload too large",limit:t,...r!=null?{received:r}:{}});e.set("content-type","application/json"),e.set("content-length",String(n.length)),e.body=n}function mr({bodySizeLimit:e=512}={}){return async(t,r)=>{let n=t.request?.method||"GET";if(["POST","PATCH","PUT","DELETE"].indexOf(n)===-1)return r(t);let o=t.request?.headers?.["content-length"],a=o?Number(o):NaN;if(Number.isFinite(a)&&a>e)return Ao(t,e,a);let s=await ed(t.request),i=typeof s=="string"?td(s):0;if(i>e)return Ao(t,e,i);await r(t)}}var So={basicAuth:bt,cache:vt,cors:Pt,geoDecorator:Ht,jwt:Tt,kvStorage:Kt,kvStorageBinding:xt,lambda:Rt,loadbalancer:kt,logger:Dt,oauth2:zt,origin:Xt,rateLimit:Zt,response:jt,s3:Qt,signature:tr,split:rr,transform:nr,recaptcha:or,recaptchaV3:ar,userInputValidation:sr,cloudfunction:hr,gcpCloudrun:fr,headers:lr,bodySizeLimit:mr};module.exports=class{constructor(t=[],r={}){this.router=new Eo.default,t.forEach(n=>{let o=r[n.handlerName]||So[n.handlerName];if(!o)throw new Error(`Handler ${n.handlerName} is not supported`);this.router.add(n,o(n.options))})}async resolve(t){return t.cf=t?.request?.cf||{},this.router.resolve(t)}};
8
8
  /*! Bundled license information:
9
9
 
10
10
  aws4fetch/dist/aws4fetch.umd.js: