@ahmadissa/cloudworker-proxy 1.1.74 → 1.1.76

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 bo=Object.create;var mr=Object.defineProperty;var Co=Object.getOwnPropertyDescriptor;var _o=Object.getOwnPropertyNames;var vo=Object.getPrototypeOf,Po=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ho=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _o(t))!Po.call(e,o)&&o!==r&&mr(e,o,{get:()=>t[o],enumerable:!(n=Co(t,o))||n.enumerable});return e};var v=(e,t,r)=>(r=e!=null?bo(vo(e)):{},Ho(t||!e||!e.__esModule?mr(r,"default",{value:e,enumerable:!0}):r,e));var ht=_((Xc,gr)=>{function To({host:e=".*",path:t=".*",excludePath:r=null,method:n=[".*"],handler:o,protocol:a=".*",handlerName:s,headers:i={},data:c}){let d=[],h=[],u=e.replace(/(:([^.]+))/g,(T,N,U)=>(d.push(U),"([^.]+)")),f=t.replace(/(:([^/]+))/g,(T,N,U)=>U.slice(-1)==="*"?(h.push(U.slice(0,U.length-1)),"(.*)"):(h.push(U),"([^/]*)")),l=new RegExp(`^${u}$`,"i"),y=new RegExp(`^${f}$`,"i"),w=r?new RegExp(`^${r}$`,"i"):null,m=new RegExp(`^${n.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:d,pathVariables:h,host:l,path:y,excludePath:w,method:m,protocol:g,handler:o,handlerName:s,headers:i,data:c}}function yr(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}async function Ko(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 Oo(e){let t=new URL(e.url),r=yr(t.searchParams),n=yr(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 Ko(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)}}gr.exports={parseRoute:To,parseRequest:Oo}});var Ar=_((jc,wr)=>{function xo(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 Ro(e,t){let r=!0;return Object.keys(e.headers).forEach(n=>{t.headers[n]!==e.headers[n]&&(r=!1)}),r}function Uo(e,t){return e.protocol.test(t.protocol)}function Io(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&Ro(e,t)&&Uo(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function ft(e,t){let[r,...n]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!Io(r,e.request))return ft(e,n);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=xo(e.request,r);try{return r.handler(e,async o=>ft(o,n))}catch(o){throw o.route=r.handler.name,o}}wr.exports={recurseRoutes:ft}});var Er=_((Yc,Sr)=>{Sr.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var _r=_((Zc,Cr)=>{var Wo=ht();Cr.exports=class br{constructor(t){this.request=Wo.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 br(this.event);return t.cloned=!0,t}}});var Pr=_((ed,vr)=>{var ue=ht(),Jo=Ar(),_e=Er(),ko=_r();vr.exports=class{constructor(){this.routes=[]}get(t,r){let n=ue.parseRoute({method:[_e.methods.GET,_e.methods.HEAD],path:t,handler:r});this.routes.push(n)}post(t,r){let n=ue.parseRoute({method:[_e.methods.POST],path:t,handler:r});this.routes.push(n)}patch(t,r){let n=ue.parseRoute({method:[_e.methods.PATCH],path:t,handler:r});this.routes.push(n)}del(t,r){let n=ue.parseRoute({method:[_e.methods.DELETE],path:t,handler:r});this.routes.push(n)}use(t){let r=ue.parseRoute({handler:t,middleware:!0});this.routes.push(r)}add({host:t,path:r,excludePath:n,method:o,handlerName:a,headers:s,protocol:i},c){let d=ue.parseRoute({method:o,host:t,path:r,excludePath:n,handler:c,headers:s,handlerName:a,protocol:i});this.routes.push(d)}async resolve(t){let r=new ko(t);try{return await Jo.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=_((td,Dr)=>{var No="Expected a function",xr="__lodash_hash_undefined__",Rr=1/0,Do="[object Function]",Mo="[object GeneratorFunction]",$o="[object Symbol]",qo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Fo=/^\w*$/,Lo=/^\./,Go=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Bo=/[\\^$.*+?()[\]{}|]/g,Vo=/\\(\\)?/g,zo=/^\[object .+?Constructor\]$/,Xo=typeof global=="object"&&global&&global.Object===Object&&global,jo=typeof self=="object"&&self&&self.Object===Object&&self,mt=Xo||jo||Function("return this")();function Yo(e,t){return e?.[t]}function Zo(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Qo=Array.prototype,ea=Function.prototype,Ur=Object.prototype,lt=mt["__core-js_shared__"],Hr=function(){var e=/[^.]+$/.exec(lt&&lt.keys&&lt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Ir=ea.toString,yt=Ur.hasOwnProperty,Wr=Ur.toString,ta=RegExp("^"+Ir.call(yt).replace(Bo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Tr=mt.Symbol,ra=Qo.splice,na=Jr(mt,"Map"),ve=Jr(Object,"create"),Kr=Tr?Tr.prototype:void 0,Or=Kr?Kr.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 oa(){this.__data__=ve?ve(null):{}}function aa(e){return this.has(e)&&delete this.__data__[e]}function sa(e){var t=this.__data__;if(ve){var r=t[e];return r===xr?void 0:r}return yt.call(t,e)?t[e]:void 0}function ia(e){var t=this.__data__;return ve?t[e]!==void 0:yt.call(t,e)}function ca(e,t){var r=this.__data__;return r[e]=ve&&t===void 0?xr:t,this}re.prototype.clear=oa;re.prototype.delete=aa;re.prototype.get=sa;re.prototype.has=ia;re.prototype.set=ca;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 da(){this.__data__=[]}function ua(e){var t=this.__data__,r=Me(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ra.call(t,r,1),!0}function pa(e){var t=this.__data__,r=Me(t,e);return r<0?void 0:t[r][1]}function ha(e){return Me(this.__data__,e)>-1}function fa(e,t){var r=this.__data__,n=Me(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}pe.prototype.clear=da;pe.prototype.delete=ua;pe.prototype.get=pa;pe.prototype.has=ha;pe.prototype.set=fa;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 la(){this.__data__={hash:new re,map:new(na||pe),string:new re}}function ma(e){return $e(this,e).delete(e)}function ya(e){return $e(this,e).get(e)}function ga(e){return $e(this,e).has(e)}function wa(e,t){return $e(this,e).set(e,t),this}ne.prototype.clear=la;ne.prototype.delete=ma;ne.prototype.get=ya;ne.prototype.has=ga;ne.prototype.set=wa;function Me(e,t){for(var r=e.length;r--;)if(Ka(e[r][0],t))return r;return-1}function Aa(e,t){t=Ca(t,e)?[t]:ba(t);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Ha(t[r++])];return r&&r==n?e:void 0}function Sa(e){if(!Nr(e)||va(e))return!1;var t=Oa(e)||Zo(e)?ta:zo;return t.test(Ta(e))}function Ea(e){if(typeof e=="string")return e;if(wt(e))return Or?Or.call(e):"";var t=e+"";return t=="0"&&1/e==-Rr?"-0":t}function ba(e){return kr(e)?e:Pa(e)}function $e(e,t){var r=e.__data__;return _a(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Jr(e,t){var r=Yo(e,t);return Sa(r)?r:void 0}function Ca(e,t){if(kr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||wt(e)?!0:Fo.test(e)||!qo.test(e)||t!=null&&e in Object(t)}function _a(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function va(e){return!!Hr&&Hr in e}var Pa=gt(function(e){e=Ra(e);var t=[];return Lo.test(e)&&t.push(""),e.replace(Go,function(r,n,o,a){t.push(o?a.replace(Vo,"$1"):n||r)}),t});function Ha(e){if(typeof e=="string"||wt(e))return e;var t=e+"";return t=="0"&&1/e==-Rr?"-0":t}function Ta(e){if(e!=null){try{return Ir.call(e)}catch{}try{return e+""}catch{}}return""}function gt(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(No);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var s=e.apply(this,n);return r.cache=a.set(o,s),s};return r.cache=new(gt.Cache||ne),r}gt.Cache=ne;function Ka(e,t){return e===t||e!==e&&t!==t}var kr=Array.isArray;function Oa(e){var t=Nr(e)?Wr.call(e):"";return t==Do||t==Mo}function Nr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function xa(e){return!!e&&typeof e=="object"}function wt(e){return typeof e=="symbol"||xa(e)&&Wr.call(e)==$o}function Ra(e){return e==null?"":Ea(e)}function Ua(e,t,r){var n=e==null?void 0:Aa(e,t);return n===void 0?r:n}Dr.exports=Ua});var Fe=_((qe,Br)=>{(function(e,t){typeof qe=="object"&&typeof Br<"u"?t(qe):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(qe,function(e){"use strict";let t=new TextEncoder,r={appstream2:"appstream",cloudhsmv2:"cloudhsm",email:"ses",marketplace:"aws-marketplace",mobile:"AWSMobileHubService",pinpoint:"mobiletargeting",queue:"sqs","git-codecommit":"codecommit","mturk-requester-sandbox":"mturk-requester","personalize-runtime":"personalize"},n=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class o{constructor({accessKeyId:f,secretAccessKey:l,sessionToken:y,service:w,region:m,cache:g,retries:T,initRetryMs:N}){if(f==null)throw new TypeError("accessKeyId is a required option");if(l==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=f,this.secretAccessKey=l,this.sessionToken=y,this.service=w,this.region=m,this.cache=g||new Map,this.retries=T??10,this.initRetryMs=N||50}async sign(f,l){if(f instanceof Request){let{method:m,url:g,headers:T,body:N}=f;l=Object.assign({method:m,url:g,headers:T},l),l.body==null&&T.has("Content-Type")&&(l.body=N!=null&&T.has("X-Amz-Content-Sha256")?N:await f.clone().arrayBuffer()),f=g}let y=new a(Object.assign({url:f},l,this,l&&l.aws)),w=Object.assign({},l,await y.sign());return delete w.aws,new Request(w.url.toString(),w)}async fetch(f,l){for(let y=0;y<=this.retries;y++){let w=fetch(await this.sign(f,l));if(y===this.retries)return w;let m=await w;if(m.status<500&&m.status!==429)return m;await new Promise(g=>setTimeout(g,Math.random()*this.initRetryMs*Math.pow(2,y)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class a{constructor({method:f,url:l,headers:y,body:w,accessKeyId:m,secretAccessKey:g,sessionToken:T,service:N,region:U,cache:ee,datetime:Se,signQuery:it,appendSessionToken:ct,allHeaders:ke,singleEncode:dt}){if(l==null)throw new TypeError("url is a required option");if(m==null)throw new TypeError("accessKeyId is a required option");if(g==null)throw new TypeError("secretAccessKey is a required option");this.method=f||(w?"POST":"GET"),this.url=new URL(l),this.headers=new Headers(y||{}),this.body=w,this.accessKeyId=m,this.secretAccessKey=g,this.sessionToken=T;let V,Ee;(!N||!U)&&([V,Ee]=h(this.url,this.headers)),this.service=N||V||"",this.region=U||Ee||"us-east-1",this.cache=ee||new Map,this.datetime=Se||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=it,this.appendSessionToken=ct||this.service==="iotdevicegateway",this.headers.delete("Host");let q=this.signQuery?this.url.searchParams:this.headers;if(this.service==="s3"&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),q.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&q.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(C=>ke||!n.includes(C)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(C=>C+":"+(C==="host"?this.url.host:(this.headers.get(C)||"").replace(/\s+/g," "))).join(`
2
- `),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!q.has("X-Amz-Expires")&&q.set("X-Amz-Expires","86400"),q.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),q.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),q.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch{this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");dt||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=d(this.encodedPath);let Ne=new Set;this.encodedSearch=[...this.url.searchParams].filter(([C])=>{if(!C)return!1;if(this.service==="s3"){if(Ne.has(C))return!1;Ne.add(C)}return!0}).map(C=>C.map(be=>d(encodeURIComponent(be)))).sort(([C,be],[Ce,De])=>C<Ce?-1:C>Ce?1:be<De?-1:be>De?1:0).map(C=>C.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let f=this.datetime.slice(0,8),l=[this.secretAccessKey,f,this.region,this.service].join(),y=this.cache.get(l);if(!y){let w=await s("AWS4"+this.secretAccessKey,f),m=await s(w,this.region),g=await s(m,this.service);y=await s(g,"aws4_request"),this.cache.set(l,y)}return c(await s(y,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,c(await i(await this.canonicalString()))].join(`
1
+ "use strict";var Co=Object.create;var yr=Object.defineProperty;var _o=Object.getOwnPropertyDescriptor;var vo=Object.getOwnPropertyNames;var Po=Object.getPrototypeOf,Ho=Object.prototype.hasOwnProperty;var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var To=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of vo(t))!Ho.call(e,o)&&o!==r&&yr(e,o,{get:()=>t[o],enumerable:!(n=_o(t,o))||n.enumerable});return e};var v=(e,t,r)=>(r=e!=null?Co(Po(e)):{},To(t||!e||!e.__esModule?yr(r,"default",{value:e,enumerable:!0}):r,e));var ft=_((jc,wr)=>{function Ko({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 gr(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}async function Oo(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 xo(e){let t=new URL(e.url),r=gr(t.searchParams),n=gr(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 Oo(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)}}wr.exports={parseRoute:Ko,parseRequest:xo}});var Sr=_((Yc,Ar)=>{function Ro(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 Uo(e,t){let r=!0;return Object.keys(e.headers).forEach(n=>{t.headers[n]!==e.headers[n]&&(r=!1)}),r}function Io(e,t){return e.protocol.test(t.protocol)}function Wo(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&Uo(e,t)&&Io(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(!Wo(r,e.request))return lt(e,n);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=Ro(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=_((Zc,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=_((Qc,_r)=>{var Jo=ft();_r.exports=class Cr{constructor(t){this.request=Jo.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=_((td,Pr)=>{var ue=ft(),ko=Sr(),_e=br(),No=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: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 No(t);try{return await ko.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=_((rd,Mr)=>{var Do="Expected a function",Rr="__lodash_hash_undefined__",Ur=1/0,Mo="[object Function]",$o="[object GeneratorFunction]",qo="[object Symbol]",Fo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Lo=/^\w*$/,Go=/^\./,Bo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vo=/[\\^$.*+?()[\]{}|]/g,zo=/\\(\\)?/g,Xo=/^\[object .+?Constructor\]$/,jo=typeof global=="object"&&global&&global.Object===Object&&global,Yo=typeof self=="object"&&self&&self.Object===Object&&self,yt=jo||Yo||Function("return this")();function Zo(e,t){return e?.[t]}function Qo(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ea=Array.prototype,ta=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=ta.toString,gt=Ir.hasOwnProperty,Jr=Ir.toString,ra=RegExp("^"+Wr.call(gt).replace(Vo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Kr=yt.Symbol,na=ea.splice,oa=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 aa(){this.__data__=ve?ve(null):{}}function sa(e){return this.has(e)&&delete this.__data__[e]}function ia(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 ca(e){var t=this.__data__;return ve?t[e]!==void 0:gt.call(t,e)}function da(e,t){var r=this.__data__;return r[e]=ve&&t===void 0?Rr:t,this}re.prototype.clear=aa;re.prototype.delete=sa;re.prototype.get=ia;re.prototype.has=ca;re.prototype.set=da;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 ua(){this.__data__=[]}function pa(e){var t=this.__data__,r=$e(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():na.call(t,r,1),!0}function ha(e){var t=this.__data__,r=$e(t,e);return r<0?void 0:t[r][1]}function fa(e){return $e(this.__data__,e)>-1}function la(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=ua;pe.prototype.delete=pa;pe.prototype.get=ha;pe.prototype.has=fa;pe.prototype.set=la;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 ma(){this.__data__={hash:new re,map:new(oa||pe),string:new re}}function ya(e){return qe(this,e).delete(e)}function ga(e){return qe(this,e).get(e)}function wa(e){return qe(this,e).has(e)}function Aa(e,t){return qe(this,e).set(e,t),this}ne.prototype.clear=ma;ne.prototype.delete=ya;ne.prototype.get=ga;ne.prototype.has=wa;ne.prototype.set=Aa;function $e(e,t){for(var r=e.length;r--;)if(Oa(e[r][0],t))return r;return-1}function Sa(e,t){t=_a(t,e)?[t]:Ca(t);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Ta(t[r++])];return r&&r==n?e:void 0}function Ea(e){if(!Dr(e)||Pa(e))return!1;var t=xa(e)||Qo(e)?ra:Xo;return t.test(Ka(e))}function ba(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 Ca(e){return Nr(e)?e:Ha(e)}function qe(e,t){var r=e.__data__;return va(t)?r[typeof t=="string"?"string":"hash"]:r.map}function kr(e,t){var r=Zo(e,t);return Ea(r)?r:void 0}function _a(e,t){if(Nr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||At(e)?!0:Lo.test(e)||!Fo.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 Pa(e){return!!Tr&&Tr in e}var Ha=wt(function(e){e=Ua(e);var t=[];return Go.test(e)&&t.push(""),e.replace(Bo,function(r,n,o,s){t.push(o?s.replace(zo,"$1"):n||r)}),t});function Ta(e){if(typeof e=="string"||At(e))return e;var t=e+"";return t=="0"&&1/e==-Ur?"-0":t}function Ka(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(Do);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 Oa(e,t){return e===t||e!==e&&t!==t}var Nr=Array.isArray;function xa(e){var t=Dr(e)?Jr.call(e):"";return t==Mo||t==$o}function Dr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ra(e){return!!e&&typeof e=="object"}function At(e){return typeof e=="symbol"||Ra(e)&&Jr.call(e)==qo}function Ua(e){return e==null?"":ba(e)}function Ia(e,t,r){var n=e==null?void 0:Sa(e,t);return n===void 0?r:n}Mr.exports=Ia});var Le=_((Fe,Vr)=>{(function(e,t){typeof Fe=="object"&&typeof Vr<"u"?t(Fe):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(Fe,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 f=this.headers.get("X-Amz-Content-Sha256");if(f==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");f=c(await i(this.body||""))}return f}}async function s(u,f){let l=await crypto.subtle.importKey("raw",typeof u=="string"?t.encode(u):u,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",l,t.encode(f))}async function i(u){return crypto.subtle.digest("SHA-256",typeof u=="string"?t.encode(u):u)}function c(u){return Array.prototype.map.call(new Uint8Array(u),f=>("0"+f.toString(16)).slice(-2)).join("")}function d(u){return u.replace(/[!'()*]/g,f=>"%"+f.charCodeAt(0).toString(16).toUpperCase())}function h(u,f){let{hostname:l,pathname:y}=u,w=l.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[m,g]=(w||["",""]).slice(1,3);if(g==="us-gov")g="us-gov-west-1";else if(g==="s3"||g==="s3-accelerate")g="us-east-1",m="s3";else if(m==="iot")l.startsWith("iot.")?m="execute-api":l.startsWith("data.jobs.iot.")?m="iot-jobs-data":m=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(m==="autoscaling"){let T=(f.get("X-Amz-Target")||"").split(".")[0];T==="AnyScaleFrontendService"?m="application-autoscaling":T==="AnyScaleScalingPlannerFrontendService"&&(m="autoscaling-plans")}else g==null&&m.startsWith("s3-")?(g=m.slice(3).replace(/^fips-|^external-1/,""),m="s3"):m.endsWith("-fips")?m=m.slice(0,-5):g&&/-\d$/.test(m)&&!/-\d$/.test(g)&&([m,g]=[g,m]);return[r[m]||m,g]}e.AwsClient=o,e.AwsV4Signer=a,Object.defineProperty(e,"__esModule",{value:!0})})});var ze=_((_d,sn)=>{var es="Expected a function",Zr="__lodash_hash_undefined__",Qr=1/0,ts=9007199254740991,rs="[object Function]",ns="[object GeneratorFunction]",os="[object Symbol]",as=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ss=/^\w*$/,is=/^\./,cs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ds=/[\\^$.*+?()[\]{}|]/g,us=/\\(\\)?/g,ps=/^\[object .+?Constructor\]$/,hs=/^(?:0|[1-9]\d*)$/,fs=typeof global=="object"&&global&&global.Object===Object&&global,ls=typeof self=="object"&&self&&self.Object===Object&&self,Rt=fs||ls||Function("return this")();function ms(e,t){return e?.[t]}function ys(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var gs=Array.prototype,ws=Function.prototype,en=Object.prototype,xt=Rt["__core-js_shared__"],zr=function(){var e=/[^.]+$/.exec(xt&&xt.keys&&xt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),tn=ws.toString,Ge=en.hasOwnProperty,rn=en.toString,As=RegExp("^"+tn.call(Ge).replace(ds,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Xr=Rt.Symbol,Ss=gs.splice,Es=nn(Rt,"Map"),Pe=nn(Object,"create"),jr=Xr?Xr.prototype:void 0,Yr=jr?jr.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 bs(){this.__data__=Pe?Pe(null):{}}function Cs(e){return this.has(e)&&delete this.__data__[e]}function _s(e){var t=this.__data__;if(Pe){var r=t[e];return r===Zr?void 0:r}return Ge.call(t,e)?t[e]:void 0}function vs(e){var t=this.__data__;return Pe?t[e]!==void 0:Ge.call(t,e)}function Ps(e,t){var r=this.__data__;return r[e]=Pe&&t===void 0?Zr:t,this}ae.prototype.clear=bs;ae.prototype.delete=Cs;ae.prototype.get=_s;ae.prototype.has=vs;ae.prototype.set=Ps;function he(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Hs(){this.__data__=[]}function Ts(e){var t=this.__data__,r=Be(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Ss.call(t,r,1),!0}function Ks(e){var t=this.__data__,r=Be(t,e);return r<0?void 0:t[r][1]}function Os(e){return Be(this.__data__,e)>-1}function xs(e,t){var r=this.__data__,n=Be(r,e);return n<0?r.push([e,t]):r[n][1]=t,this}he.prototype.clear=Hs;he.prototype.delete=Ts;he.prototype.get=Ks;he.prototype.has=Os;he.prototype.set=xs;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 Rs(){this.__data__={hash:new ae,map:new(Es||he),string:new ae}}function Us(e){return Ve(this,e).delete(e)}function Is(e){return Ve(this,e).get(e)}function Ws(e){return Ve(this,e).has(e)}function Js(e,t){return Ve(this,e).set(e,t),this}se.prototype.clear=Rs;se.prototype.delete=Us;se.prototype.get=Is;se.prototype.has=Ws;se.prototype.set=Js;function ks(e,t,r){var n=e[t];(!(Ge.call(e,t)&&on(n,r))||r===void 0&&!(t in e))&&(e[t]=r)}function Be(e,t){for(var r=e.length;r--;)if(on(e[r][0],t))return r;return-1}function Ns(e){if(!Le(e)||Gs(e))return!1;var t=Xs(e)||ys(e)?As:ps;return t.test(zs(e))}function Ds(e,t,r,n){if(!Le(e))return e;t=Fs(t,e)?[t]:$s(t);for(var o=-1,a=t.length,s=a-1,i=e;i!=null&&++o<a;){var c=Vs(t[o]),d=r;if(o!=s){var h=i[c];d=n?n(h,c,i):void 0,d===void 0&&(d=Le(h)?h:qs(t[o+1])?[]:{})}ks(i,c,d),i=i[c]}return e}function Ms(e){if(typeof e=="string")return e;if(It(e))return Yr?Yr.call(e):"";var t=e+"";return t=="0"&&1/e==-Qr?"-0":t}function $s(e){return an(e)?e:Bs(e)}function Ve(e,t){var r=e.__data__;return Ls(t)?r[typeof t=="string"?"string":"hash"]:r.map}function nn(e,t){var r=ms(e,t);return Ns(r)?r:void 0}function qs(e,t){return t=t??ts,!!t&&(typeof e=="number"||hs.test(e))&&e>-1&&e%1==0&&e<t}function Fs(e,t){if(an(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||It(e)?!0:ss.test(e)||!as.test(e)||t!=null&&e in Object(t)}function Ls(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Gs(e){return!!zr&&zr in e}var Bs=Ut(function(e){e=Ys(e);var t=[];return is.test(e)&&t.push(""),e.replace(cs,function(r,n,o,a){t.push(o?a.replace(us,"$1"):n||r)}),t});function Vs(e){if(typeof e=="string"||It(e))return e;var t=e+"";return t=="0"&&1/e==-Qr?"-0":t}function zs(e){if(e!=null){try{return tn.call(e)}catch{}try{return e+""}catch{}}return""}function Ut(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(es);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var s=e.apply(this,n);return r.cache=a.set(o,s),s};return r.cache=new(Ut.Cache||se),r}Ut.Cache=se;function on(e,t){return e===t||e!==e&&t!==t}var an=Array.isArray;function Xs(e){var t=Le(e)?rn.call(e):"";return t==rs||t==ns}function Le(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function js(e){return!!e&&typeof e=="object"}function It(e){return typeof e=="symbol"||js(e)&&rn.call(e)==os}function Ys(e){return e==null?"":Ms(e)}function Zs(e,t,r){return e==null?e:Ds(e,t,r)}sn.exports=Zs});var ln=_(Nt=>{"use strict";Nt.parse=si;Nt.serialize=ii;var ni=decodeURIComponent,oi=encodeURIComponent,ai=/; */,je=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function si(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(ai),a=n.decode||ni,s=0;s<o.length;s++){var i=o[s],c=i.indexOf("=");if(!(c<0)){var d=i.substr(0,c).trim(),h=i.substr(++c,i.length).trim();h[0]=='"'&&(h=h.slice(1,-1)),r[d]==null&&(r[d]=ci(h,a))}}return r}function ii(e,t,r){var n=r||{},o=n.encode||oi;if(typeof o!="function")throw new TypeError("option encode is invalid");if(!je.test(e))throw new TypeError("argument name is invalid");var a=o(t);if(a&&!je.test(a))throw new TypeError("argument val is invalid");var s=e+"="+a;if(n.maxAge!=null){var i=n.maxAge-0;if(isNaN(i)||!isFinite(i))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+Math.floor(i)}if(n.domain){if(!je.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!je.test(n.path))throw new TypeError("option path is invalid");s+="; Path="+n.path}if(n.expires){if(typeof n.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires="+n.expires.toUTCString()}if(n.httpOnly&&(s+="; HttpOnly"),n.secure&&(s+="; Secure"),n.sameSite){var c=typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite;switch(c){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function ci(e,t){try{return t(e)}catch{return e}}});var yn=_((qd,mn)=>{"use strict";var Ye=1;function di(){return Ye=(Ye*9301+49297)%233280,Ye/233280}function ui(e){Ye=e}mn.exports={nextValue:di,seed:ui}});var Oe=_((Fd,Sn)=>{"use strict";var Dt=yn(),ce="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",z,gn,Ke;function Mt(){Ke=!1}function wn(e){if(!e){z!==ce&&(z=ce,Mt());return}if(e!==z){if(e.length!==ce.length)throw new Error("Custom alphabet for shortid must be "+ce.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter(function(r,n,o){return n!==o.lastIndexOf(r)});if(t.length)throw new Error("Custom alphabet for shortid must be "+ce.length+" unique characters. These characters were not unique: "+t.join(", "));z=e,Mt()}}function pi(e){return wn(e),z}function hi(e){Dt.seed(e),gn!==e&&(Mt(),gn=e)}function fi(){z||wn(ce);for(var e=z.split(""),t=[],r=Dt.nextValue(),n;e.length>0;)r=Dt.nextValue(),n=Math.floor(r*e.length),t.push(e.splice(n,1)[0]);return t.join("")}function An(){return Ke||(Ke=fi(),Ke)}function li(e){var t=An();return t[e]}function mi(){return z||ce}Sn.exports={get:mi,characters:pi,seed:hi,lookup:li,shuffled:An}});var bn=_((Ld,En)=>{"use strict";var $t=typeof window=="object"&&(window.crypto||window.msCrypto),qt;!$t||!$t.getRandomValues?qt=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:qt=function(e){return $t.getRandomValues(new Uint8Array(e))};En.exports=qt});var _n=_((Gd,Cn)=>{Cn.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 Pn=_((Bd,vn)=>{"use strict";var yi=Oe(),gi=bn(),wi=_n();function Ai(e){for(var t=0,r,n="";!r;)n=n+wi(gi,yi.get(),1),r=e<Math.pow(16,t+1),t++;return n}vn.exports=Ai});var Kn=_((zd,Tn)=>{"use strict";var Ze=Pn(),Vd=Oe(),Si=1567752802062,Ei=7,Qe,Hn;function bi(e){var t="",r=Math.floor((Date.now()-Si)*.001);return r===Hn?Qe++:(Qe=0,Hn=r),t=t+Ze(Ei),t=t+Ze(e),Qe>0&&(t=t+Ze(Qe)),t=t+Ze(r),t}Tn.exports=bi});var xn=_((Xd,On)=>{"use strict";var Ci=Oe();function _i(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+Ci.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}On.exports=_i});var Un=_((jd,Rn)=>{"use strict";Rn.exports=0});var Jn=_((Yd,G)=>{"use strict";var Ft=Oe(),vi=Kn(),Pi=xn(),In=Un()||0;function Hi(e){return Ft.seed(e),G.exports}function Ti(e){return In=e,G.exports}function Ki(e){return e!==void 0&&Ft.characters(e),Ft.shuffled()}function Wn(){return vi(In)}G.exports=Wn;G.exports.generate=Wn;G.exports.seed=Hi;G.exports.worker=Ti;G.exports.characters=Ki;G.exports.isValid=Pi});var Nn=_((Zd,kn)=>{"use strict";kn.exports=Jn()});var yo=v(Pr());var Mr=v(M()),Ia={get:Mr.default};function At(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function St(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return At(t);let n=Ia.get(t,"request.headers.authorization");if(!n||!n.startsWith("Basic "))return At(t);let o=e.users.map(i=>i.authToken),a=n.substring(6),s=o.indexOf(a);return s===-1?At(t):(t.state.user=e.users[s].username,r(t))}}var $r=caches.default;async function Wa(e){return await $r.match(e)}async function Ja(e,t){return $r.put(e.href,t)}var Et={get:Wa,set:Ja};async function ka(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 qr=ka;function Na(e,t={}){return Object.keys(t).reduce((r,n)=>r.replace(`{${n}}`,t[n]),e)}function bt(e){return[...e].reduce((t,r)=>{let n={};return n[r[0]]=r[1],{...t,...n}},{})}var S={resolveParams:Na,instanceToJson:bt};var Da=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function Ma(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}async function $a(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 qr(await Ma(e.request));break;case"header":n[s]=e.request.headers[i[1]]||"";break;default:n[s]=s}}let o=encodeURIComponent(t.replace(/({(.*?)})/gi,(a,s,i)=>n[i]));return new Request(`http://${e.request.hostname}/${o}`)}function Ct({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=Da}){return async(n,o)=>{let a=await $a(n,t),s=await Et.get(a);if(s){n.body=s.body,n.status=s.status;let i=bt(s.headers);Object.keys(i).forEach(c=>{n.set(c,i[c])}),n.set("X-Cache-Hit",!0)}else{await o(n);let i;n.body.tee?[n.body,i]=n.body.tee():i=n.body;let c=new Response(i,{status:n.status});Object.keys(n.response.headers).forEach(d=>{r.indexOf(d.toLowerCase())===-1&&c.headers.set(d,n.response.headers[d])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),n.event.waitUntil(Et.set(a,c))}}}function _t({allowedOrigins:e=["*"],allowedMethods:t=["GET","PUT","POST","PATCH","DELETE","HEAD","OPTIONS"],allowCredentials:r=!0,allowedHeaders:n=["Content-Type"],allowedExposeHeaders:o=[],maxAge:a=600,optionsSuccessStatus:s=204,terminatePreflight:i=!1}){return async(c,d)=>{let{method:h}=c.request,{origin:u}=c.request.headers,f=c.request.headers["access-control-request-headers"];if(qa(c,u,e),Fa(c,r),Va(c,o),h==="OPTIONS"&&(La(c,t),Ga(c,f,n),Ba(c,a),i)){c.status=s,c.set("Content-Length","0"),c.body="";return}await d(c)}}function qa(e,t,r){Array.isArray(r)&&(r[0]==="*"?e.set("Access-Control-Allow-Origin","*"):r.indexOf(t)!==-1&&(e.set("Access-Control-Allow-Origin",t),e.set("Vary","Origin")))}function Fa(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function La(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function Ga(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 Ba(e,t){t&&e.set("Access-Control-Max-Age",t)}function Va(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}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 vt(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=za[r],await t(e)}}function Fr(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 Xa(e){let t=e.split("."),r=JSON.parse(Fr(t[0])),n=JSON.parse(Fr(t[1])),o=atob(t[2].replace(/-/g,"+").replace(/_/g,"/"));return{header:r,payload:n,signature:o,raw:{header:t[0],payload:t[1],signature:t[2]}}}function Pt({jwksUri:e,iss:t,aud:r,allowPublicAccess:n=!1}){async function o(){return(await(await fetch(e)).json()).keys}function a(c){return c.status=403,c.body="Forbidden",c}async function s(c){let h=new TextEncoder().encode([c.raw.header,c.raw.payload].join(".")),u=new Uint8Array(Array.from(c.signature).map(y=>y.charCodeAt(0))),f=await o();return(await Promise.all(f.map(async y=>{let w=await crypto.subtle.importKey("jwk",y,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",w,u,h)}))).some(y=>y)}async function i(c,d){if(c.request.method==="OPTIONS"||n)return d(c);if((c.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let u=Xa(c.request.headers.authorization.slice(7)),f=new Date(u.payload.exp*1e3),l=new Date(Date.now());return f<=l||!t||u.payload.iss!==t||!r||u.payload.aud!==r||!await s(u)?a(c):(c.state.user=u.payload,d(c))}return a(c)}return i}var Lr=v(M()),ja={get:Lr.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=ja.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 Ya(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Ht({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:n,kvBasePath:o="",kvKey:a="{file}",defaultExtension:s="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:d={},mode:h="rest"}){let u=new oe({accountId:e,namespace:t,authEmail:r,authKey:n,mode:h}),f={...O.mime,...d};return async l=>{let y=S.resolveParams(a,l.params),w=y===""&&i?i:Ya(y,s),m=await u.get(o+w);!m&&c&&(m=await u.get(o+c)),m?(l.status=200,l.body=m,l.set("Content-Type",f[w.split(".").pop()]||"text/plain")):(l.status=404,l.body=O.http.statusMessages[404],l.set("Content-Type","text/plain"))}}var Gr=v(M());var Tt={get:Gr.default};function Za(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function Qa(e,t){let r=Tt.get(e,"headers.if-none-match"),n=Tt.get(t,"metadata.headers.etag");return r?r===n:!1}function Kt({kvNamespaceBinding:e,kvBasePath:t="",kvKey:r="{file}",defaultExtension:n="html",defaultIndexDocument:o,defaultErrorDocument:a}){async function s(i){return await global[e].getWithMetadata(i)}return async i=>{let c=S.resolveParams(r,i.params),d=c===""&&o?o:Za(c,n),h=await s(t+d);if(!h&&a&&(h=await s(t+a)),h)if(Qa(i.request,h))i.status=304;else{i.status=h.status,i.body=h.value;let u=Tt.get(h,"metadata.headers",{});Object.keys(u).forEach(f=>{i.set(f,u[f])})}else i.status=404,i.body=O.http.statusMessages[404],i.set("Content-Type","text/plain")}}var Vr=v(Fe());function Ot({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:n}){let o=new Vr.AwsClient({accessKeyId:e,secretAccessKey:t});return async a=>{let s=`https://lambda.${r}.amazonaws.com/2015-03-31/functions/${n}/invocations`,i={},c=await o.fetch(s,{body:JSON.stringify(i)});a.status=c.status,a.body=c.body;let d=S.instanceToJson(c.headers);Object.keys(d).forEach(h=>{a.set(h,d[h])})}}var dn=v(M()),un=v(ze());var cn={get:dn.default,set:un.default};function Qs(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function ei(e){return e[Math.floor(Math.random()*e.length)]}function Wt({sources:e=[]}){return async t=>{let r=ei(e),n={method:t.request.method,headers:Qs(t.request.headers),redirect:"manual",cf:t.request.cf};if(O.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&cn.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);cn.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 fn=v(M());var Jt={name:"@ahmadissa/cloudworker-proxy",version:"1.1.74",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 pn(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((n,o)=>e[o]==null?n:{...n,...pn(e[o],t,r+o+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var Xe=pn;var He=class{constructor(t){this.url=t.url,this.contentType=t.contentType,this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t})}async log(t){let r=Xe(t,this.delimiter);await this.chunker.push(JSON.stringify(r))}async sendMessage(t){return fetch(this.url,{body:t,method:"POST",headers:{"Content-Type":this.contentType}})}};var hn=v(Fe());var Te=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t}),this.awsClient=new hn.AwsClient({accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,region:t.region}),this.streamName=t.streamName,this.region=t.region}async log(t){let r=Xe(t,this.delimiter);await this.chunker.push(JSON.stringify(r))}async sendMessage(t){let r=btoa(`${JSON.stringify(t)}
7
- `),n=JSON.stringify({DeliveryStreamName:this.streamName,Record:{Data:r}}),o=`https://firehose.${this.region}.amazonaws.com`,a=new Request(o,{method:"POST",body:n,headers:{"X-Amz-Target":"Firehose_20150804.PutRecord","Content-Type":" application/x-amz-json-1.1"}});return this.awsClient.fetch(a)}};var I={get:fn.default};async function ri(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}function kt(e){let t;switch(e.type){case"http":t=new He(e);break;case"kinesis":t=new Te(e);break;default:throw new Error(`Log service type not supported: ${e.type}`)}return async(r,n)=>{r.state["logger-startDate"]=new Date;let o=await ri(r.request);try{await n(r);let a={message:"START",requestIp:I.get(r,"request.headers.x-real-ip"),requestId:I.get(r,"request.requestId"),request:{headers:I.get(r,"request.headers"),method:I.get(r,"request.method"),url:I.get(r,"request.href"),protocol:I.get(r,"request.protocol"),body:o},response:{status:r.status,headers:I.get(r,"response.headers")},handlers:I.get(r,"state.handlers",[]).join(","),route:I.get(r,"route.name"),timestamp:new Date().toISOString(),ttfb:new Date-r.state["logger-startDate"],redirectUrl:r.userRedirect,severity:30,proxyVersion:Jt.version};r.event.waitUntil(t.log(a))}catch(a){let s={request:{headers:I.get(r,"request.headers"),method:I.get(r,"request.method"),handlers:I.get(r,"state.handlers",[]).join(","),url:I.get(r,"request.href"),body:o},message:"ERROR",stack:a.stack,error:a.message,severity:50,proxyVersion:Jt.version};r.event.waitUntil(t.log(s))}}}var xe=v(ln()),qn=v(M()),Fn=v(ze()),Ln=v(Nn());async function Lt({refresh_token:e,authDomain:t,clientId:r,clientSecret:n}){let o=`${t}/oauth/token`,a=await fetch(o,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:r,client_secret:n,refresh_token:e})});if(!a.ok)throw new Error("Authentication failed");let s=await a.json();return{...s,expires:Date.now()+s.expires_in*1e3,refresh_token:e}}var Dn="PBKDF2",Gt="AES-GCM",Oi="SHA-256",xi="raw";function Ri(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 Mn(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 Ui(e){return new TextEncoder().encode(e).buffer}function Ii(e){return new TextDecoder().decode(e)}async function Wi(e){let t=new TextEncoder;return crypto.subtle.importKey(xi,t.encode(e),{name:Dn},!1,["deriveKey"])}async function Ji(e,t){let r=await Wi(e),o=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:Dn,salt:o,iterations:1e3,hash:{name:Oi}},r,{name:Gt,length:256},!0,["encrypt","decrypt"])}async function ki(){let e=crypto.getRandomValues(new Uint8Array(8));return Mn(e)}async function Ni(e,t){let r=Ri(t),n=r.slice(0,16),o=r.slice(16),a=await crypto.subtle.decrypt({name:Gt,iv:n},e,o);return Ii(a)}async function Di(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),n=await crypto.subtle.encrypt({name:Gt,iv:r},e,Ui(t)),o=new Uint8Array(n.byteLength+r.byteLength);return o.set(r,0),o.set(new Uint8Array(n),r.byteLength),Mn(o)}var de={decrypt:Ni,deriveAesGcmKey:Ji,encrypt:Di,getSalt:ki};var fe={get:qn.default,set:Fn.default};function $n({cookieHeader:e="",cookieName:t}){return xe.default.parse(e)[t]}function Mi(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function $i(e=""){return e.split(",").indexOf("text/html")!==-1}function Bt({cookieName:e="proxy",cookieHttpOnly:t=!0,allowPublicAccess:r=!1,kvAccountId:n,kvNamespace:o,kvAuthEmail:a,kvAuthKey:s,kvTtl:i=2592e3,oauth2AuthDomain:c,oauth2ClientId:d,oauth2ClientSecret:h,oauth2Audience:u,oauth2Scopes:f=[],oauth2CallbackPath:l="/callback",oauth2CallbackType:y="cookie",oauth2LogoutPath:w="/logout",oauth2LoginPath:m="/login",oauth2ServerTokenPath:g="/oauth/token",oauth2ServerAuthorizePath:T="",oauth2ServerLogoutPath:N}){let U=new oe({accountId:n,namespace:o,authEmail:a,authKey:s,ttl:i}),ee=c,Se=l,it=y,ct=g,ke=T,dt=N,V=d,Ee=h,q=u,Ne=w,C=m,Ce=f.join("%20");async function De(p,H){let P=`${ee}${ct}`,K=await fetch(P,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Mi({code:p,grant_type:"authorization_code",client_id:V,client_secret:Ee,redirect_uri:H})});if(!K.ok)throw new Error("Authentication failed");let F=await K.json();return{...F,expires:Date.now()+F.expires_in*1e3}}async function go(p){if($n({cookieHeader:p.request.headers.cookie,cookieName:e})){let K=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${K}`,path:"/",maxAge:0}))}let P=lr(p);if(N){let K=encodeURIComponent(`${p.request.protocol}://${p.request.host}${P}`);p.set("Location",`${ee}${dt}?client_id=${V}&returnTo=${K}`)}else p.set("Location",P);p.status=302}async function wo(p){let H=p.request.href.split("?")[0],P=await De(p.request.query.code,H),K=Ln.default.generate(),F=await de.getSalt(),L=`${K}.${F}`,ut=await de.deriveAesGcmKey(K,F),te=await de.encrypt(ut,JSON.stringify(P));await U.put(K,te);let pt=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.status=302,it==="query"?p.set("Location",`${p.request.query.state}?auth=${L}`):(p.set("Set-Cookie",xe.default.serialize(e,L,{httpOnly:t,domain:`.${pt}`,path:"/",maxAge:60*60*24*365})),p.set("Location",p.request.query.state))}async function Ao(p,H){let[P,K]=H.split("."),F=await U.get(P);if(F){let L=await de.deriveAesGcmKey(P,K),ut=await de.decrypt(L,F),te=JSON.parse(ut);if(te.expires<Date.now()){te=await Lt({refresh_token:te.refresh_token,clientId:V,authDomain:ee,clientSecret:Ee});let pt=await de.encrypt(L,JSON.stringify(te));await U.put(P,pt)}p.state.accessToken=te.access_token,p.state.accessToken&&(p.request.headers.authorization=`bearer ${p.state.accessToken}`)}else{let L=p.request.hostname.match(/[^.]+\.[^.]+$/i)[0];p.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${L}`,maxAge:0}))}}function lr(p){let H=fe.get(p,"request.query.redirect-to");if(H)return H;let P=fe.get(p,"request.headers.referer");return P||"/"}async function So(p){if(p.request.method==="OPTIONS")p.status=200;else{let H=lr(p),P=encodeURIComponent(H||"/"),K=encodeURIComponent(`${p.request.protocol}://${p.request.host}${Se}`);p.status=302,p.set("location",`${ee}${ke}/authorize?state=${P}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${K}`)}}async function Eo(p,H){if(p.request.method==="OPTIONS")await H(p);else if(fe.get(p,"request.headers.authorization","").toLowerCase().startsWith("bearer "))fe.set(p,"state.access_token",p.request.headers.authorization.slice(7)),await H(p);else{let P=fe.get(p,"request.query.auth")||$n({cookieHeader:p.request.headers.cookie,cookieName:e});if(P&&await Ao(p,P),fe.get(p,"state.accessToken")||r)await H(p);else if($i(p.request.headers.accept)){let F=encodeURIComponent(p.request.href),L=encodeURIComponent(`${p.request.protocol}://${p.request.host}${Se}`);p.status=302,p.set("location",`${ee}${ke}/authorize?state=${F}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${L}`)}else p.status=403,p.body="Forbidden"}}return async(p,H)=>{switch(p.request.path){case Se:await wo(p);break;case Ne:await go(p);break;case C:await So(p);break;default:await Eo(p,H)}}}var Gn=v(M());var qi={get:Gn.default};function Fi(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Vt(e){let{localOriginOverride:t,backend:r}=e;return async n=>{let o=process.env.LOCAL?`${t||n.request.origin}${n.request.path}`:`${r}${n.request.path}`,a={headers:Fi(n.request.headers),method:n.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(n.request.method)!==-1&&qi.get(n,"event.request.body")){let c=n.event.request.clone();a.body=c.body}let s=await fetch(o,a);n.body=s.body,n.status=s.status;let i=S.instanceToJson(s.headers);Object.keys(i).forEach(c=>{n.set(c,i[c])})}}function zt({body:e="",headers:t={},status:r=200}){return async n=>{e instanceof Object?(n.body=JSON.stringify(e),n.set("Content-Type","application/json")):n.body=S.resolveParams(e,n.params),n.status=r,Object.keys(t).forEach(o=>{n.set(o,S.resolveParams(t[o],n.params))})}}var Bn=v(M()),Vn=v(ze()),Xt={get:Bn.default,set:Vn.default};function jt({type:e="IP",scope:t="default",limit:r=1e3}){let n={};function o(s,i){let c=i["x-real-ip"];return e==="IP"?`minute.${s}.${t}.${c}`:`minute.${s}.${t}.account`}function a(s){let i=Xt.get(n,"minutes",{});Object.keys(i).forEach(c=>{c!==s&&delete n.minutes.minute})}return async(s,i)=>{let c=Math.trunc(Date.now()/6e4),d=Math.trunc(c*60+60-Date.now()/1e3),h=o(c,s.request.headers),u=Xt.get(n,h,0);if(["HEAD","OPTIONS"].indexOf(s.request.method)===-1&&(u+=1),Xt.set(n,h,u),r<u){s.status=429;return}a(c),await i(s)}}var zn=v(Fe());function Li(e,t={}){if(e&&t.forcePathStyle){let r=new URL(e);return`${r.protocol}//${r.host}/${t.bucket}`}if(e){let r=new URL(e);return`${r.protocol}//${t.bucket}.${r.host}`}return t.forcePathStyle&&t.region?`https://s3.${t.region}.amazonaws.com/${t.bucket}`:t.forcePathStyle?`https://s3.amazonaws.com/${t.bucket}`:t.region?`https://${t.bucket}.s3.${t.region}.amazonaws.com`:`https://${t.bucket}.s3.amazonaws.com`}function Yt({accessKeyId:e,secretAccessKey:t,bucket:r,region:n,endpoint:o,forcePathStyle:a,enableBucketOperations:s=!1}){let i=new zn.AwsClient({accessKeyId:e,region:n,secretAccessKey:t}),c=Li(o,{region:n,bucket:r,forcePathStyle:a});return async d=>{if(d.params.file===void 0&&!s){d.status=404,d.body=O.http.statusMessages[404],d.set("Content-Type","text/plain");return}let h=d.params.file?S.resolveParams(`${c}/{file}`,d.params):c,u={};d.request.headers.range&&(u.range=d.request.headers.range);let f=await i.fetch(h,{method:d.method||d.request.method,headers:u});d.status=f.status,d.body=f.body;let l=S.instanceToJson(f.headers);Object.keys(l).forEach(y=>{d.set(y,l[y])})}}var Zt;function Xn(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Gi(e){return Zt||(Zt=await crypto.subtle.importKey("raw",Xn(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),Zt}async function Bi(e,t){let r=await Gi(t),n=await crypto.subtle.sign({name:"HMAC"},r,Xn(e));return btoa(String.fromCharCode.apply(null,new Uint8Array(n))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Qt({secret:e}){return async(t,r)=>{let n=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Bi(n,e)!==t.query.sign){t.status=403;return}await r(t)}}function er({host:e}){if(!e)throw new Error("Need to specify a host for the split middleware.");return async(t,r)=>{let n=t.clone();n.cloned=!0,n.request={...n.request,href:n.request.href.replace(n.request.href,e),host:e},t.event.waitUntil(r(n)),await r(t)}}async function Vi(e,t,r){let n=e.getReader(),o=t.getWriter(),a=new TextDecoder,s=new TextEncoder;for(;;){let{done:i,value:c}=await n.read();if(i)break;let d=a.decode(c),h=jn(d,r),u=s.encode(h);await o.write(u)}await o.close()}function zi(e,t){return e.replace(/{{\$(\d)}}/g,(r,n)=>t[parseInt(n,10)])}function jn(e,t){return t.reduce((r,n)=>r.replace(n.regex,(...o)=>zi(n.replace,o)),e)}function tr({transforms:e=[],statusCodes:t=[200]}){let r=e.map(n=>({regex:new RegExp(n.regex,"g"),replace:n.replace}));return async(n,o)=>{await o(n);let{body:a}=n;if(t.indexOf(n.status)!==-1)if(typeof a=="string")n.body=jn(a,r);else{let{readable:s,writable:i}=new TransformStream;Vi(a,i,r),n.body=s}}}async function Xi({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 ji=e=>(e=e.split("?")[0],e.replace(/\W/g,"").slice(0,100));function rr({projectID:e,API_KEY:t,siteKey:r}){function n(o){return{token:o["g-recaptcha-token"]}}return async(o,a)=>{let{token:s}=n(o.request.headers),i=ji(o.request.path);if((await Xi({projectID:e,API_KEY:t,token:s,siteKey:r,expectedAction:i})||0)<.5){o.status=409;return}await a(o)}}async function Yi({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,d=typeof s.score=="number"?s.score:0;return{ok:i&&c,score:d,action:s.action,errorCodes:s["error-codes"]}}var Zi=e=>(e=e.split("?")[0],e.replace(/\W/g,"").slice(0,100));function nr({secret:e,headerName:t="x-recaptcha-token",minScore:r=.5}){function n(o){let a=s=>o[s]??o[s.toLowerCase()];return a(t)||a("g-recaptcha-token")||""}return async(o,a)=>{let s=n(o.request.headers),i=Zi(o.request.path||o.request.url||"/"),c=o.request.headers?.["cf-connecting-ip"]||o.request.headers?.["x-forwarded-for"]||void 0,d=await Yi({secret:e,token:s,expectedAction:i,remoteip:c});if(!d.ok||d.score<r){console.warn("[reCAPTCHA] failed:"+JSON.stringify({action:d.action,expectedAction:i,score:d.score,errors:d.errorCodes})),o.status=409,o.body=JSON.stringify({error:"reCAPTCHA verification failed"});return}await a(o)}}var Qi=e=>!new RegExp("(\b)(onS+)(s*)=|javascript|<(|/|[^/>][^>]+|/[^>][^>]+)>").test(e),ec=(e,t,r)=>!(!Qi(t)||!r[e](t)),tc=e=>!(e===null||typeof e!="object"||Array.isArray(e)&&(!e[0]||typeof e[0]!="object")),or=(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]=""),tc(e[n])){if(!or(e[n],t))return console.error("error validating key+validateObject:",n),!1}else if(!ec(n,e[n],t))return console.error("error validating key+validateKeyValue:",n),!1}return!0},rc=e=>!(e==null||typeof e!="object"),nc=(e,t)=>{let r=e.query;return rc(r)?or(r,t):!1};async function oc(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(!nc(r,e))return r.status=422,!1;let o=await oc(r.request);if(!or(o,e))return r.status=422,!1;await n(r)}}var fo=v(M());var E=crypto,D=e=>e instanceof CryptoKey;var x=new TextEncoder,W=new TextDecoder,_u=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 Yn=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=>Yn(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");var le=class extends Error{static get code(){return"ERR_JOSE_GENERIC"}constructor(t){super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}};var A=class extends le{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}};var k=class extends le{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}static get code(){return"ERR_JWS_INVALID"}},j=class extends le{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}static get code(){return"ERR_JWT_INVALID"}};var et=E.getRandomValues.bind(E);function B(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function tt(e,t){return e.name===t}function sr(e){return parseInt(e.name.slice(4),10)}function ic(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function cc(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 Qn(e,t,...r){switch(t){case"HS256":case"HS384":case"HS512":{if(!tt(e.algorithm,"HMAC"))throw B("HMAC");let n=parseInt(t.slice(2),10);if(sr(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!tt(e.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let n=parseInt(t.slice(2),10);if(sr(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!tt(e.algorithm,"RSA-PSS"))throw B("RSA-PSS");let n=parseInt(t.slice(2),10);if(sr(e.algorithm.hash)!==n)throw B(`SHA-${n}`,"algorithm.hash");break}case"EdDSA":{if(e.algorithm.name!=="Ed25519"&&e.algorithm.name!=="Ed448")throw B("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!tt(e.algorithm,"ECDSA"))throw B("ECDSA");let n=ic(t);if(e.algorithm.namedCurve!==n)throw B(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}cc(e,r)}function eo(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)=>eo("Key must be ",e,...t);function ir(e,t,...r){return eo(`Key for the ${e} algorithm must be `,t,...r)}var cr=e=>D(e),b=["CryptoKey"];var fc=(...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=fc;function lc(e){return typeof e=="object"&&e!==null}function R(e){if(!lc(e)||Object.prototype.toString.call(e)!=="[object Object]")return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var rt=(e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){let{modulusLength:r}=t.algorithm;if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};var Z=(e,t,r=0)=>{r===0&&(t.unshift(t.length),t.unshift(6));let n=e.indexOf(t[0],r);if(n===-1)return!1;let o=e.subarray(n,n+t.length);return o.length!==t.length?!1:o.every((a,s)=>a===t[s])||Z(e,t,n+1)},ro=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")}},wc=async(e,t,r,n,o)=>{let a,s,i=new Uint8Array(atob(r.replace(e,"")).split("").map(d=>d.charCodeAt(0))),c=t==="spki";switch(n){case"PS256":case"PS384":case"PS512":a={name:"RSA-PSS",hash:`SHA-${n.slice(-3)}`},s=c?["verify"]:["sign"];break;case"RS256":case"RS384":case"RS512":a={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${n.slice(-3)}`},s=c?["verify"]:["sign"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":a={name:"RSA-OAEP",hash:`SHA-${parseInt(n.slice(-3),10)||1}`},s=c?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":a={name:"ECDSA",namedCurve:"P-256"},s=c?["verify"]:["sign"];break;case"ES384":a={name:"ECDSA",namedCurve:"P-384"},s=c?["verify"]:["sign"];break;case"ES512":a={name:"ECDSA",namedCurve:"P-521"},s=c?["verify"]:["sign"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{let d=ro(i);a=d.startsWith("P-")?{name:"ECDH",namedCurve:d}:{name:d},s=c?[]:["deriveBits"];break}case"EdDSA":a={name:ro(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)},no=(e,t,r)=>wc(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r);async function dr(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return no(e,t,r)}var Ac=(e,t)=>{if(!(t instanceof Uint8Array)){if(!cr(t))throw new TypeError(ir(e,t,...b,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${b.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},Sc=(e,t,r)=>{if(!cr(t))throw new TypeError(ir(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"`)},Ec=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?Ac(e,t):Sc(e,t,r)},Ie=Ec;function Tc(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=Tc;var Uc=Symbol();function nt(e,t){let r=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:r,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:r,name:"RSA-PSS",saltLength:e.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:r,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:r,name:"ECDSA",namedCurve:t.namedCurve};case"EdDSA":return{name:t.name};default:throw new A(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}function ot(e,t,r){if(D(t))return Qn(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 Wc=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,at=e=>{let t=Wc.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 Dc=async(e,t,r)=>{let n=await ot(e,t,"sign");rt(e,n);let o=await E.subtle.sign(nt(e,n.algorithm),n,r);return new Uint8Array(o)},uo=Dc;var ge=class{constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=t}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}async sign(t,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new k("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!me(this._protectedHeader,this._unprotectedHeader))throw new k("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader},o=ye(k,new Map([["b64",!0]]),r?.crit,this._protectedHeader,n),a=!0;if(o.has("b64")&&(a=this._protectedHeader.b64,typeof a!="boolean"))throw new k('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=n;if(typeof s!="string"||!s)throw new k('JWS "alg" (Algorithm) Header Parameter missing or invalid');Ie(s,t,"sign");let i=this._payload;a&&(i=x.encode(J(i)));let c;this._protectedHeader?c=x.encode(J(JSON.stringify(this._protectedHeader))):c=x.encode("");let d=X(c,x.encode("."),i),h=await uo(s,t,d),u={signature:J(h),payload:""};return a&&(u.payload=W.decode(i)),this._unprotectedHeader&&(u.header=this._unprotectedHeader),this._protectedHeader&&(u.protected=W.decode(c)),u}};var We=class{constructor(t){this._flattened=new ge(t)}setProtectedHeader(t){return this._flattened.setProtectedHeader(t),this}async sign(t,r){let n=await this._flattened.sign(t,r);if(n.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${n.protected}.${n.payload}.${n.signature}`}};function we(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}var Ae=class{constructor(t={}){if(!R(t))throw new TypeError("JWT Claims Set MUST be an object");this._payload=t}setIssuer(t){return this._payload={...this._payload,iss:t},this}setSubject(t){return this._payload={...this._payload,sub:t},this}setAudience(t){return this._payload={...this._payload,aud:t},this}setJti(t){return this._payload={...this._payload,jti:t},this}setNotBefore(t){return typeof t=="number"?this._payload={...this._payload,nbf:we("setNotBefore",t)}:t instanceof Date?this._payload={...this._payload,nbf:we("setNotBefore",Q(t))}:this._payload={...this._payload,nbf:Q(new Date)+at(t)},this}setExpirationTime(t){return typeof t=="number"?this._payload={...this._payload,exp:we("setExpirationTime",t)}:t instanceof Date?this._payload={...this._payload,exp:we("setExpirationTime",Q(t))}:this._payload={...this._payload,exp:Q(new Date)+at(t)},this}setIssuedAt(t){return typeof t>"u"?this._payload={...this._payload,iat:Q(new Date)}:t instanceof Date?this._payload={...this._payload,iat:we("setIssuedAt",Q(t))}:this._payload={...this._payload,iat:we("setIssuedAt",t)},this}};var Je=class extends Ae{setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){let n=new We(x.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new j("JWTs MUST NOT use unencoded payload");return n.sign(t,r)}};var Fc;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Fc="jose/v5.1.0");var po=function e(t){function r(o,a,s){var i,c={};if(Array.isArray(o))return o.concat(a);for(i in o)c[s?i.toLowerCase():i]=o[i];for(i in a){var d=s?i.toLowerCase():i,h=a[i];c[d]=d in c&&typeof h=="object"?r(c[d],h,d=="headers"):h}return c}function n(o,a,s,i,c){var d=typeof o!="string"?(a=o).url:o,h={config:a},u=r(t,a),f={};i=i||u.data,(u.transformRequest||[]).map(function(l){i=l(i,u.headers)||i}),u.auth&&(f.authorization=u.auth),i&&typeof i=="object"&&typeof i.append!="function"&&typeof i.text!="function"&&(i=JSON.stringify(i),f["content-type"]="application/json");try{f[u.xsrfHeaderName]=decodeURIComponent(document.cookie.match(RegExp("(^|; )"+u.xsrfCookieName+"=([^;]*)"))[2])}catch{}return u.baseURL&&(d=d.replace(/^(?!.*\/\/)\/?/,u.baseURL+"/")),u.params&&(d+=(~d.indexOf("?")?"&":"?")+(u.paramsSerializer?u.paramsSerializer(u.params):new URLSearchParams(u.params))),(u.fetch||fetch)(d,{method:(s||u.method||"get").toUpperCase(),body:i,headers:r(u.headers,f,!0),credentials:u.withCredentials?"include":c}).then(function(l){for(var y in l)typeof l[y]!="function"&&(h[y]=l[y]);return u.responseType=="stream"?(h.data=l.body,h):l[u.responseType||"text"]().then(function(w){h.data=w,h.data=JSON.parse(w)}).catch(Object).then(function(){return(u.validateStatus?u.validateStatus(l.status):l.ok)?h:Promise.reject(h)})})}return t=t||{},n.request=n,n.get=function(o,a){return n(o,a,"get")},n.delete=function(o,a){return n(o,a,"delete")},n.head=function(o,a){return n(o,a,"head")},n.options=function(o,a){return n(o,a,"options")},n.post=function(o,a,s){return n(o,s,"post",a)},n.put=function(o,a,s){return n(o,s,"put",a)},n.patch=function(o,a,s){return n(o,s,"patch",a)},n.all=Promise.all.bind(Promise),n.spread=function(o){return o.apply.bind(o,o)},n.CancelToken=typeof AbortController=="function"?AbortController:Object,n.defaults=t,n.create=e,n}();var Bc=e=>{if(!e)return!1;let t=JSON.parse(atob(e.split(".")[1])),r=Math.floor(Date.now()/1e3);return t.exp>r-600},st=async(e,t)=>{let r=await GCP_INVOKER_TOKEN.get(t);if(Bc(r))return r;let n=await dr(e.private_key,"RS256"),o=e.client_email,a={iss:o,sub:o,aud:"https://www.googleapis.com/oauth2/v4/token",target_audience:t,iat:Math.floor(Date.now()/1e3),exp:Math.floor(Date.now()/1e3)+3600},s=await new Je(a).setProtectedHeader({alg:"RS256",typ:"JWT"}).sign(n),i=await po.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 ho={get:fo.default};function pr({project_id:e,region:t,functionName:r,serviceAccount:n}){return async o=>{let a=ho.get(o,"request.query",{}),s=new URLSearchParams(a).toString(),i=`https://${t}-${e}.cloudfunctions.net/${r}`,c=`https://${t}-${e}.cloudfunctions.net/${r}${s?`?${s}`:""}`;console.log("urlWithParms:",c);let d=await st(n,i);o.request.headers["X-Serverless-Authorization"]=`Bearer ${d}`;let h={headers:o.request.headers,method:o.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(o.request.method)!==-1&&ho.get(o,"event.request.body")){let l=o.event.request.clone();h.body=l.body}let u=await fetch(c,h);o.body=u.body,o.status=u.status;let f=S.instanceToJson(u.headers);Object.keys(f).forEach(l=>{o.set(l,f[l])})}}var lo=v(M());var Vc={get:lo.default};function hr({domain:e,serviceAccount:t}){return async r=>{let n=`${e}${r.request.path}`,o=await st(t,e),a=new Headers(r.request.headers);a.set("X-Serverless-Authorization",`Bearer ${o}`),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[u,f]of Object.entries(i))f!==void 0&&a.set(u,f);let c={method:r.request.method,headers:a,redirect:"manual"};if(O.methodsMethodsWithBody.includes(r.request.method)&&Vc.get(r,"event.request.body")){let u=r.event.request.clone();c.body=u.body}let d=await fetch(n,c),h=S.instanceToJson(d.headers);r.status=d.status,r.body=await d.text(),Object.entries(h).forEach(([u,f])=>{d.headers.has(u)||r.set(u,f)})}}function fr({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 mo={basicAuth:St,cache:Ct,cors:_t,geoDecorator:vt,jwt:Pt,kvStorage:Ht,kvStorageBinding:Kt,lambda:Ot,loadbalancer:Wt,logger:kt,oauth2:Bt,origin:Vt,rateLimit:jt,response:zt,s3:Yt,signature:Qt,split:er,transform:tr,recaptcha:rr,recaptchaV3:nr,userInputValidation:ar,cloudfunction:pr,gcpCloudrun:hr,headers:fr};module.exports=class{constructor(t=[],r={}){this.router=new yo.default,t.forEach(n=>{let o=r[n.handlerName]||mo[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=_((vd,cn)=>{var ts="Expected a function",Qr="__lodash_hash_undefined__",en=1/0,rs=9007199254740991,ns="[object Function]",os="[object GeneratorFunction]",as="[object Symbol]",ss=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,is=/^\w*$/,cs=/^\./,ds=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,us=/[\\^$.*+?()[\]{}|]/g,ps=/\\(\\)?/g,hs=/^\[object .+?Constructor\]$/,fs=/^(?:0|[1-9]\d*)$/,ls=typeof global=="object"&&global&&global.Object===Object&&global,ms=typeof self=="object"&&self&&self.Object===Object&&self,Ut=ls||ms||Function("return this")();function ys(e,t){return e?.[t]}function gs(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ws=Array.prototype,As=Function.prototype,tn=Object.prototype,Rt=Ut["__core-js_shared__"],Xr=function(){var e=/[^.]+$/.exec(Rt&&Rt.keys&&Rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),rn=As.toString,Be=tn.hasOwnProperty,nn=tn.toString,Ss=RegExp("^"+rn.call(Be).replace(us,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),jr=Ut.Symbol,Es=ws.splice,bs=on(Ut,"Map"),Pe=on(Object,"create"),Yr=jr?jr.prototype:void 0,Zr=Yr?Yr.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 Cs(){this.__data__=Pe?Pe(null):{}}function _s(e){return this.has(e)&&delete this.__data__[e]}function vs(e){var t=this.__data__;if(Pe){var r=t[e];return r===Qr?void 0:r}return Be.call(t,e)?t[e]:void 0}function Ps(e){var t=this.__data__;return Pe?t[e]!==void 0:Be.call(t,e)}function Hs(e,t){var r=this.__data__;return r[e]=Pe&&t===void 0?Qr:t,this}ae.prototype.clear=Cs;ae.prototype.delete=_s;ae.prototype.get=vs;ae.prototype.has=Ps;ae.prototype.set=Hs;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 Ts(){this.__data__=[]}function Ks(e){var t=this.__data__,r=Ve(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Es.call(t,r,1),!0}function Os(e){var t=this.__data__,r=Ve(t,e);return r<0?void 0:t[r][1]}function xs(e){return Ve(this.__data__,e)>-1}function Rs(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=Ts;he.prototype.delete=Ks;he.prototype.get=Os;he.prototype.has=xs;he.prototype.set=Rs;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 Us(){this.__data__={hash:new ae,map:new(bs||he),string:new ae}}function Is(e){return ze(this,e).delete(e)}function Ws(e){return ze(this,e).get(e)}function Js(e){return ze(this,e).has(e)}function ks(e,t){return ze(this,e).set(e,t),this}se.prototype.clear=Us;se.prototype.delete=Is;se.prototype.get=Ws;se.prototype.has=Js;se.prototype.set=ks;function Ns(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 Ds(e){if(!Ge(e)||Bs(e))return!1;var t=js(e)||gs(e)?Ss:hs;return t.test(Xs(e))}function Ms(e,t,r,n){if(!Ge(e))return e;t=Ls(t,e)?[t]:qs(t);for(var o=-1,s=t.length,a=s-1,i=e;i!=null&&++o<s;){var c=zs(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:Fs(t[o+1])?[]:{})}Ns(i,c,u),i=i[c]}return e}function $s(e){if(typeof e=="string")return e;if(Wt(e))return Zr?Zr.call(e):"";var t=e+"";return t=="0"&&1/e==-en?"-0":t}function qs(e){return sn(e)?e:Vs(e)}function ze(e,t){var r=e.__data__;return Gs(t)?r[typeof t=="string"?"string":"hash"]:r.map}function on(e,t){var r=ys(e,t);return Ds(r)?r:void 0}function Fs(e,t){return t=t??rs,!!t&&(typeof e=="number"||fs.test(e))&&e>-1&&e%1==0&&e<t}function Ls(e,t){if(sn(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Wt(e)?!0:is.test(e)||!ss.test(e)||t!=null&&e in Object(t)}function Gs(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Bs(e){return!!Xr&&Xr in e}var Vs=It(function(e){e=Zs(e);var t=[];return cs.test(e)&&t.push(""),e.replace(ds,function(r,n,o,s){t.push(o?s.replace(ps,"$1"):n||r)}),t});function zs(e){if(typeof e=="string"||Wt(e))return e;var t=e+"";return t=="0"&&1/e==-en?"-0":t}function Xs(e){if(e!=null){try{return rn.call(e)}catch{}try{return e+""}catch{}}return""}function It(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(ts);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 an(e,t){return e===t||e!==e&&t!==t}var sn=Array.isArray;function js(e){var t=Ge(e)?nn.call(e):"";return t==ns||t==os}function Ge(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ys(e){return!!e&&typeof e=="object"}function Wt(e){return typeof e=="symbol"||Ys(e)&&nn.call(e)==as}function Zs(e){return e==null?"":$s(e)}function Qs(e,t,r){return e==null?e:Ms(e,t,r)}cn.exports=Qs});var mn=_(Dt=>{"use strict";Dt.parse=ii;Dt.serialize=ci;var oi=decodeURIComponent,ai=encodeURIComponent,si=/; */,Ye=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function ii(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},n=t||{},o=e.split(si),s=n.decode||oi,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]=di(f,s))}}return r}function ci(e,t,r){var n=r||{},o=n.encode||ai;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 di(e,t){try{return t(e)}catch{return e}}});var gn=_((Fd,yn)=>{"use strict";var Ze=1;function ui(){return Ze=(Ze*9301+49297)%233280,Ze/233280}function pi(e){Ze=e}yn.exports={nextValue:ui,seed:pi}});var Oe=_((Ld,En)=>{"use strict";var Mt=gn(),ce="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",z,wn,Ke;function $t(){Ke=!1}function An(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 hi(e){return An(e),z}function fi(e){Mt.seed(e),wn!==e&&($t(),wn=e)}function li(){z||An(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 Sn(){return Ke||(Ke=li(),Ke)}function mi(e){var t=Sn();return t[e]}function yi(){return z||ce}En.exports={get:yi,characters:hi,seed:fi,lookup:mi,shuffled:Sn}});var Cn=_((Gd,bn)=>{"use strict";var qt=typeof window=="object"&&(window.crypto||window.msCrypto),Ft;!qt||!qt.getRandomValues?Ft=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:Ft=function(e){return qt.getRandomValues(new Uint8Array(e))};bn.exports=Ft});var vn=_((Bd,_n)=>{_n.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 Hn=_((Vd,Pn)=>{"use strict";var gi=Oe(),wi=Cn(),Ai=vn();function Si(e){for(var t=0,r,n="";!r;)n=n+Ai(wi,gi.get(),1),r=e<Math.pow(16,t+1),t++;return n}Pn.exports=Si});var On=_((Xd,Kn)=>{"use strict";var Qe=Hn(),zd=Oe(),Ei=1567752802062,bi=7,et,Tn;function Ci(e){var t="",r=Math.floor((Date.now()-Ei)*.001);return r===Tn?et++:(et=0,Tn=r),t=t+Qe(bi),t=t+Qe(e),et>0&&(t=t+Qe(et)),t=t+Qe(r),t}Kn.exports=Ci});var Rn=_((jd,xn)=>{"use strict";var _i=Oe();function vi(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+_i.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}xn.exports=vi});var In=_((Yd,Un)=>{"use strict";Un.exports=0});var kn=_((Zd,G)=>{"use strict";var Lt=Oe(),Pi=On(),Hi=Rn(),Wn=In()||0;function Ti(e){return Lt.seed(e),G.exports}function Ki(e){return Wn=e,G.exports}function Oi(e){return e!==void 0&&Lt.characters(e),Lt.shuffled()}function Jn(){return Pi(Wn)}G.exports=Jn;G.exports.generate=Jn;G.exports.seed=Ti;G.exports.worker=Ki;G.exports.characters=Oi;G.exports.isValid=Hi});var Dn=_((Qd,Nn)=>{"use strict";Nn.exports=kn()});var go=v(Hr());var $r=v(M()),Wa={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=Wa.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 qr=caches.default;async function Ja(e){return await qr.match(e)}async function ka(e,t){return qr.put(e.href,t)}var bt={get:Ja,set:ka};async function Na(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=Na;function Da(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:Da,instanceToJson:Ct};var Ma=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function $a(e){return["POST","PATCH","PUT","DELETE"].indexOf(e.method)===-1?null:e.text()}async function qa(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 $a(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=Ma}){return async(n,o)=>{let s=await qa(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(Fa(c,d,e),La(c,r),za(c,o),f==="OPTIONS"&&(Ga(c,t),Ba(c,p,n),Va(c,s),i)){c.status=a,c.set("Content-Length","0"),c.body="";return}await u(c)}}function Fa(e,t,r){Array.isArray(r)&&(r[0]==="*"?e.set("Access-Control-Allow-Origin","*"):r.indexOf(t)!==-1&&(e.set("Access-Control-Allow-Origin",t),e.set("Vary","Origin")))}function La(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function Ga(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function Ba(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 Va(e,t){t&&e.set("Access-Control-Max-Age",t)}function za(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var Xa={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"]=Xa[r],await t(e)}}function Lr(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 ja(e){let t=e.split("."),r=JSON.parse(Lr(t[0])),n=JSON.parse(Lr(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=ja(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 Gr=v(M()),Ya={get:Gr.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=Ya.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 Za(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:Za(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 Br=v(M());var Kt={get:Br.default};function Qa(e,t,r){if(e==="/"&&r)return r;let n=e.split("/").pop();return n.split(".").pop()!==n?e:`${e}.${t}`}function es(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:Qa(c,n),f=await a(t+u);if(!f&&s&&(f=await a(t+s)),f)if(es(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 zr=v(Le());function xt({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:n}){let o=new zr.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 un=v(M()),pn=v(Xe());var dn={get:un.default,set:pn.default};function ei(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function ti(e){return e[Math.floor(Math.random()*e.length)]}function Jt({sources:e=[]}){return async t=>{let r=ti(e),n={method:t.request.method,headers:ei(t.request.headers),redirect:"manual",cf:t.request.cf};if(O.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&dn.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);dn.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 ln=v(M());var kt={name:"@ahmadissa/cloudworker-proxy",version:"1.1.76",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 hn(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((n,o)=>e[o]==null?n:{...n,...hn(e[o],t,r+o+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var je=hn;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 fn=v(Le());var Te=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new ie({sink:this.sendMessage.bind(this),...t}),this.awsClient=new fn.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:ln.default};async function ni(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 ni(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(mn()),Fn=v(M()),Ln=v(Xe()),Gn=v(Dn());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 Mn="PBKDF2",Bt="AES-GCM",xi="SHA-256",Ri="raw";function Ui(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 $n(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 Ii(e){return new TextEncoder().encode(e).buffer}function Wi(e){return new TextDecoder().decode(e)}async function Ji(e){let t=new TextEncoder;return crypto.subtle.importKey(Ri,t.encode(e),{name:Mn},!1,["deriveKey"])}async function ki(e,t){let r=await Ji(e),o=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:Mn,salt:o,iterations:1e3,hash:{name:xi}},r,{name:Bt,length:256},!0,["encrypt","decrypt"])}async function Ni(){let e=crypto.getRandomValues(new Uint8Array(8));return $n(e)}async function Di(e,t){let r=Ui(t),n=r.slice(0,16),o=r.slice(16),s=await crypto.subtle.decrypt({name:Bt,iv:n},e,o);return Wi(s)}async function Mi(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),n=await crypto.subtle.encrypt({name:Bt,iv:r},e,Ii(t)),o=new Uint8Array(n.byteLength+r.byteLength);return o.set(r,0),o.set(new Uint8Array(n),r.byteLength),$n(o)}var de={decrypt:Di,deriveAesGcmKey:ki,encrypt:Mi,getSalt:Ni};var fe={get:Fn.default,set:Ln.default};function qn({cookieHeader:e="",cookieName:t}){return xe.default.parse(e)[t]}function $i(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function qi(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:$i({code:h,grant_type:"authorization_code",client_id:V,client_secret:Ee,redirect_uri:H})});if(!K.ok)throw new Error("Authentication failed");let F=await K.json();return{...F,expires:Date.now()+F.expires_in*1e3}}async function wo(h){if(qn({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 Ao(h){let H=h.request.href.split("?")[0],P=await Me(h.request.query.code,H),K=Gn.default.generate(),F=await de.getSalt(),L=`${K}.${F}`,pt=await de.deriveAesGcmKey(K,F),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=${L}`):(h.set("Set-Cookie",xe.default.serialize(e,L,{httpOnly:t,domain:`.${ht}`,path:"/",maxAge:60*60*24*365})),h.set("Location",h.request.query.state))}async function So(h,H){let[P,K]=H.split("."),F=await U.get(P);if(F){let L=await de.deriveAesGcmKey(P,K),pt=await de.decrypt(L,F),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(L,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 L=h.request.hostname.match(/[^.]+\.[^.]+$/i)[0];h.set("Set-Cookie",xe.default.serialize(e,"",{domain:`.${L}`,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 Eo(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 bo(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")||qn({cookieHeader:h.request.headers.cookie,cookieName:e});if(P&&await So(h,P),fe.get(h,"state.accessToken")||r)await H(h);else if(qi(h.request.headers.accept)){let F=encodeURIComponent(h.request.href),L=encodeURIComponent(`${h.request.protocol}://${h.request.host}${Se}`);h.status=302,h.set("location",`${ee}${Ne}/authorize?state=${F}&client_id=${V}&response_type=code&scope=${Ce}&audience=${q}&redirect_uri=${L}`)}else h.status=403,h.body="Forbidden"}}return async(h,H)=>{switch(h.request.path){case Se:await Ao(h);break;case De:await wo(h);break;case C:await Eo(h);break;default:await bo(h,H)}}}var Bn=v(M());var Fi={get:Bn.default};function Li(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:Li(n.request.headers),method:n.request.method,redirect:"manual"};if(O.methodsMethodsWithBody.indexOf(n.request.method)!==-1&&Fi.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 Vn=v(M()),zn=v(Xe()),jt={get:Vn.default,set:zn.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 Xn=v(Le());function Gi(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 Xn.AwsClient({accessKeyId:e,region:n,secretAccessKey:t}),c=Gi(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 jn(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Bi(e){return Qt||(Qt=await crypto.subtle.importKey("raw",jn(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),Qt}async function Vi(e,t){let r=await Bi(t),n=await crypto.subtle.sign({name:"HMAC"},r,jn(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 Vi(n,e)!==t.query.sign){t.status=403;return}await r(t)}}function tr({host:e}){if(!e)throw new Error("Need to specify a host for the split middleware.");return async(t,r)=>{let n=t.clone();n.cloned=!0,n.request={...n.request,href:n.request.href.replace(n.request.href,e),host:e},t.event.waitUntil(r(n)),await r(t)}}async function zi(e,t,r){let n=e.getReader(),o=t.getWriter(),s=new TextDecoder,a=new TextEncoder;for(;;){let{done:i,value:c}=await n.read();if(i)break;let u=s.decode(c),f=Yn(u,r),d=a.encode(f);await o.write(d)}await o.close()}function Xi(e,t){return e.replace(/{{\$(\d)}}/g,(r,n)=>t[parseInt(n,10)])}function Yn(e,t){return t.reduce((r,n)=>r.replace(n.regex,(...o)=>Xi(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=Yn(s,r);else{let{readable:a,writable:i}=new TransformStream;zi(s,i,r),n.body=a}}}async function ji({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 Yi=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=Yi(o.request.path);if((await ji({projectID:e,API_KEY:t,token:a,siteKey:r,expectedAction:i})||0)<.5){o.status=409;return}await s(o)}}async function Zi({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 Qi=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")||Qi(o.request?.path||o.request?.url||a.url||"/"),d=Re(i,"cf-connecting-ip")||Re(i,"x-forwarded-for")||void 0,p=await Zi({secret:e,token:c,expectedAction:f,remoteip:d});if(!((n?p.ok:!!(p.errorCodes??[]).length===0)&&p.score>=r)){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",...y});return}await s(o)}}var ec=e=>!new RegExp("(\b)(onS+)(s*)=|javascript|<(|/|[^/>][^>]+|/[^>][^>]+)>").test(e),tc=(e,t,r)=>!(!ec(t)||!r[e](t)),rc=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]=""),rc(e[n])){if(!ar(e[n],t))return console.error("error validating key+validateObject:",n),!1}else if(!tc(n,e[n],t))return console.error("error validating key+validateKeyValue:",n),!1}return!0},nc=e=>!(e==null||typeof e!="object"),oc=(e,t)=>{let r=e.query;return nc(r)?ar(r,t):!1};async function ac(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(!oc(r,e))return r.status=422,!1;let o=await ac(r.request);if(!ar(o,e))return r.status=422,!1;await n(r)}}var lo=v(M());var E=crypto,D=e=>e instanceof CryptoKey;var x=new TextEncoder,W=new TextDecoder,vu=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 Zn=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=>Zn(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 cc(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function dc(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 eo(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=cc(t);if(e.algorithm.namedCurve!==n)throw B(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}dc(e,r)}function to(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)=>to("Key must be ",e,...t);function cr(e,t,...r){return to(`Key for the ${e} algorithm must be `,t,...r)}var dr=e=>D(e),b=["CryptoKey"];var lc=(...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=lc;function mc(e){return typeof e=="object"&&e!==null}function R(e){if(!mc(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)},no=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")}},Ac=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=no(i);s=u.startsWith("P-")?{name:"ECDH",namedCurve:u}:{name:u},a=c?[]:["deriveBits"];break}case"EdDSA":s={name:no(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)},oo=(e,t,r)=>Ac(/(?:-----(?: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 oo(e,t,r)}var Sc=(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"`)}},Ec=(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"`)},bc=(e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?Sc(e,t):Ec(e,t,r)},We=bc;function Kc(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=Kc;var Ic=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 eo(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 Jc=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,st=e=>{let t=Jc.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 Mc=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)},po=Mc;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 po(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 Lc;(typeof navigator>"u"||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(Lc="jose/v5.1.0");var ho=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 Vc=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(Vc(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 ho.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 fo={get:lo.default};function hr({project_id:e,region:t,functionName:r,serviceAccount:n}){return async o=>{let s=fo.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&&fo.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 mo=v(M());var zc={get:mo.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)&&zc.get(r,"event.request.body")){let d=r.event.request.clone();c.body=d.body}let u=await fetch(n,c),f=S.instanceToJson(u.headers);r.status=u.status,r.body=await u.text(),Object.entries(f).forEach(([d,p])=>{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)}}var yo={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};module.exports=class{constructor(t=[],r={}){this.router=new go.default,t.forEach(n=>{let o=r[n.handlerName]||yo[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: