@ahmadissa/cloudworker-proxy 1.1.58 → 1.1.60

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 Eo=Object.create;var lr=Object.defineProperty;var bo=Object.getOwnPropertyDescriptor;var Co=Object.getOwnPropertyNames;var _o=Object.getPrototypeOf,vo=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Po=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Co(t))!vo.call(e,o)&&o!==r&&lr(e,o,{get:()=>t[o],enumerable:!(n=bo(t,o))||n.enumerable});return e};var v=(e,t,r)=>(r=e!=null?Eo(_o(e)):{},Po(t||!e||!e.__esModule?lr(r,"default",{value:e,enumerable:!0}):r,e));var ht=_((Bc,yr)=>{function Ho({host:e=".*",path:t=".*",excludePath:r=null,method:n=[".*"],handler:o,protocol:a=".*",handlerName:s,headers:i={},data:c}){let u=[],h=[],d=e.replace(/(:([^.]+))/g,(T,N,U)=>(u.push(U),"([^.]+)")),f=t.replace(/(:([^/]+))/g,(T,N,U)=>U.slice(-1)==="*"?(h.push(U.slice(0,U.length-1)),"(.*)"):(h.push(U),"([^/]*)")),l=new RegExp(`^${d}$`,"i"),y=new RegExp(`^${f}$`,"i"),w=r?new RegExp(`^${r}$`,"i"):null,m=new RegExp(`^${n.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:u,pathVariables:h,host:l,path:y,excludePath:w,method:m,protocol:g,handler:o,handlerName:s,headers:i,data:c}}function mr(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}async function To(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 Ko(e){let t=new URL(e.url),r=mr(t.searchParams),n=mr(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 To(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)}}yr.exports={parseRoute:Ho,parseRequest:Ko}});var wr=_((Vc,gr)=>{function Oo(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 xo(e,t){let r=!0;return Object.keys(e.headers).forEach(n=>{t.headers[n]!==e.headers[n]&&(r=!1)}),r}function Ro(e,t){return e.protocol.test(t.protocol)}function Uo(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&xo(e,t)&&Ro(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function ft(e,t){let[r,...n]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!Uo(r,e.request))return ft(e,n);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=Oo(e.request,r);try{return r.handler(e,async o=>ft(o,n))}catch(o){throw o.route=r.handler.name,o}}gr.exports={recurseRoutes:ft}});var Sr=_((zc,Ar)=>{Ar.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var Cr=_((Xc,br)=>{var Io=ht();br.exports=class Er{constructor(t){this.request=Io.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 Er(this.event);return t.cloned=!0,t}}});var vr=_((Yc,_r)=>{var ue=ht(),Wo=wr(),_e=Sr(),Jo=Cr();_r.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 Jo(t);try{return await Wo.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=_((Zc,Nr)=>{var ko="Expected a function",Or="__lodash_hash_undefined__",xr=1/0,No="[object Function]",Do="[object GeneratorFunction]",Mo="[object Symbol]",$o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qo=/^\w*$/,Fo=/^\./,Lo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Go=/[\\^$.*+?()[\]{}|]/g,Bo=/\\(\\)?/g,Vo=/^\[object .+?Constructor\]$/,zo=typeof global=="object"&&global&&global.Object===Object&&global,Xo=typeof self=="object"&&self&&self.Object===Object&&self,mt=zo||Xo||Function("return this")();function jo(e,t){return e?.[t]}function Yo(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Zo=Array.prototype,Qo=Function.prototype,Rr=Object.prototype,lt=mt["__core-js_shared__"],Pr=function(){var e=/[^.]+$/.exec(lt&&lt.keys&&lt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Ur=Qo.toString,yt=Rr.hasOwnProperty,Ir=Rr.toString,ea=RegExp("^"+Ur.call(yt).replace(Go,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Hr=mt.Symbol,ta=Zo.splice,ra=Wr(mt,"Map"),ve=Wr(Object,"create"),Tr=Hr?Hr.prototype:void 0,Kr=Tr?Tr.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 na(){this.__data__=ve?ve(null):{}}function oa(e){return this.has(e)&&delete this.__data__[e]}function aa(e){var t=this.__data__;if(ve){var r=t[e];return r===Or?void 0:r}return yt.call(t,e)?t[e]:void 0}function sa(e){var t=this.__data__;return ve?t[e]!==void 0:yt.call(t,e)}function ia(e,t){var r=this.__data__;return r[e]=ve&&t===void 0?Or:t,this}re.prototype.clear=na;re.prototype.delete=oa;re.prototype.get=aa;re.prototype.has=sa;re.prototype.set=ia;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 ca(){this.__data__=[]}function da(e){var t=this.__data__,r=Me(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ta.call(t,r,1),!0}function ua(e){var t=this.__data__,r=Me(t,e);return r<0?void 0:t[r][1]}function pa(e){return Me(this.__data__,e)>-1}function ha(e,t){var r=this.__data__,n=Me(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}pe.prototype.clear=ca;pe.prototype.delete=da;pe.prototype.get=ua;pe.prototype.has=pa;pe.prototype.set=ha;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 fa(){this.__data__={hash:new re,map:new(ra||pe),string:new re}}function la(e){return $e(this,e).delete(e)}function ma(e){return $e(this,e).get(e)}function ya(e){return $e(this,e).has(e)}function ga(e,t){return $e(this,e).set(e,t),this}ne.prototype.clear=fa;ne.prototype.delete=la;ne.prototype.get=ma;ne.prototype.has=ya;ne.prototype.set=ga;function Me(e,t){for(var r=e.length;r--;)if(Ta(e[r][0],t))return r;return-1}function wa(e,t){t=ba(t,e)?[t]:Ea(t);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Pa(t[r++])];return r&&r==n?e:void 0}function Aa(e){if(!kr(e)||_a(e))return!1;var t=Ka(e)||Yo(e)?ea:Vo;return t.test(Ha(e))}function Sa(e){if(typeof e=="string")return e;if(wt(e))return Kr?Kr.call(e):"";var t=e+"";return t=="0"&&1/e==-xr?"-0":t}function Ea(e){return Jr(e)?e:va(e)}function $e(e,t){var r=e.__data__;return Ca(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Wr(e,t){var r=jo(e,t);return Aa(r)?r:void 0}function ba(e,t){if(Jr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||wt(e)?!0:qo.test(e)||!$o.test(e)||t!=null&&e in Object(t)}function Ca(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function _a(e){return!!Pr&&Pr in e}var va=gt(function(e){e=xa(e);var t=[];return Fo.test(e)&&t.push(""),e.replace(Lo,function(r,n,o,a){t.push(o?a.replace(Bo,"$1"):n||r)}),t});function Pa(e){if(typeof e=="string"||wt(e))return e;var t=e+"";return t=="0"&&1/e==-xr?"-0":t}function Ha(e){if(e!=null){try{return Ur.call(e)}catch{}try{return e+""}catch{}}return""}function gt(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(ko);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(gt.Cache||ne),r}gt.Cache=ne;function Ta(e,t){return e===t||e!==e&&t!==t}var Jr=Array.isArray;function Ka(e){var t=kr(e)?Ir.call(e):"";return t==No||t==Do}function kr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Oa(e){return!!e&&typeof e=="object"}function wt(e){return typeof e=="symbol"||Oa(e)&&Ir.call(e)==Mo}function xa(e){return e==null?"":Sa(e)}function Ra(e,t,r){var n=e==null?void 0:wa(e,t);return n===void 0?r:n}Nr.exports=Ra});var Fe=_((qe,Gr)=>{(function(e,t){typeof qe=="object"&&typeof Gr<"u"?t(qe):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(qe,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:f,secretAccessKey:l,sessionToken:y,service:w,region:m,cache:g,retries:T,initRetryMs:N}){if(f==null)throw new TypeError("accessKeyId is a required option");if(l==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=f,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(f,l){if(f instanceof Request){let{method:m,url:g,headers:T,body:N}=f;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 f.clone().arrayBuffer()),f=g}let y=new a(Object.assign({url:f},l,this,l&&l.aws)),w=Object.assign({},l,await y.sign());return delete w.aws,new Request(w.url.toString(),w)}async fetch(f,l){for(let y=0;y<=this.retries;y++){let w=fetch(await this.sign(f,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:f,url:l,headers:y,body:w,accessKeyId:m,secretAccessKey:g,sessionToken:T,service:N,region:U,cache:ee,datetime:Se,signQuery:it,appendSessionToken:ct,allHeaders:ke,singleEncode:dt}){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=f||(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]=h(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=it,this.appendSessionToken=ct||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=>ke||!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,"/");dt||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=u(this.encodedPath);let Ne=new Set;this.encodedSearch=[...this.url.searchParams].filter(([C])=>{if(!C)return!1;if(this.service==="s3"){if(Ne.has(C))return!1;Ne.add(C)}return!0}).map(C=>C.map(be=>u(encodeURIComponent(be)))).sort(([C,be],[Ce,De])=>C<Ce?-1:C>Ce?1:be<De?-1:be>De?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 f=this.datetime.slice(0,8),l=[this.secretAccessKey,f,this.region,this.service].join(),y=this.cache.get(l);if(!y){let w=await s("AWS4"+this.secretAccessKey,f),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 Eo=Object.create;var lr=Object.defineProperty;var bo=Object.getOwnPropertyDescriptor;var Co=Object.getOwnPropertyNames;var _o=Object.getPrototypeOf,vo=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ho=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Co(t))!vo.call(e,o)&&o!==r&&lr(e,o,{get:()=>t[o],enumerable:!(n=bo(t,o))||n.enumerable});return e};var v=(e,t,r)=>(r=e!=null?Eo(_o(e)):{},Ho(t||!e||!e.__esModule?lr(r,"default",{value:e,enumerable:!0}):r,e));var ht=_((Bc,yr)=>{function Po({host:e=".*",path:t=".*",excludePath:r=null,method:n=[".*"],handler:o,protocol:a=".*",handlerName:s,headers:i={},data:c}){let d=[],h=[],u=e.replace(/(:([^.]+))/g,(T,N,U)=>(d.push(U),"([^.]+)")),l=t.replace(/(:([^/]+))/g,(T,N,U)=>U.slice(-1)==="*"?(h.push(U.slice(0,U.length-1)),"(.*)"):(h.push(U),"([^/]*)")),f=new RegExp(`^${u}$`,"i"),y=new RegExp(`^${l}$`,"i"),w=r?new RegExp(`^${r}$`,"i"):null,m=new RegExp(`^${n.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:d,pathVariables:h,host:f,path:y,excludePath:w,method:m,protocol:g,handler:o,handlerName:s,headers:i,data:c}}function mr(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}async function To(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 Ko(e){let t=new URL(e.url),r=mr(t.searchParams),n=mr(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 To(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)}}yr.exports={parseRoute:Po,parseRequest:Ko}});var wr=_((Vc,gr)=>{function Oo(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 xo(e,t){let r=!0;return Object.keys(e.headers).forEach(n=>{t.headers[n]!==e.headers[n]&&(r=!1)}),r}function Ro(e,t){return e.protocol.test(t.protocol)}function Uo(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&xo(e,t)&&Ro(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function ft(e,t){let[r,...n]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!Uo(r,e.request))return ft(e,n);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=Oo(e.request,r);try{return r.handler(e,async o=>ft(o,n))}catch(o){throw o.route=r.handler.name,o}}gr.exports={recurseRoutes:ft}});var Sr=_((zc,Ar)=>{Ar.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var Cr=_((Xc,br)=>{var Io=ht();br.exports=class Er{constructor(t){this.request=Io.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 Er(this.event);return t.cloned=!0,t}}});var vr=_((Yc,_r)=>{var ue=ht(),Wo=wr(),_e=Sr(),Jo=Cr();_r.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 d=ue.parseRoute({method:o,host:t,path:r,excludePath:n,handler:c,headers:s,handlerName:a,protocol:i});this.routes.push(d)}async resolve(t){let r=new Jo(t);try{return await Wo.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=_((Zc,Nr)=>{var ko="Expected a function",Or="__lodash_hash_undefined__",xr=1/0,No="[object Function]",Do="[object GeneratorFunction]",Mo="[object Symbol]",$o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qo=/^\w*$/,Fo=/^\./,Lo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Go=/[\\^$.*+?()[\]{}|]/g,Bo=/\\(\\)?/g,Vo=/^\[object .+?Constructor\]$/,zo=typeof global=="object"&&global&&global.Object===Object&&global,Xo=typeof self=="object"&&self&&self.Object===Object&&self,mt=zo||Xo||Function("return this")();function jo(e,t){return e?.[t]}function Yo(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Zo=Array.prototype,Qo=Function.prototype,Rr=Object.prototype,lt=mt["__core-js_shared__"],Hr=function(){var e=/[^.]+$/.exec(lt&&lt.keys&&lt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Ur=Qo.toString,yt=Rr.hasOwnProperty,Ir=Rr.toString,ea=RegExp("^"+Ur.call(yt).replace(Go,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Pr=mt.Symbol,ta=Zo.splice,ra=Wr(mt,"Map"),ve=Wr(Object,"create"),Tr=Pr?Pr.prototype:void 0,Kr=Tr?Tr.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 na(){this.__data__=ve?ve(null):{}}function oa(e){return this.has(e)&&delete this.__data__[e]}function aa(e){var t=this.__data__;if(ve){var r=t[e];return r===Or?void 0:r}return yt.call(t,e)?t[e]:void 0}function sa(e){var t=this.__data__;return ve?t[e]!==void 0:yt.call(t,e)}function ia(e,t){var r=this.__data__;return r[e]=ve&&t===void 0?Or:t,this}re.prototype.clear=na;re.prototype.delete=oa;re.prototype.get=aa;re.prototype.has=sa;re.prototype.set=ia;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 ca(){this.__data__=[]}function da(e){var t=this.__data__,r=Me(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ta.call(t,r,1),!0}function ua(e){var t=this.__data__,r=Me(t,e);return r<0?void 0:t[r][1]}function pa(e){return Me(this.__data__,e)>-1}function ha(e,t){var r=this.__data__,n=Me(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}pe.prototype.clear=ca;pe.prototype.delete=da;pe.prototype.get=ua;pe.prototype.has=pa;pe.prototype.set=ha;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 fa(){this.__data__={hash:new re,map:new(ra||pe),string:new re}}function la(e){return $e(this,e).delete(e)}function ma(e){return $e(this,e).get(e)}function ya(e){return $e(this,e).has(e)}function ga(e,t){return $e(this,e).set(e,t),this}ne.prototype.clear=fa;ne.prototype.delete=la;ne.prototype.get=ma;ne.prototype.has=ya;ne.prototype.set=ga;function Me(e,t){for(var r=e.length;r--;)if(Ta(e[r][0],t))return r;return-1}function wa(e,t){t=ba(t,e)?[t]:Ea(t);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Ha(t[r++])];return r&&r==n?e:void 0}function Aa(e){if(!kr(e)||_a(e))return!1;var t=Ka(e)||Yo(e)?ea:Vo;return t.test(Pa(e))}function Sa(e){if(typeof e=="string")return e;if(wt(e))return Kr?Kr.call(e):"";var t=e+"";return t=="0"&&1/e==-xr?"-0":t}function Ea(e){return Jr(e)?e:va(e)}function $e(e,t){var r=e.__data__;return Ca(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Wr(e,t){var r=jo(e,t);return Aa(r)?r:void 0}function ba(e,t){if(Jr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||wt(e)?!0:qo.test(e)||!$o.test(e)||t!=null&&e in Object(t)}function Ca(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function _a(e){return!!Hr&&Hr in e}var va=gt(function(e){e=xa(e);var t=[];return Fo.test(e)&&t.push(""),e.replace(Lo,function(r,n,o,a){t.push(o?a.replace(Bo,"$1"):n||r)}),t});function Ha(e){if(typeof e=="string"||wt(e))return e;var t=e+"";return t=="0"&&1/e==-xr?"-0":t}function Pa(e){if(e!=null){try{return Ur.call(e)}catch{}try{return e+""}catch{}}return""}function gt(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(ko);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(gt.Cache||ne),r}gt.Cache=ne;function Ta(e,t){return e===t||e!==e&&t!==t}var Jr=Array.isArray;function Ka(e){var t=kr(e)?Ir.call(e):"";return t==No||t==Do}function kr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Oa(e){return!!e&&typeof e=="object"}function wt(e){return typeof e=="symbol"||Oa(e)&&Ir.call(e)==Mo}function xa(e){return e==null?"":Sa(e)}function Ra(e,t,r){var n=e==null?void 0:wa(e,t);return n===void 0?r:n}Nr.exports=Ra});var Fe=_((qe,Gr)=>{(function(e,t){typeof qe=="object"&&typeof Gr<"u"?t(qe):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(qe,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:l,secretAccessKey:f,sessionToken:y,service:w,region:m,cache:g,retries:T,initRetryMs:N}){if(l==null)throw new TypeError("accessKeyId is a required option");if(f==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=l,this.secretAccessKey=f,this.sessionToken=y,this.service=w,this.region=m,this.cache=g||new Map,this.retries=T??10,this.initRetryMs=N||50}async sign(l,f){if(l instanceof Request){let{method:m,url:g,headers:T,body:N}=l;f=Object.assign({method:m,url:g,headers:T},f),f.body==null&&T.has("Content-Type")&&(f.body=N!=null&&T.has("X-Amz-Content-Sha256")?N:await l.clone().arrayBuffer()),l=g}let y=new a(Object.assign({url:l},f,this,f&&f.aws)),w=Object.assign({},f,await y.sign());return delete w.aws,new Request(w.url.toString(),w)}async fetch(l,f){for(let y=0;y<=this.retries;y++){let w=fetch(await this.sign(l,f));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:l,url:f,headers:y,body:w,accessKeyId:m,secretAccessKey:g,sessionToken:T,service:N,region:U,cache:ee,datetime:Se,signQuery:it,appendSessionToken:ct,allHeaders:ke,singleEncode:dt}){if(f==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=l||(w?"POST":"GET"),this.url=new URL(f),this.headers=new Headers(y||{}),this.body=w,this.accessKeyId=m,this.secretAccessKey=g,this.sessionToken=T;let V,Ee;(!N||!U)&&([V,Ee]=h(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=it,this.appendSessionToken=ct||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=>ke||!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,"/");dt||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=d(this.encodedPath);let Ne=new Set;this.encodedSearch=[...this.url.searchParams].filter(([C])=>{if(!C)return!1;if(this.service==="s3"){if(Ne.has(C))return!1;Ne.add(C)}return!0}).map(C=>C.map(be=>d(encodeURIComponent(be)))).sort(([C,be],[Ce,De])=>C<Ce?-1:C>Ce?1:be<De?-1:be>De?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 l=this.datetime.slice(0,8),f=[this.secretAccessKey,l,this.region,this.service].join(),y=this.cache.get(f);if(!y){let w=await s("AWS4"+this.secretAccessKey,l),m=await s(w,this.region),g=await s(m,this.service);y=await s(g,"aws4_request"),this.cache.set(f,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 f=this.headers.get("X-Amz-Content-Sha256");if(f==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");f=c(await i(this.body||""))}return f}}async function s(d,f){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(f))}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),f=>("0"+f.toString(16)).slice(-2)).join("")}function u(d){return d.replace(/[!'()*]/g,f=>"%"+f.charCodeAt(0).toString(16).toUpperCase())}function h(d,f){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=(f.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 ze=_((Ed,an)=>{var Qa="Expected a function",Yr="__lodash_hash_undefined__",Zr=1/0,es=9007199254740991,ts="[object Function]",rs="[object GeneratorFunction]",ns="[object Symbol]",os=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,as=/^\w*$/,ss=/^\./,is=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cs=/[\\^$.*+?()[\]{}|]/g,ds=/\\(\\)?/g,us=/^\[object .+?Constructor\]$/,ps=/^(?:0|[1-9]\d*)$/,hs=typeof global=="object"&&global&&global.Object===Object&&global,fs=typeof self=="object"&&self&&self.Object===Object&&self,Rt=hs||fs||Function("return this")();function ls(e,t){return e?.[t]}function ms(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ys=Array.prototype,gs=Function.prototype,Qr=Object.prototype,xt=Rt["__core-js_shared__"],Vr=function(){var e=/[^.]+$/.exec(xt&&xt.keys&&xt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),en=gs.toString,Ge=Qr.hasOwnProperty,tn=Qr.toString,ws=RegExp("^"+en.call(Ge).replace(cs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),zr=Rt.Symbol,As=ys.splice,Ss=rn(Rt,"Map"),Pe=rn(Object,"create"),Xr=zr?zr.prototype:void 0,jr=Xr?Xr.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 Es(){this.__data__=Pe?Pe(null):{}}function bs(e){return this.has(e)&&delete this.__data__[e]}function Cs(e){var t=this.__data__;if(Pe){var r=t[e];return r===Yr?void 0:r}return Ge.call(t,e)?t[e]:void 0}function _s(e){var t=this.__data__;return Pe?t[e]!==void 0:Ge.call(t,e)}function vs(e,t){var r=this.__data__;return r[e]=Pe&&t===void 0?Yr:t,this}ae.prototype.clear=Es;ae.prototype.delete=bs;ae.prototype.get=Cs;ae.prototype.has=_s;ae.prototype.set=vs;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 Ps(){this.__data__=[]}function Hs(e){var t=this.__data__,r=Be(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():As.call(t,r,1),!0}function Ts(e){var t=this.__data__,r=Be(t,e);return r<0?void 0:t[r][1]}function Ks(e){return Be(this.__data__,e)>-1}function Os(e,t){var r=this.__data__,n=Be(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}he.prototype.clear=Ps;he.prototype.delete=Hs;he.prototype.get=Ts;he.prototype.has=Ks;he.prototype.set=Os;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 xs(){this.__data__={hash:new ae,map:new(Ss||he),string:new ae}}function Rs(e){return Ve(this,e).delete(e)}function Us(e){return Ve(this,e).get(e)}function Is(e){return Ve(this,e).has(e)}function Ws(e,t){return Ve(this,e).set(e,t),this}se.prototype.clear=xs;se.prototype.delete=Rs;se.prototype.get=Us;se.prototype.has=Is;se.prototype.set=Ws;function Js(e,t,r){var n=e[t];(!(Ge.call(e,t)&&nn(n,r))||r===void 0&&!(t in e))&&(e[t]=r)}function Be(e,t){for(var r=e.length;r--;)if(nn(e[r][0],t))return r;return-1}function ks(e){if(!Le(e)||Ls(e))return!1;var t=zs(e)||ms(e)?ws:us;return t.test(Vs(e))}function Ns(e,t,r,n){if(!Le(e))return e;t=qs(t,e)?[t]:Ms(t);for(var o=-1,a=t.length,s=a-1,i=e;i!=null&&++o<a;){var c=Bs(t[o]),u=r;if(o!=s){var h=i[c];u=n?n(h,c,i):void 0,u===void 0&&(u=Le(h)?h:$s(t[o+1])?[]:{})}Js(i,c,u),i=i[c]}return e}function Ds(e){if(typeof e=="string")return e;if(It(e))return jr?jr.call(e):"";var t=e+"";return t=="0"&&1/e==-Zr?"-0":t}function Ms(e){return on(e)?e:Gs(e)}function Ve(e,t){var r=e.__data__;return Fs(t)?r[typeof t=="string"?"string":"hash"]:r.map}function rn(e,t){var r=ls(e,t);return ks(r)?r:void 0}function $s(e,t){return t=t??es,!!t&&(typeof e=="number"||ps.test(e))&&e>-1&&e%1==0&&e<t}function qs(e,t){if(on(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||It(e)?!0:as.test(e)||!os.test(e)||t!=null&&e in Object(t)}function Fs(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ls(e){return!!Vr&&Vr in e}var Gs=Ut(function(e){e=js(e);var t=[];return ss.test(e)&&t.push(""),e.replace(is,function(r,n,o,a){t.push(o?a.replace(ds,"$1"):n||r)}),t});function Bs(e){if(typeof e=="string"||It(e))return e;var t=e+"";return t=="0"&&1/e==-Zr?"-0":t}function Vs(e){if(e!=null){try{return en.call(e)}catch{}try{return e+""}catch{}}return""}function Ut(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Qa);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(Ut.Cache||se),r}Ut.Cache=se;function nn(e,t){return e===t||e!==e&&t!==t}var on=Array.isArray;function zs(e){var t=Le(e)?tn.call(e):"";return t==ts||t==rs}function Le(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Xs(e){return!!e&&typeof e=="object"}function It(e){return typeof e=="symbol"||Xs(e)&&tn.call(e)==ns}function js(e){return e==null?"":Ds(e)}function Ys(e,t,r){return e==null?e:Ns(e,t,r)}an.exports=Ys});var fn=_(Nt=>{"use strict";Nt.parse=ai;Nt.serialize=si;var ri=decodeURIComponent,ni=encodeURIComponent,oi=/; */,je=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function ai(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(oi),a=n.decode||ri,s=0;s<o.length;s++){var i=o[s],c=i.indexOf("=");if(!(c<0)){var u=i.substr(0,c).trim(),h=i.substr(++c,i.length).trim();h[0]=='"'&&(h=h.slice(1,-1)),r[u]==null&&(r[u]=ii(h,a))}}return r}function si(e,t,r){var n=r||{},o=n.encode||ni;if(typeof o!="function")throw new TypeError("option encode is invalid");if(!je.test(e))throw new TypeError("argument name is invalid");var a=o(t);if(a&&!je.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(!je.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!je.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 ii(e,t){try{return t(e)}catch{return e}}});var mn=_((Dd,ln)=>{"use strict";var Ye=1;function ci(){return Ye=(Ye*9301+49297)%233280,Ye/233280}function di(e){Ye=e}ln.exports={nextValue:ci,seed:di}});var Oe=_((Md,An)=>{"use strict";var Dt=mn(),ce="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",z,yn,Ke;function Mt(){Ke=!1}function gn(e){if(!e){z!==ce&&(z=ce,Mt());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,Mt()}}function ui(e){return gn(e),z}function pi(e){Dt.seed(e),yn!==e&&(Mt(),yn=e)}function hi(){z||gn(ce);for(var e=z.split(""),t=[],r=Dt.nextValue(),n;e.length>0;)r=Dt.nextValue(),n=Math.floor(r*e.length),t.push(e.splice(n,1)[0]);return t.join("")}function wn(){return Ke||(Ke=hi(),Ke)}function fi(e){var t=wn();return t[e]}function li(){return z||ce}An.exports={get:li,characters:ui,seed:pi,lookup:fi,shuffled:wn}});var En=_(($d,Sn)=>{"use strict";var $t=typeof window=="object"&&(window.crypto||window.msCrypto),qt;!$t||!$t.getRandomValues?qt=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:qt=function(e){return $t.getRandomValues(new Uint8Array(e))};Sn.exports=qt});var Cn=_((qd,bn)=>{bn.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 vn=_((Fd,_n)=>{"use strict";var mi=Oe(),yi=En(),gi=Cn();function wi(e){for(var t=0,r,n="";!r;)n=n+gi(yi,mi.get(),1),r=e<Math.pow(16,t+1),t++;return n}_n.exports=wi});var Tn=_((Gd,Hn)=>{"use strict";var Ze=vn(),Ld=Oe(),Ai=1567752802062,Si=7,Qe,Pn;function Ei(e){var t="",r=Math.floor((Date.now()-Ai)*.001);return r===Pn?Qe++:(Qe=0,Pn=r),t=t+Ze(Si),t=t+Ze(e),Qe>0&&(t=t+Ze(Qe)),t=t+Ze(r),t}Hn.exports=Ei});var On=_((Bd,Kn)=>{"use strict";var bi=Oe();function Ci(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+bi.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Kn.exports=Ci});var Rn=_((Vd,xn)=>{"use strict";xn.exports=0});var Wn=_((zd,G)=>{"use strict";var Ft=Oe(),_i=Tn(),vi=On(),Un=Rn()||0;function Pi(e){return Ft.seed(e),G.exports}function Hi(e){return Un=e,G.exports}function Ti(e){return e!==void 0&&Ft.characters(e),Ft.shuffled()}function In(){return _i(Un)}G.exports=In;G.exports.generate=In;G.exports.seed=Pi;G.exports.worker=Hi;G.exports.characters=Ti;G.exports.isValid=vi});var kn=_((Xd,Jn)=>{"use strict";Jn.exports=Wn()});var mo=v(vr());var Dr=v(M()),Ua={get:Dr.default};function At(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function St(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return At(t);let n=Ua.get(t,"request.headers.authorization");if(!n||!n.startsWith("Basic "))return At(t);let o=e.users.map(i=>i.authToken),a=n.substring(6),s=o.indexOf(a);return s===-1?At(t):(t.state.user=e.users[s].username,r(t))}}var Mr=caches.default;async function Ia(e){return await Mr.match(e)}async function Wa(e,t){return Mr.put(e.href,t)}var Et={get:Ia,set:Wa};async function Ja(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 $r=Ja;function ka(e,t={}){return Object.keys(t).reduce((r,n)=>r.replace(`{${n}}`,t[n]),e)}function bt(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}var S={resolveParams:ka,instanceToJson:bt};var Na=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function Da(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}async function Ma(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 $r(await Da(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 Ct({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=Na}){return async(n,o)=>{let a=await Ma(n,t),s=await Et.get(a);if(s){n.body=s.body,n.status=s.status;let i=bt(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(Et.set(a,c))}}}function _t({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:h}=c.request,{origin:d}=c.request.headers,f=c.request.headers["access-control-request-headers"];if($a(c,d,e),qa(c,r),Ba(c,o),h==="OPTIONS"&&(Fa(c,t),La(c,f,n),Ga(c,a),i)){c.status=s,c.set("Content-Length","0"),c.body="";return}await u(c)}}function $a(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),e.set("Vary","Origin")))}function qa(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function Fa(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function La(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 Ga(e,t){t&&e.set("Access-Control-Max-Age",t)}function Ba(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var Va={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 vt(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=Va[r],await t(e)}}function qr(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 za(e){let t=e.split("."),r=JSON.parse(qr(t[0])),n=JSON.parse(qr(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 Pt({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 h=new TextEncoder().encode([c.raw.header,c.raw.payload].join(".")),d=new Uint8Array(Array.from(c.signature).map(y=>y.charCodeAt(0))),f=await o();return(await Promise.all(f.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,h)}))).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=za(c.request.headers.authorization.slice(7)),f=new Date(d.payload.exp*1e3),l=new Date(Date.now());return f<=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 Fr=v(M()),Xa={get:Fr.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=Xa.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 ja(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Ht({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:n,kvBasePath:o="",kvKey:a="{file}",defaultExtension:s="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:u={},mode:h="rest"}){let d=new oe({accountId:e,namespace:t,authEmail:r,authKey:n,mode:h}),f={...O.mime,...u};return async l=>{let y=S.resolveParams(a,l.params),w=y===""&&i?i:ja(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",f[w.split(".").pop()]||"text/plain")):(l.status=404,l.body=O.http.statusMessages[404],l.set("Content-Type","text/plain"))}}var Lr=v(M());var Tt={get:Lr.default};function Ya(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Za(e,t){let r=Tt.get(e,"headers.if-none-match"),n=Tt.get(t,"metadata.headers.etag");return r?r===n:!1}function Kt({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:Ya(c,n),h=await s(t+u);if(!h&&a&&(h=await s(t+a)),h)if(Za(i.request,h))i.status=304;else{i.status=h.status,i.body=h.value;let d=Tt.get(h,"metadata.headers",{});Object.keys(d).forEach(f=>{i.set(f,d[f])})}else i.status=404,i.body=O.http.statusMessages[404],i.set("Content-Type","text/plain")}}var Br=v(Fe());function Ot({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:n}){let o=new Br.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(h=>{a.set(h,u[h])})}}var cn=v(M()),dn=v(ze());var sn={get:cn.default,set:dn.default};function Zs(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Qs(e){return e[Math.floor(Math.random()*e.length)]}function Wt({sources:e=[]}){return async t=>{let r=Qs(e),n={method:t.request.method,headers:Zs(t.request.headers),redirect:"manual",cf:t.request.cf};if(O.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&sn.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);sn.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 hn=v(M());var Jt={name:"@ahmadissa/cloudworker-proxy",version:"1.1.58",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
- `);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 un(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((n,o)=>e[o]==null?n:{...n,...un(e[o],t,r+o+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var Xe=un;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=Xe(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 pn=v(Fe());var Te=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t}),this.awsClient=new pn.AwsClient({accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,region:t.region}),this.streamName=t.streamName,this.region=t.region}async log(t){let r=Xe(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:hn.default};async function ti(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}function kt(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 ti(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:Jt.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:Jt.version};r.event.waitUntil(t.log(s))}}}var xe=v(fn()),$n=v(M()),qn=v(ze()),Fn=v(kn());async function Lt({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 Nn="PBKDF2",Gt="AES-GCM",Ki="SHA-256",Oi="raw";function xi(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 Dn(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 Ri(e){return new TextEncoder().encode(e).buffer}function Ui(e){return new TextDecoder().decode(e)}async function Ii(e){let t=new TextEncoder;return crypto.subtle.importKey(Oi,t.encode(e),{name:Nn},!1,["deriveKey"])}async function Wi(e,t){let r=await Ii(e),o=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:Nn,salt:o,iterations:1e3,hash:{name:Ki}},r,{name:Gt,length:256},!0,["encrypt","decrypt"])}async function Ji(){let e=crypto.getRandomValues(new Uint8Array(8));return Dn(e)}async function ki(e,t){let r=xi(t),n=r.slice(0,16),o=r.slice(16),a=await crypto.subtle.decrypt({name:Gt,iv:n},e,o);return Ui(a)}async function Ni(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),n=await crypto.subtle.encrypt({name:Gt,iv:r},e,Ri(t)),o=new Uint8Array(n.byteLength+r.byteLength);return o.set(r,0),o.set(new Uint8Array(n),r.byteLength),Dn(o)}var de={decrypt:ki,deriveAesGcmKey:Wi,encrypt:Ni,getSalt:Ji};var fe={get:$n.default,set:qn.default};function Mn({cookieHeader:e="",cookieName:t}){return xe.default.parse(e)[t]}function Di(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function Mi(e=""){return e.split(",").indexOf("text/html")!==-1}function Bt({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:h,oauth2Audience:d,oauth2Scopes:f=[],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,it=y,ct=g,ke=T,dt=N,V=u,Ee=h,q=d,Ne=w,C=m,Ce=f.join("%20");async function De(p,H){let P=`${ee}${ct}`,K=await fetch(P,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Di({code:p,grant_type:"authorization_code",client_id:V,client_secret:Ee,redirect_uri:H})});if(!K.ok)throw new Error("Authentication failed");let F=await K.json();return{...F,expires:Date.now()+F.expires_in*1e3}}async function yo(p){if(Mn({cookieHeader:p.request.headers.cookie,cookieName:e})){let K=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${K}`,path:"/",maxAge:0}))}let P=fr(p);if(N){let K=encodeURIComponent(`${p.request.protocol}://${p.request.host}${P}`);p.set("Location",`${ee}${dt}?client_id=${V}&returnTo=${K}`)}else p.set("Location",P);p.status=302}async function go(p){let H=p.request.href.split("?")[0],P=await De(p.request.query.code,H),K=Fn.default.generate(),F=await de.getSalt(),L=`${K}.${F}`,ut=await de.deriveAesGcmKey(K,F),te=await de.encrypt(ut,JSON.stringify(P));await U.put(K,te);let pt=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.status=302,it==="query"?p.set("Location",`${p.request.query.state}?auth=${L}`):(p.set("Set-Cookie",xe.default.serialize(e,L,{httpOnly:t,domain:`.${pt}`,path:"/",maxAge:60*60*24*365})),p.set("Location",p.request.query.state))}async function wo(p,H){let[P,K]=H.split("."),F=await U.get(P);if(F){let L=await de.deriveAesGcmKey(P,K),ut=await de.decrypt(L,F),te=JSON.parse(ut);if(te.expires<Date.now()){te=await Lt({refresh_token:te.refresh_token,clientId:V,authDomain:ee,clientSecret:Ee});let pt=await de.encrypt(L,JSON.stringify(te));await U.put(P,pt)}p.state.accessToken=te.access_token,p.state.accessToken&&(p.request.headers.authorization=`bearer ${p.state.accessToken}`)}else{let L=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${L}`,maxAge:0}))}}function fr(p){let H=fe.get(p,"request.query.redirect-to");if(H)return H;let P=fe.get(p,"request.headers.referer");return P||"/"}async function Ao(p){if(p.request.method==="OPTIONS")p.status=200;else{let H=fr(p),P=encodeURIComponent(H||"/"),K=encodeURIComponent(`${p.request.protocol}://${p.request.host}${Se}`);p.status=302,p.set("location",`${ee}${ke}/authorize?state=${P}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${K}`)}}async function So(p,H){if(p.request.method==="OPTIONS")await H(p);else if(fe.get(p,"request.headers.authorization","").toLowerCase().startsWith("bearer "))fe.set(p,"state.access_token",p.request.headers.authorization.slice(7)),await H(p);else{let P=fe.get(p,"request.query.auth")||Mn({cookieHeader:p.request.headers.cookie,cookieName:e});if(P&&await wo(p,P),fe.get(p,"state.accessToken")||r)await H(p);else if(Mi(p.request.headers.accept)){let F=encodeURIComponent(p.request.href),L=encodeURIComponent(`${p.request.protocol}://${p.request.host}${Se}`);p.status=302,p.set("location",`${ee}${ke}/authorize?state=${F}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${L}`)}else p.status=403,p.body="Forbidden"}}return async(p,H)=>{switch(p.request.path){case Se:await go(p);break;case Ne:await yo(p);break;case C:await Ao(p);break;default:await So(p,H)}}}var Ln=v(M());var $i={get:Ln.default};function qi(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Vt(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:qi(n.request.headers),method:n.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(n.request.method)!==-1&&$i.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 zt({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 Gn=v(M()),Bn=v(ze()),Xt={get:Gn.default,set:Bn.default};function jt({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=Xt.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),h=o(c,s.request.headers),d=Xt.get(n,h,0);if(["HEAD","OPTIONS"].indexOf(s.request.method)===-1&&(d+=1),Xt.set(n,h,d),r<d){s.status=429;return}a(c),await i(s)}}var Vn=v(Fe());function Fi(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 Yt({accessKeyId:e,secretAccessKey:t,bucket:r,region:n,endpoint:o,forcePathStyle:a,enableBucketOperations:s=!1}){let i=new Vn.AwsClient({accessKeyId:e,region:n,secretAccessKey:t}),c=Fi(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 h=u.params.file?S.resolveParams(`${c}/{file}`,u.params):c,d={};u.request.headers.range&&(d.range=u.request.headers.range);let f=await i.fetch(h,{method:u.method||u.request.method,headers:d});u.status=f.status,u.body=f.body;let l=S.instanceToJson(f.headers);Object.keys(l).forEach(y=>{u.set(y,l[y])})}}var Zt;function zn(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Li(e){return Zt||(Zt=await crypto.subtle.importKey("raw",zn(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),Zt}async function Gi(e,t){let r=await Li(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 Qt({secret:e}){return async(t,r)=>{let n=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Gi(n,e)!==t.query.sign){t.status=403;return}await r(t)}}function er({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 Bi(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),h=Xn(u,r),d=s.encode(h);await o.write(d)}await o.close()}function Vi(e,t){return e.replace(/{{\$(\d)}}/g,(r,n)=>t[parseInt(n,10)])}function Xn(e,t){return t.reduce((r,n)=>r.replace(n.regex,(...o)=>Vi(n.replace,o)),e)}function tr({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=Xn(a,r);else{let{readable:s,writable:i}=new TransformStream;Bi(a,i,r),n.body=s}}}async function zi({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 Xi=e=>(e=e.split("?")[0],e.replace(/\W/g,"").slice(0,100));function rr({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=Xi(o.request.path);if((await zi({projectID:e,API_KEY:t,token:s,siteKey:r,expectedAction:i})||0)<.5){o.status=409;return}await a(o)}}var ji=e=>!new RegExp("(\b)(onS+)(s*)=|javascript|<(|/|[^/>][^>]+|/[^>][^>]+)>").test(e),Yi=(e,t,r)=>!(!ji(t)||!r[e](t)),Zi=e=>!(e===null||typeof e!="object"||Array.isArray(e)&&(!e[0]||typeof e[0]!="object")),nr=(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]=""),Zi(e[n])){if(!nr(e[n],t))return console.error("error validating key+validateObject:",n),!1}else if(!Yi(n,e[n],t))return console.error("error validating key+validateKeyValue:",n),!1}return!0},Qi=e=>!(e==null||typeof e!="object"),ec=(e,t)=>{let r=e.query;return Qi(r)?nr(r,t):!1};async function tc(e){if(["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1)return{};try{let t=await e.text();return JSON.parse(t)}catch{}return{}}function or({allowedKeys:e}){return async(r,n)=>{if(!e)return r.status=501,!1;if(!ec(r,e))return r.status=422,!1;let o=await tc(r.request);if(!nr(o,e))return r.status=422,!1;await n(r)}}var ho=v(M());var E=crypto,D=e=>e instanceof CryptoKey;var x=new TextEncoder,W=new TextDecoder,Su=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 jn=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=>jn(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 et=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 tt(e,t){return e.name===t}function ar(e){return parseInt(e.name.slice(4),10)}function oc(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function ac(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 Zn(e,t,...r){switch(t){case"HS256":case"HS384":case"HS512":{if(!tt(e.algorithm,"HMAC"))throw B("HMAC");let n=parseInt(t.slice(2),10);if(ar(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!tt(e.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let n=parseInt(t.slice(2),10);if(ar(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!tt(e.algorithm,"RSA-PSS"))throw B("RSA-PSS");let n=parseInt(t.slice(2),10);if(ar(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(!tt(e.algorithm,"ECDSA"))throw B("ECDSA");let n=oc(t);if(e.algorithm.namedCurve!==n)throw B(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}ac(e,r)}function Qn(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)=>Qn("Key must be ",e,...t);function sr(e,t,...r){return Qn(`Key for the ${e} algorithm must be `,t,...r)}var ir=e=>D(e),b=["CryptoKey"];var uc=(...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=uc;function pc(e){return typeof e=="object"&&e!==null}function R(e){if(!pc(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 rt=(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)},to=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")}},mc=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=to(i);a=u.startsWith("P-")?{name:"ECDH",namedCurve:u}:{name:u},s=c?[]:["deriveBits"];break}case"EdDSA":a={name:to(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)},ro=(e,t,r)=>mc(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r);async function cr(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return ro(e,t,r)}var yc=(e,t)=>{if(!(t instanceof Uint8Array)){if(!ir(t))throw new TypeError(sr(e,t,...b,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${b.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},gc=(e,t,r)=>{if(!ir(t))throw new TypeError(sr(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"`)},wc=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?yc(e,t):gc(e,t,r)},Ie=wc;function vc(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=vc;var Oc=Symbol();function nt(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 ot(e,t,r){if(D(t))return Zn(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 Rc=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,at=e=>{let t=Rc.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 Jc=async(e,t,r)=>{let n=await ot(e,t,"sign");rt(e,n);let o=await E.subtle.sign(nt(e,n.algorithm),n,r);return new Uint8Array(o)},co=Jc;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');Ie(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),h=await co(s,t,u),d={signature:J(h),payload:""};return a&&(d.payload=W.decode(i)),this._unprotectedHeader&&(d.header=this._unprotectedHeader),this._protectedHeader&&(d.protected=W.decode(c)),d}};var We=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)+at(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)+at(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 Je=class extends Ae{setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){let n=new We(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 Mc;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Mc="jose/v5.1.0");var uo=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,h=a[i];c[u]=u in c&&typeof h=="object"?r(c[u],h,u=="headers"):h}return c}function n(o,a,s,i,c){var u=typeof o!="string"?(a=o).url:o,h={config:a},d=r(t,a),f={};i=i||d.data,(d.transformRequest||[]).map(function(l){i=l(i,d.headers)||i}),d.auth&&(f.authorization=d.auth),i&&typeof i=="object"&&typeof i.append!="function"&&typeof i.text!="function"&&(i=JSON.stringify(i),f["content-type"]="application/json");try{f[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,f,!0),credentials:d.withCredentials?"include":c}).then(function(l){for(var y in l)typeof l[y]!="function"&&(h[y]=l[y]);return d.responseType=="stream"?(h.data=l.body,h):l[d.responseType||"text"]().then(function(w){h.data=w,h.data=JSON.parse(w)}).catch(Object).then(function(){return(d.validateStatus?d.validateStatus(l.status):l.ok)?h:Promise.reject(h)})})}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 Fc=e=>{if(!e)return!1;let t=JSON.parse(atob(e.split(".")[1])),r=Math.floor(Date.now()/1e3);return t.exp>r-600},st=async(e,t)=>{let r=await GCP_INVOKER_TOKEN.get(t);if(Fc(r))return r;let n=await cr(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 Je(a).setProtectedHeader({alg:"RS256",typ:"JWT"}).sign(n),i=await uo.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 po={get:ho.default};function ur({project_id:e,region:t,functionName:r,serviceAccount:n}){return async o=>{let a=po.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 st(n,i);o.request.headers["X-Serverless-Authorization"]=`Bearer ${u}`;let h={headers:o.request.headers,method:o.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(o.request.method)!==-1&&po.get(o,"event.request.body")){let l=o.event.request.clone();h.body=l.body}let d=await fetch(c,h);o.body=d.body,o.status=d.status;let f=S.instanceToJson(d.headers);Object.keys(f).forEach(l=>{o.set(l,f[l])})}}var fo=v(M());var Lc={get:fo.default};function pr({domain:e,serviceAccount:t}){return async r=>{let n=`${e}${r.request.path}`,o=await st(t,e),a=new Headers(r.request.headers);a.set("X-Serverless-Authorization",`Bearer ${o}`);let s=r.request.cf||{};console.log("----",Object.entries(r.cf));let 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-EU-Country":s.isEUCountry?"1":"0"};for(let[d,f]of Object.entries(i))f!==void 0&&a.set(d,f);let c={method:r.request.method,headers:a,redirect:"manual"};if(O.methodsMethodsWithBody.includes(r.request.method)&&Lc.get(r,"event.request.body")){let d=r.event.request.clone();c.body=d.body}let u=await fetch(n,c),h=S.instanceToJson(u.headers);r.status=u.status,r.body=await u.text(),Object.entries(h).forEach(([d,f])=>{r.set(d,f)})}}function hr({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)}}var lo={basicAuth:St,cache:Ct,cors:_t,geoDecorator:vt,jwt:Pt,kvStorage:Ht,kvStorageBinding:Kt,lambda:Ot,loadbalancer:Wt,logger:kt,oauth2:Bt,origin:Vt,rateLimit:jt,response:zt,s3:Yt,signature:Qt,split:er,transform:tr,recaptcha:rr,userInputValidation:or,cloudfunction:ur,gcpCloudrun:pr,headers:hr};module.exports=class{constructor(t=[],r={}){this.router=new mo.default,t.forEach(n=>{let o=r[n.handlerName]||lo[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)}};
5
+ `)}async hexBodyHash(){let l=this.headers.get("X-Amz-Content-Sha256");if(l==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");l=c(await i(this.body||""))}return l}}async function s(u,l){let f=await crypto.subtle.importKey("raw",typeof u=="string"?t.encode(u):u,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",f,t.encode(l))}async function i(u){return crypto.subtle.digest("SHA-256",typeof u=="string"?t.encode(u):u)}function c(u){return Array.prototype.map.call(new Uint8Array(u),l=>("0"+l.toString(16)).slice(-2)).join("")}function d(u){return u.replace(/[!'()*]/g,l=>"%"+l.charCodeAt(0).toString(16).toUpperCase())}function h(u,l){let{hostname:f,pathname:y}=u,w=f.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")f.startsWith("iot.")?m="execute-api":f.startsWith("data.jobs.iot.")?m="iot-jobs-data":m=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(m==="autoscaling"){let T=(l.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 ze=_((Ed,an)=>{var Qa="Expected a function",Yr="__lodash_hash_undefined__",Zr=1/0,es=9007199254740991,ts="[object Function]",rs="[object GeneratorFunction]",ns="[object Symbol]",os=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,as=/^\w*$/,ss=/^\./,is=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cs=/[\\^$.*+?()[\]{}|]/g,ds=/\\(\\)?/g,us=/^\[object .+?Constructor\]$/,ps=/^(?:0|[1-9]\d*)$/,hs=typeof global=="object"&&global&&global.Object===Object&&global,fs=typeof self=="object"&&self&&self.Object===Object&&self,Rt=hs||fs||Function("return this")();function ls(e,t){return e?.[t]}function ms(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ys=Array.prototype,gs=Function.prototype,Qr=Object.prototype,xt=Rt["__core-js_shared__"],Vr=function(){var e=/[^.]+$/.exec(xt&&xt.keys&&xt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),en=gs.toString,Ge=Qr.hasOwnProperty,tn=Qr.toString,ws=RegExp("^"+en.call(Ge).replace(cs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),zr=Rt.Symbol,As=ys.splice,Ss=rn(Rt,"Map"),He=rn(Object,"create"),Xr=zr?zr.prototype:void 0,jr=Xr?Xr.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 Es(){this.__data__=He?He(null):{}}function bs(e){return this.has(e)&&delete this.__data__[e]}function Cs(e){var t=this.__data__;if(He){var r=t[e];return r===Yr?void 0:r}return Ge.call(t,e)?t[e]:void 0}function _s(e){var t=this.__data__;return He?t[e]!==void 0:Ge.call(t,e)}function vs(e,t){var r=this.__data__;return r[e]=He&&t===void 0?Yr:t,this}ae.prototype.clear=Es;ae.prototype.delete=bs;ae.prototype.get=Cs;ae.prototype.has=_s;ae.prototype.set=vs;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 Hs(){this.__data__=[]}function Ps(e){var t=this.__data__,r=Be(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():As.call(t,r,1),!0}function Ts(e){var t=this.__data__,r=Be(t,e);return r<0?void 0:t[r][1]}function Ks(e){return Be(this.__data__,e)>-1}function Os(e,t){var r=this.__data__,n=Be(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}he.prototype.clear=Hs;he.prototype.delete=Ps;he.prototype.get=Ts;he.prototype.has=Ks;he.prototype.set=Os;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 xs(){this.__data__={hash:new ae,map:new(Ss||he),string:new ae}}function Rs(e){return Ve(this,e).delete(e)}function Us(e){return Ve(this,e).get(e)}function Is(e){return Ve(this,e).has(e)}function Ws(e,t){return Ve(this,e).set(e,t),this}se.prototype.clear=xs;se.prototype.delete=Rs;se.prototype.get=Us;se.prototype.has=Is;se.prototype.set=Ws;function Js(e,t,r){var n=e[t];(!(Ge.call(e,t)&&nn(n,r))||r===void 0&&!(t in e))&&(e[t]=r)}function Be(e,t){for(var r=e.length;r--;)if(nn(e[r][0],t))return r;return-1}function ks(e){if(!Le(e)||Ls(e))return!1;var t=zs(e)||ms(e)?ws:us;return t.test(Vs(e))}function Ns(e,t,r,n){if(!Le(e))return e;t=qs(t,e)?[t]:Ms(t);for(var o=-1,a=t.length,s=a-1,i=e;i!=null&&++o<a;){var c=Bs(t[o]),d=r;if(o!=s){var h=i[c];d=n?n(h,c,i):void 0,d===void 0&&(d=Le(h)?h:$s(t[o+1])?[]:{})}Js(i,c,d),i=i[c]}return e}function Ds(e){if(typeof e=="string")return e;if(It(e))return jr?jr.call(e):"";var t=e+"";return t=="0"&&1/e==-Zr?"-0":t}function Ms(e){return on(e)?e:Gs(e)}function Ve(e,t){var r=e.__data__;return Fs(t)?r[typeof t=="string"?"string":"hash"]:r.map}function rn(e,t){var r=ls(e,t);return ks(r)?r:void 0}function $s(e,t){return t=t??es,!!t&&(typeof e=="number"||ps.test(e))&&e>-1&&e%1==0&&e<t}function qs(e,t){if(on(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||It(e)?!0:as.test(e)||!os.test(e)||t!=null&&e in Object(t)}function Fs(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ls(e){return!!Vr&&Vr in e}var Gs=Ut(function(e){e=js(e);var t=[];return ss.test(e)&&t.push(""),e.replace(is,function(r,n,o,a){t.push(o?a.replace(ds,"$1"):n||r)}),t});function Bs(e){if(typeof e=="string"||It(e))return e;var t=e+"";return t=="0"&&1/e==-Zr?"-0":t}function Vs(e){if(e!=null){try{return en.call(e)}catch{}try{return e+""}catch{}}return""}function Ut(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Qa);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(Ut.Cache||se),r}Ut.Cache=se;function nn(e,t){return e===t||e!==e&&t!==t}var on=Array.isArray;function zs(e){var t=Le(e)?tn.call(e):"";return t==ts||t==rs}function Le(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Xs(e){return!!e&&typeof e=="object"}function It(e){return typeof e=="symbol"||Xs(e)&&tn.call(e)==ns}function js(e){return e==null?"":Ds(e)}function Ys(e,t,r){return e==null?e:Ns(e,t,r)}an.exports=Ys});var fn=_(Nt=>{"use strict";Nt.parse=ai;Nt.serialize=si;var ri=decodeURIComponent,ni=encodeURIComponent,oi=/; */,je=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function ai(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(oi),a=n.decode||ri,s=0;s<o.length;s++){var i=o[s],c=i.indexOf("=");if(!(c<0)){var d=i.substr(0,c).trim(),h=i.substr(++c,i.length).trim();h[0]=='"'&&(h=h.slice(1,-1)),r[d]==null&&(r[d]=ii(h,a))}}return r}function si(e,t,r){var n=r||{},o=n.encode||ni;if(typeof o!="function")throw new TypeError("option encode is invalid");if(!je.test(e))throw new TypeError("argument name is invalid");var a=o(t);if(a&&!je.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(!je.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!je.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 ii(e,t){try{return t(e)}catch{return e}}});var mn=_((Dd,ln)=>{"use strict";var Ye=1;function ci(){return Ye=(Ye*9301+49297)%233280,Ye/233280}function di(e){Ye=e}ln.exports={nextValue:ci,seed:di}});var Oe=_((Md,An)=>{"use strict";var Dt=mn(),ce="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",z,yn,Ke;function Mt(){Ke=!1}function gn(e){if(!e){z!==ce&&(z=ce,Mt());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,Mt()}}function ui(e){return gn(e),z}function pi(e){Dt.seed(e),yn!==e&&(Mt(),yn=e)}function hi(){z||gn(ce);for(var e=z.split(""),t=[],r=Dt.nextValue(),n;e.length>0;)r=Dt.nextValue(),n=Math.floor(r*e.length),t.push(e.splice(n,1)[0]);return t.join("")}function wn(){return Ke||(Ke=hi(),Ke)}function fi(e){var t=wn();return t[e]}function li(){return z||ce}An.exports={get:li,characters:ui,seed:pi,lookup:fi,shuffled:wn}});var En=_(($d,Sn)=>{"use strict";var $t=typeof window=="object"&&(window.crypto||window.msCrypto),qt;!$t||!$t.getRandomValues?qt=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:qt=function(e){return $t.getRandomValues(new Uint8Array(e))};Sn.exports=qt});var Cn=_((qd,bn)=>{bn.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 vn=_((Fd,_n)=>{"use strict";var mi=Oe(),yi=En(),gi=Cn();function wi(e){for(var t=0,r,n="";!r;)n=n+gi(yi,mi.get(),1),r=e<Math.pow(16,t+1),t++;return n}_n.exports=wi});var Tn=_((Gd,Pn)=>{"use strict";var Ze=vn(),Ld=Oe(),Ai=1567752802062,Si=7,Qe,Hn;function Ei(e){var t="",r=Math.floor((Date.now()-Ai)*.001);return r===Hn?Qe++:(Qe=0,Hn=r),t=t+Ze(Si),t=t+Ze(e),Qe>0&&(t=t+Ze(Qe)),t=t+Ze(r),t}Pn.exports=Ei});var On=_((Bd,Kn)=>{"use strict";var bi=Oe();function Ci(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+bi.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Kn.exports=Ci});var Rn=_((Vd,xn)=>{"use strict";xn.exports=0});var Wn=_((zd,G)=>{"use strict";var Ft=Oe(),_i=Tn(),vi=On(),Un=Rn()||0;function Hi(e){return Ft.seed(e),G.exports}function Pi(e){return Un=e,G.exports}function Ti(e){return e!==void 0&&Ft.characters(e),Ft.shuffled()}function In(){return _i(Un)}G.exports=In;G.exports.generate=In;G.exports.seed=Hi;G.exports.worker=Pi;G.exports.characters=Ti;G.exports.isValid=vi});var kn=_((Xd,Jn)=>{"use strict";Jn.exports=Wn()});var mo=v(vr());var Dr=v(M()),Ua={get:Dr.default};function At(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function St(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return At(t);let n=Ua.get(t,"request.headers.authorization");if(!n||!n.startsWith("Basic "))return At(t);let o=e.users.map(i=>i.authToken),a=n.substring(6),s=o.indexOf(a);return s===-1?At(t):(t.state.user=e.users[s].username,r(t))}}var Mr=caches.default;async function Ia(e){return await Mr.match(e)}async function Wa(e,t){return Mr.put(e.href,t)}var Et={get:Ia,set:Wa};async function Ja(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 $r=Ja;function ka(e,t={}){return Object.keys(t).reduce((r,n)=>r.replace(`{${n}}`,t[n]),e)}function bt(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}var S={resolveParams:ka,instanceToJson:bt};var Na=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function Da(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}async function Ma(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 $r(await Da(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 Ct({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=Na}){return async(n,o)=>{let a=await Ma(n,t),s=await Et.get(a);if(s){n.body=s.body,n.status=s.status;let i=bt(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(d=>{r.indexOf(d.toLowerCase())===-1&&c.headers.set(d,n.response.headers[d])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),n.event.waitUntil(Et.set(a,c))}}}function _t({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,d)=>{let{method:h}=c.request,{origin:u}=c.request.headers,l=c.request.headers["access-control-request-headers"];if($a(c,u,e),qa(c,r),Ba(c,o),h==="OPTIONS"&&(Fa(c,t),La(c,l,n),Ga(c,a),i)){c.status=s,c.set("Content-Length","0"),c.body="";return}await d(c)}}function $a(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),e.set("Vary","Origin")))}function qa(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function Fa(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function La(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 Ga(e,t){t&&e.set("Access-Control-Max-Age",t)}function Ba(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var Va={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 vt(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=Va[r],await t(e)}}function qr(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 za(e){let t=e.split("."),r=JSON.parse(qr(t[0])),n=JSON.parse(qr(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 h=new TextEncoder().encode([c.raw.header,c.raw.payload].join(".")),u=new Uint8Array(Array.from(c.signature).map(y=>y.charCodeAt(0))),l=await o();return(await Promise.all(l.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,u,h)}))).some(y=>y)}async function i(c,d){if(c.request.method==="OPTIONS"||n)return d(c);if((c.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let u=za(c.request.headers.authorization.slice(7)),l=new Date(u.payload.exp*1e3),f=new Date(Date.now());return l<=f||!t||u.payload.iss!==t||!r||u.payload.aud!==r||!await s(u)?a(c):(c.state.user=u.payload,d(c))}return a(c)}return i}var Fr=v(M()),Xa={get:Fr.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=Xa.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 ja(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Pt({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:n,kvBasePath:o="",kvKey:a="{file}",defaultExtension:s="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:d={},mode:h="rest"}){let u=new oe({accountId:e,namespace:t,authEmail:r,authKey:n,mode:h}),l={...O.mime,...d};return async f=>{let y=S.resolveParams(a,f.params),w=y===""&&i?i:ja(y,s),m=await u.get(o+w);!m&&c&&(m=await u.get(o+c)),m?(f.status=200,f.body=m,f.set("Content-Type",l[w.split(".").pop()]||"text/plain")):(f.status=404,f.body=O.http.statusMessages[404],f.set("Content-Type","text/plain"))}}var Lr=v(M());var Tt={get:Lr.default};function Ya(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Za(e,t){let r=Tt.get(e,"headers.if-none-match"),n=Tt.get(t,"metadata.headers.etag");return r?r===n:!1}function Kt({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),d=c===""&&o?o:Ya(c,n),h=await s(t+d);if(!h&&a&&(h=await s(t+a)),h)if(Za(i.request,h))i.status=304;else{i.status=h.status,i.body=h.value;let u=Tt.get(h,"metadata.headers",{});Object.keys(u).forEach(l=>{i.set(l,u[l])})}else i.status=404,i.body=O.http.statusMessages[404],i.set("Content-Type","text/plain")}}var Br=v(Fe());function Ot({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:n}){let o=new Br.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 d=S.instanceToJson(c.headers);Object.keys(d).forEach(h=>{a.set(h,d[h])})}}var cn=v(M()),dn=v(ze());var sn={get:cn.default,set:dn.default};function Zs(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Qs(e){return e[Math.floor(Math.random()*e.length)]}function Wt({sources:e=[]}){return async t=>{let r=Qs(e),n={method:t.request.method,headers:Zs(t.request.headers),redirect:"manual",cf:t.request.cf};if(O.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&sn.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);sn.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 hn=v(M());var Jt={name:"@ahmadissa/cloudworker-proxy",version:"1.1.60",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
+ `);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 un(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((n,o)=>e[o]==null?n:{...n,...un(e[o],t,r+o+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var Xe=un;var Pe=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=Xe(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 pn=v(Fe());var Te=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t}),this.awsClient=new pn.AwsClient({accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,region:t.region}),this.streamName=t.streamName,this.region=t.region}async log(t){let r=Xe(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:hn.default};async function ti(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}function kt(e){let t;switch(e.type){case"http":t=new Pe(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 ti(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:Jt.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:Jt.version};r.event.waitUntil(t.log(s))}}}var xe=v(fn()),$n=v(M()),qn=v(ze()),Fn=v(kn());async function Lt({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 Nn="PBKDF2",Gt="AES-GCM",Ki="SHA-256",Oi="raw";function xi(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 Dn(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 Ri(e){return new TextEncoder().encode(e).buffer}function Ui(e){return new TextDecoder().decode(e)}async function Ii(e){let t=new TextEncoder;return crypto.subtle.importKey(Oi,t.encode(e),{name:Nn},!1,["deriveKey"])}async function Wi(e,t){let r=await Ii(e),o=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:Nn,salt:o,iterations:1e3,hash:{name:Ki}},r,{name:Gt,length:256},!0,["encrypt","decrypt"])}async function Ji(){let e=crypto.getRandomValues(new Uint8Array(8));return Dn(e)}async function ki(e,t){let r=xi(t),n=r.slice(0,16),o=r.slice(16),a=await crypto.subtle.decrypt({name:Gt,iv:n},e,o);return Ui(a)}async function Ni(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),n=await crypto.subtle.encrypt({name:Gt,iv:r},e,Ri(t)),o=new Uint8Array(n.byteLength+r.byteLength);return o.set(r,0),o.set(new Uint8Array(n),r.byteLength),Dn(o)}var de={decrypt:ki,deriveAesGcmKey:Wi,encrypt:Ni,getSalt:Ji};var fe={get:$n.default,set:qn.default};function Mn({cookieHeader:e="",cookieName:t}){return xe.default.parse(e)[t]}function Di(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function Mi(e=""){return e.split(",").indexOf("text/html")!==-1}function Bt({cookieName:e="proxy",cookieHttpOnly:t=!0,allowPublicAccess:r=!1,kvAccountId:n,kvNamespace:o,kvAuthEmail:a,kvAuthKey:s,kvTtl:i=2592e3,oauth2AuthDomain:c,oauth2ClientId:d,oauth2ClientSecret:h,oauth2Audience:u,oauth2Scopes:l=[],oauth2CallbackPath:f="/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=f,it=y,ct=g,ke=T,dt=N,V=d,Ee=h,q=u,Ne=w,C=m,Ce=l.join("%20");async function De(p,P){let H=`${ee}${ct}`,K=await fetch(H,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Di({code:p,grant_type:"authorization_code",client_id:V,client_secret:Ee,redirect_uri:P})});if(!K.ok)throw new Error("Authentication failed");let F=await K.json();return{...F,expires:Date.now()+F.expires_in*1e3}}async function yo(p){if(Mn({cookieHeader:p.request.headers.cookie,cookieName:e})){let K=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${K}`,path:"/",maxAge:0}))}let H=fr(p);if(N){let K=encodeURIComponent(`${p.request.protocol}://${p.request.host}${H}`);p.set("Location",`${ee}${dt}?client_id=${V}&returnTo=${K}`)}else p.set("Location",H);p.status=302}async function go(p){let P=p.request.href.split("?")[0],H=await De(p.request.query.code,P),K=Fn.default.generate(),F=await de.getSalt(),L=`${K}.${F}`,ut=await de.deriveAesGcmKey(K,F),te=await de.encrypt(ut,JSON.stringify(H));await U.put(K,te);let pt=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.status=302,it==="query"?p.set("Location",`${p.request.query.state}?auth=${L}`):(p.set("Set-Cookie",xe.default.serialize(e,L,{httpOnly:t,domain:`.${pt}`,path:"/",maxAge:60*60*24*365})),p.set("Location",p.request.query.state))}async function wo(p,P){let[H,K]=P.split("."),F=await U.get(H);if(F){let L=await de.deriveAesGcmKey(H,K),ut=await de.decrypt(L,F),te=JSON.parse(ut);if(te.expires<Date.now()){te=await Lt({refresh_token:te.refresh_token,clientId:V,authDomain:ee,clientSecret:Ee});let pt=await de.encrypt(L,JSON.stringify(te));await U.put(H,pt)}p.state.accessToken=te.access_token,p.state.accessToken&&(p.request.headers.authorization=`bearer ${p.state.accessToken}`)}else{let L=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${L}`,maxAge:0}))}}function fr(p){let P=fe.get(p,"request.query.redirect-to");if(P)return P;let H=fe.get(p,"request.headers.referer");return H||"/"}async function Ao(p){if(p.request.method==="OPTIONS")p.status=200;else{let P=fr(p),H=encodeURIComponent(P||"/"),K=encodeURIComponent(`${p.request.protocol}://${p.request.host}${Se}`);p.status=302,p.set("location",`${ee}${ke}/authorize?state=${H}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${K}`)}}async function So(p,P){if(p.request.method==="OPTIONS")await P(p);else if(fe.get(p,"request.headers.authorization","").toLowerCase().startsWith("bearer "))fe.set(p,"state.access_token",p.request.headers.authorization.slice(7)),await P(p);else{let H=fe.get(p,"request.query.auth")||Mn({cookieHeader:p.request.headers.cookie,cookieName:e});if(H&&await wo(p,H),fe.get(p,"state.accessToken")||r)await P(p);else if(Mi(p.request.headers.accept)){let F=encodeURIComponent(p.request.href),L=encodeURIComponent(`${p.request.protocol}://${p.request.host}${Se}`);p.status=302,p.set("location",`${ee}${ke}/authorize?state=${F}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${L}`)}else p.status=403,p.body="Forbidden"}}return async(p,P)=>{switch(p.request.path){case Se:await go(p);break;case Ne:await yo(p);break;case C:await Ao(p);break;default:await So(p,P)}}}var Ln=v(M());var $i={get:Ln.default};function qi(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Vt(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=qi(n.request.headers),s=new Headers(a),i=n.event?.cf||{},c={"X-Geo-Country":i.country,"X-Geo-City":i.city,"X-Geo-Latitude":i.latitude,"X-Geo-Longitude":i.longitude,"X-Geo-Timezone":i.timezone,"X-Geo-EU-Country":i.isEUCountry?"1":"0"};for(let[l,f]of Object.entries(c))console.log("---",l,f),f!==void 0&&s.set(l,f);let d={headers:s,method:n.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.includes(n.request.method)&&$i.get(n,"event.request.body")){let l=n.event.request.clone();d.body=l.body}let h=await fetch(o,d);n.body=h.body,n.status=h.status;let u=S.instanceToJson(h.headers);Object.keys(u).forEach(l=>{n.set(l,u[l])})}}function zt({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 Gn=v(M()),Bn=v(ze()),Xt={get:Gn.default,set:Bn.default};function jt({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=Xt.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),d=Math.trunc(c*60+60-Date.now()/1e3),h=o(c,s.request.headers),u=Xt.get(n,h,0);if(["HEAD","OPTIONS"].indexOf(s.request.method)===-1&&(u+=1),Xt.set(n,h,u),r<u){s.status=429;return}a(c),await i(s)}}var Vn=v(Fe());function Fi(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 Yt({accessKeyId:e,secretAccessKey:t,bucket:r,region:n,endpoint:o,forcePathStyle:a,enableBucketOperations:s=!1}){let i=new Vn.AwsClient({accessKeyId:e,region:n,secretAccessKey:t}),c=Fi(o,{region:n,bucket:r,forcePathStyle:a});return async d=>{if(d.params.file===void 0&&!s){d.status=404,d.body=O.http.statusMessages[404],d.set("Content-Type","text/plain");return}let h=d.params.file?S.resolveParams(`${c}/{file}`,d.params):c,u={};d.request.headers.range&&(u.range=d.request.headers.range);let l=await i.fetch(h,{method:d.method||d.request.method,headers:u});d.status=l.status,d.body=l.body;let f=S.instanceToJson(l.headers);Object.keys(f).forEach(y=>{d.set(y,f[y])})}}var Zt;function zn(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Li(e){return Zt||(Zt=await crypto.subtle.importKey("raw",zn(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),Zt}async function Gi(e,t){let r=await Li(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 Qt({secret:e}){return async(t,r)=>{let n=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Gi(n,e)!==t.query.sign){t.status=403;return}await r(t)}}function er({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 Bi(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 d=a.decode(c),h=Xn(d,r),u=s.encode(h);await o.write(u)}await o.close()}function Vi(e,t){return e.replace(/{{\$(\d)}}/g,(r,n)=>t[parseInt(n,10)])}function Xn(e,t){return t.reduce((r,n)=>r.replace(n.regex,(...o)=>Vi(n.replace,o)),e)}function tr({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=Xn(a,r);else{let{readable:s,writable:i}=new TransformStream;Bi(a,i,r),n.body=s}}}async function zi({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 Xi=e=>(e=e.split("?")[0],e.replace(/\W/g,"").slice(0,100));function rr({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=Xi(o.request.path);if((await zi({projectID:e,API_KEY:t,token:s,siteKey:r,expectedAction:i})||0)<.5){o.status=409;return}await a(o)}}var ji=e=>!new RegExp("(\b)(onS+)(s*)=|javascript|<(|/|[^/>][^>]+|/[^>][^>]+)>").test(e),Yi=(e,t,r)=>!(!ji(t)||!r[e](t)),Zi=e=>!(e===null||typeof e!="object"||Array.isArray(e)&&(!e[0]||typeof e[0]!="object")),nr=(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]=""),Zi(e[n])){if(!nr(e[n],t))return console.error("error validating key+validateObject:",n),!1}else if(!Yi(n,e[n],t))return console.error("error validating key+validateKeyValue:",n),!1}return!0},Qi=e=>!(e==null||typeof e!="object"),ec=(e,t)=>{let r=e.query;return Qi(r)?nr(r,t):!1};async function tc(e){if(["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1)return{};try{let t=await e.text();return JSON.parse(t)}catch{}return{}}function or({allowedKeys:e}){return async(r,n)=>{if(!e)return r.status=501,!1;if(!ec(r,e))return r.status=422,!1;let o=await tc(r.request);if(!nr(o,e))return r.status=422,!1;await n(r)}}var ho=v(M());var E=crypto,D=e=>e instanceof CryptoKey;var x=new TextEncoder,W=new TextDecoder,Su=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 jn=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=>jn(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 et=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 tt(e,t){return e.name===t}function ar(e){return parseInt(e.name.slice(4),10)}function oc(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function ac(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 Zn(e,t,...r){switch(t){case"HS256":case"HS384":case"HS512":{if(!tt(e.algorithm,"HMAC"))throw B("HMAC");let n=parseInt(t.slice(2),10);if(ar(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!tt(e.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let n=parseInt(t.slice(2),10);if(ar(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!tt(e.algorithm,"RSA-PSS"))throw B("RSA-PSS");let n=parseInt(t.slice(2),10);if(ar(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(!tt(e.algorithm,"ECDSA"))throw B("ECDSA");let n=oc(t);if(e.algorithm.namedCurve!==n)throw B(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}ac(e,r)}function Qn(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)=>Qn("Key must be ",e,...t);function sr(e,t,...r){return Qn(`Key for the ${e} algorithm must be `,t,...r)}var ir=e=>D(e),b=["CryptoKey"];var uc=(...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=uc;function pc(e){return typeof e=="object"&&e!==null}function R(e){if(!pc(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 rt=(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)},to=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")}},mc=async(e,t,r,n,o)=>{let a,s,i=new Uint8Array(atob(r.replace(e,"")).split("").map(d=>d.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 d=to(i);a=d.startsWith("P-")?{name:"ECDH",namedCurve:d}:{name:d},s=c?[]:["deriveBits"];break}case"EdDSA":a={name:to(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)},ro=(e,t,r)=>mc(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r);async function cr(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return ro(e,t,r)}var yc=(e,t)=>{if(!(t instanceof Uint8Array)){if(!ir(t))throw new TypeError(sr(e,t,...b,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${b.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},gc=(e,t,r)=>{if(!ir(t))throw new TypeError(sr(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"`)},wc=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?yc(e,t):gc(e,t,r)},Ie=wc;function vc(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=vc;var Oc=Symbol();function nt(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 ot(e,t,r){if(D(t))return Zn(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 Rc=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,at=e=>{let t=Rc.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 Jc=async(e,t,r)=>{let n=await ot(e,t,"sign");rt(e,n);let o=await E.subtle.sign(nt(e,n.algorithm),n,r);return new Uint8Array(o)},co=Jc;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');Ie(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 d=X(c,x.encode("."),i),h=await co(s,t,d),u={signature:J(h),payload:""};return a&&(u.payload=W.decode(i)),this._unprotectedHeader&&(u.header=this._unprotectedHeader),this._protectedHeader&&(u.protected=W.decode(c)),u}};var We=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)+at(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)+at(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 Je=class extends Ae{setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){let n=new We(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 Mc;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Mc="jose/v5.1.0");var uo=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 d=s?i.toLowerCase():i,h=a[i];c[d]=d in c&&typeof h=="object"?r(c[d],h,d=="headers"):h}return c}function n(o,a,s,i,c){var d=typeof o!="string"?(a=o).url:o,h={config:a},u=r(t,a),l={};i=i||u.data,(u.transformRequest||[]).map(function(f){i=f(i,u.headers)||i}),u.auth&&(l.authorization=u.auth),i&&typeof i=="object"&&typeof i.append!="function"&&typeof i.text!="function"&&(i=JSON.stringify(i),l["content-type"]="application/json");try{l[u.xsrfHeaderName]=decodeURIComponent(document.cookie.match(RegExp("(^|; )"+u.xsrfCookieName+"=([^;]*)"))[2])}catch{}return u.baseURL&&(d=d.replace(/^(?!.*\/\/)\/?/,u.baseURL+"/")),u.params&&(d+=(~d.indexOf("?")?"&":"?")+(u.paramsSerializer?u.paramsSerializer(u.params):new URLSearchParams(u.params))),(u.fetch||fetch)(d,{method:(s||u.method||"get").toUpperCase(),body:i,headers:r(u.headers,l,!0),credentials:u.withCredentials?"include":c}).then(function(f){for(var y in f)typeof f[y]!="function"&&(h[y]=f[y]);return u.responseType=="stream"?(h.data=f.body,h):f[u.responseType||"text"]().then(function(w){h.data=w,h.data=JSON.parse(w)}).catch(Object).then(function(){return(u.validateStatus?u.validateStatus(f.status):f.ok)?h:Promise.reject(h)})})}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 Fc=e=>{if(!e)return!1;let t=JSON.parse(atob(e.split(".")[1])),r=Math.floor(Date.now()/1e3);return t.exp>r-600},st=async(e,t)=>{let r=await GCP_INVOKER_TOKEN.get(t);if(Fc(r))return r;let n=await cr(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 Je(a).setProtectedHeader({alg:"RS256",typ:"JWT"}).sign(n),i=await uo.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 po={get:ho.default};function ur({project_id:e,region:t,functionName:r,serviceAccount:n}){return async o=>{let a=po.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 d=await st(n,i);o.request.headers["X-Serverless-Authorization"]=`Bearer ${d}`;let h={headers:o.request.headers,method:o.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(o.request.method)!==-1&&po.get(o,"event.request.body")){let f=o.event.request.clone();h.body=f.body}let u=await fetch(c,h);o.body=u.body,o.status=u.status;let l=S.instanceToJson(u.headers);Object.keys(l).forEach(f=>{o.set(f,l[f])})}}var fo=v(M());var Lc={get:fo.default};function pr({domain:e,serviceAccount:t}){return async r=>{let n=`${e}${r.request.path}`,o=await st(t,e),a=new Headers(r.request.headers);a.set("X-Serverless-Authorization",`Bearer ${o}`);let s={method:r.request.method,headers:a,redirect:"manual"};if(O.methodsMethodsWithBody.includes(r.request.method)&&Lc.get(r,"event.request.body")){let d=r.event.request.clone();s.body=d.body}let i=await fetch(n,s),c=S.instanceToJson(i.headers);r.status=i.status,r.body=await i.text(),Object.entries(c).forEach(([d,h])=>{r.set(d,h)})}}function hr({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)}}var lo={basicAuth:St,cache:Ct,cors:_t,geoDecorator:vt,jwt:Ht,kvStorage:Pt,kvStorageBinding:Kt,lambda:Ot,loadbalancer:Wt,logger:kt,oauth2:Bt,origin:Vt,rateLimit:jt,response:zt,s3:Yt,signature:Qt,split:er,transform:tr,recaptcha:rr,userInputValidation:or,cloudfunction:ur,gcpCloudrun:pr,headers:hr};module.exports=class{constructor(t=[],r={}){this.router=new mo.default,t.forEach(n=>{let o=r[n.handlerName]||lo[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: