@ahmadissa/cloudworker-proxy 1.1.89 → 1.1.91

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