@ahmadissa/cloudworker-proxy 1.0.8 → 1.0.10
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 +4 -4
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";var ls=Object.create;var Et=Object.defineProperty;var ds=Object.getOwnPropertyDescriptor;var fs=Object.getOwnPropertyNames;var ps=Object.getPrototypeOf,ms=Object.prototype.hasOwnProperty;var S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var gs=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of fs(t))!ms.call(e,n)&&n!==r&&Et(e,n,{get:()=>t[n],enumerable:!(s=ds(t,n))||s.enumerable});return e};var E=(e,t,r)=>(r=e!=null?ls(ps(e)):{},gs(t||!e||!e.__esModule?Et(r,"default",{value:e,enumerable:!0}):r,e));var Re=S((Lo,Ot)=>{function ys({host:e=".*",path:t=".*",excludePath:r=null,method:s=[".*"],handler:n,protocol:a=".*",handlerName:o,headers:i={},data:c}){let h=[],f=[],d=e.replace(/(:([^.]+))/g,(T,P,_)=>(h.push(_),"([^.]+)")),l=t.replace(/(:([^/]+))/g,(T,P,_)=>_.slice(-1)==="*"?(f.push(_.slice(0,_.length-1)),"(.*)"):(f.push(_),"([^/]*)")),m=new RegExp(`^${d}$`,"i"),y=new RegExp(`^${l}$`,"i"),A=r?new RegExp(`^${r}$`,"i"):null,p=new RegExp(`^${s.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:h,pathVariables:f,host:m,path:y,excludePath:A,method:p,protocol:g,handler:n,handlerName:o,headers:i,data:c}}function Tt(e){return[...e].reduce((t,r)=>{let s={};return s[r[0]]=r[1],{...t,...s}},{})}async function As(e,t=1024*1024){let r=[],s=e.getReader(),n=new TextDecoder,a=0;for(;t&&a<t;){let{done:i,value:c}=await s.read();if(i)break;a+=c.byteLength,r.push(n.decode(c))}let o=r.join("");return t?o.substring(0,t):o}function ws(e){let t=new URL(e.url),r=Tt(t.searchParams),s=Tt(e.headers);s.host&&(t.hostname=s.host);let n,a;async function o(i){if(a>=i)return n.substring(0,i);let c=e.clone();return n=await As(c.body,i),n}return{body:e.body,headers:s,host:t.host,hostname:t.hostname,href:t.href,json:async i=>JSON.parse(o(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 o(i)):o(i)}}Ot.exports={parseRoute:ys,parseRequest:ws}});var kt=S((Go,_t)=>{function Ss(e,t){let r={},s=t.host.exec(e.host);t.hostVariables.forEach((a,o)=>{r[a]=s[o+1]});let n=t.path.exec(e.path);return t.pathVariables.forEach((a,o)=>{r[a]=n[o+1]}),r}function bs(e,t){let r=!0;return Object.keys(e.headers).forEach(s=>{t.headers[s]!==e.headers[s]&&(r=!1)}),r}function Cs(e,t){return e.protocol.test(t.protocol)}function vs(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&bs(e,t)&&Cs(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function Ne(e,t){let[r,...s]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!vs(r,e.request))return Ne(e,s);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=Ss(e.request,r);try{return r.handler(e,async n=>Ne(n,s))}catch(n){throw n.route=r.handler.name,n}}_t.exports={recurseRoutes:Ne}});var qt=S((Bo,Pt)=>{Pt.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var Nt=S((zo,Rt)=>{var Es=Re();Rt.exports=class Ut{constructor(t){this.request=Es.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 Ut(this.event);return t.cloned=!0,t}}});var Ht=S((Vo,$t)=>{var X=Re(),Ts=kt(),re=qt(),Os=Nt();$t.exports=class{constructor(){this.routes=[]}get(t,r){let s=X.parseRoute({method:[re.methods.GET,re.methods.HEAD],path:t,handler:r});this.routes.push(s)}post(t,r){let s=X.parseRoute({method:[re.methods.POST],path:t,handler:r});this.routes.push(s)}patch(t,r){let s=X.parseRoute({method:[re.methods.PATCH],path:t,handler:r});this.routes.push(s)}del(t,r){let s=X.parseRoute({method:[re.methods.DELETE],path:t,handler:r});this.routes.push(s)}use(t){let r=X.parseRoute({handler:t,middleware:!0});this.routes.push(r)}add({host:t,path:r,excludePath:s,method:n,handlerName:a,headers:o,protocol:i},c){let h=X.parseRoute({method:n,host:t,path:r,excludePath:s,handler:c,headers:o,handlerName:a,protocol:i});this.routes.push(h)}async resolve(t){let r=new Os(t);try{return await Ts.recurseRoutes(r,this.routes),new Response(r.body,{status:r.status,headers:r.response.headers})}catch(s){return new Response(s.message,{status:500})}}}});var $=S((Xo,Xt)=>{var _s="Expected a function",Kt="__lodash_hash_undefined__",Dt=1/0,ks="[object Function]",Ps="[object GeneratorFunction]",qs="[object Symbol]",Us=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rs=/^\w*$/,Ns=/^\./,$s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hs=/[\\^$.*+?()[\]{}|]/g,Fs=/\\(\\)?/g,Ms=/^\[object .+?Constructor\]$/,Is=typeof global=="object"&&global&&global.Object===Object&&global,js=typeof self=="object"&&self&&self.Object===Object&&self,He=Is||js||Function("return this")();function Ks(e,t){return e?.[t]}function Ds(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Ls=Array.prototype,Gs=Function.prototype,Lt=Object.prototype,$e=He["__core-js_shared__"],Ft=function(){var e=/[^.]+$/.exec($e&&$e.keys&&$e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Gt=Gs.toString,Fe=Lt.hasOwnProperty,Bt=Lt.toString,Bs=RegExp("^"+Gt.call(Fe).replace(Hs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Mt=He.Symbol,zs=Ls.splice,Ws=zt(He,"Map"),se=zt(Object,"create"),It=Mt?Mt.prototype:void 0,jt=It?It.toString:void 0;function K(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Vs(){this.__data__=se?se(null):{}}function Xs(e){return this.has(e)&&delete this.__data__[e]}function Js(e){var t=this.__data__;if(se){var r=t[e];return r===Kt?void 0:r}return Fe.call(t,e)?t[e]:void 0}function xs(e){var t=this.__data__;return se?t[e]!==void 0:Fe.call(t,e)}function Ys(e,t){var r=this.__data__;return r[e]=se&&t===void 0?Kt:t,this}K.prototype.clear=Vs;K.prototype.delete=Xs;K.prototype.get=Js;K.prototype.has=xs;K.prototype.set=Ys;function J(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Zs(){this.__data__=[]}function Qs(e){var t=this.__data__,r=fe(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():zs.call(t,r,1),!0}function en(e){var t=this.__data__,r=fe(t,e);return r<0?void 0:t[r][1]}function tn(e){return fe(this.__data__,e)>-1}function rn(e,t){var r=this.__data__,s=fe(r,e);return s<0?r.push([e,t]):r[s][1]=t,this}J.prototype.clear=Zs;J.prototype.delete=Qs;J.prototype.get=en;J.prototype.has=tn;J.prototype.set=rn;function D(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function sn(){this.__data__={hash:new K,map:new(Ws||J),string:new K}}function nn(e){return pe(this,e).delete(e)}function an(e){return pe(this,e).get(e)}function on(e){return pe(this,e).has(e)}function cn(e,t){return pe(this,e).set(e,t),this}D.prototype.clear=sn;D.prototype.delete=nn;D.prototype.get=an;D.prototype.has=on;D.prototype.set=cn;function fe(e,t){for(var r=e.length;r--;)if(wn(e[r][0],t))return r;return-1}function un(e,t){t=fn(t,e)?[t]:dn(t);for(var r=0,s=t.length;e!=null&&r<s;)e=e[yn(t[r++])];return r&&r==s?e:void 0}function hn(e){if(!Vt(e)||mn(e))return!1;var t=Sn(e)||Ds(e)?Bs:Ms;return t.test(An(e))}function ln(e){if(typeof e=="string")return e;if(Ie(e))return jt?jt.call(e):"";var t=e+"";return t=="0"&&1/e==-Dt?"-0":t}function dn(e){return Wt(e)?e:gn(e)}function pe(e,t){var r=e.__data__;return pn(t)?r[typeof t=="string"?"string":"hash"]:r.map}function zt(e,t){var r=Ks(e,t);return hn(r)?r:void 0}function fn(e,t){if(Wt(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ie(e)?!0:Rs.test(e)||!Us.test(e)||t!=null&&e in Object(t)}function pn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function mn(e){return!!Ft&&Ft in e}var gn=Me(function(e){e=Cn(e);var t=[];return Ns.test(e)&&t.push(""),e.replace($s,function(r,s,n,a){t.push(n?a.replace(Fs,"$1"):s||r)}),t});function yn(e){if(typeof e=="string"||Ie(e))return e;var t=e+"";return t=="0"&&1/e==-Dt?"-0":t}function An(e){if(e!=null){try{return Gt.call(e)}catch{}try{return e+""}catch{}}return""}function Me(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(_s);var r=function(){var s=arguments,n=t?t.apply(this,s):s[0],a=r.cache;if(a.has(n))return a.get(n);var o=e.apply(this,s);return r.cache=a.set(n,o),o};return r.cache=new(Me.Cache||D),r}Me.Cache=D;function wn(e,t){return e===t||e!==e&&t!==t}var Wt=Array.isArray;function Sn(e){var t=Vt(e)?Bt.call(e):"";return t==ks||t==Ps}function Vt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function bn(e){return!!e&&typeof e=="object"}function Ie(e){return typeof e=="symbol"||bn(e)&&Bt.call(e)==qs}function Cn(e){return e==null?"":ln(e)}function vn(e,t,r){var s=e==null?void 0:un(e,t);return s===void 0?r:s}Xt.exports=vn});var ge=S((me,er)=>{(function(e,t){typeof me=="object"&&typeof er<"u"?t(me):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(me,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"},s=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class n{constructor({accessKeyId:l,secretAccessKey:m,sessionToken:y,service:A,region:p,cache:g,retries:T,initRetryMs:P}){if(l==null)throw new TypeError("accessKeyId is a required option");if(m==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=l,this.secretAccessKey=m,this.sessionToken=y,this.service=A,this.region=p,this.cache=g||new Map,this.retries=T??10,this.initRetryMs=P||50}async sign(l,m){if(l instanceof Request){let{method:p,url:g,headers:T,body:P}=l;m=Object.assign({method:p,url:g,headers:T},m),m.body==null&&T.has("Content-Type")&&(m.body=P!=null&&T.has("X-Amz-Content-Sha256")?P:await l.clone().arrayBuffer()),l=g}let y=new a(Object.assign({url:l},m,this,m&&m.aws)),A=Object.assign({},m,await y.sign());return delete A.aws,new Request(A.url.toString(),A)}async fetch(l,m){for(let y=0;y<=this.retries;y++){let A=fetch(await this.sign(l,m));if(y===this.retries)return A;let p=await A;if(p.status<500&&p.status!==429)return p;await new Promise(g=>setTimeout(g,Math.random()*this.initRetryMs*Math.pow(2,y)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class a{constructor({method:l,url:m,headers:y,body:A,accessKeyId:p,secretAccessKey:g,sessionToken:T,service:P,region:_,cache:I,datetime:Z,signQuery:_e,appendSessionToken:ke,allHeaders:he,singleEncode:Pe}){if(m==null)throw new TypeError("url is a required option");if(p==null)throw new TypeError("accessKeyId is a required option");if(g==null)throw new TypeError("secretAccessKey is a required option");this.method=l||(A?"POST":"GET"),this.url=new URL(m),this.headers=new Headers(y||{}),this.body=A,this.accessKeyId=p,this.secretAccessKey=g,this.sessionToken=T;let F,Q;(!P||!_)&&([F,Q]=f(this.url,this.headers)),this.service=P||F||"",this.region=_||Q||"us-east-1",this.cache=I||new Map,this.datetime=Z||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=_e,this.appendSessionToken=ke||this.service==="iotdevicegateway",this.headers.delete("Host");let U=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"),U.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&U.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(w=>he||!s.includes(w)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(w=>w+":"+(w==="host"?this.url.host:(this.headers.get(w)||"").replace(/\s+/g," "))).join(`
|
|
1
|
+
"use strict";var ds=Object.create;var Tt=Object.defineProperty;var fs=Object.getOwnPropertyDescriptor;var ps=Object.getOwnPropertyNames;var ms=Object.getPrototypeOf,gs=Object.prototype.hasOwnProperty;var S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ys=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ps(t))!gs.call(e,n)&&n!==r&&Tt(e,n,{get:()=>t[n],enumerable:!(s=fs(t,n))||s.enumerable});return e};var E=(e,t,r)=>(r=e!=null?ds(ms(e)):{},ys(t||!e||!e.__esModule?Tt(r,"default",{value:e,enumerable:!0}):r,e));var Re=S((Go,_t)=>{function As({host:e=".*",path:t=".*",excludePath:r=null,method:s=[".*"],handler:n,protocol:a=".*",handlerName:o,headers:i={},data:c}){let h=[],f=[],d=e.replace(/(:([^.]+))/g,(T,P,_)=>(h.push(_),"([^.]+)")),l=t.replace(/(:([^/]+))/g,(T,P,_)=>_.slice(-1)==="*"?(f.push(_.slice(0,_.length-1)),"(.*)"):(f.push(_),"([^/]*)")),m=new RegExp(`^${d}$`,"i"),y=new RegExp(`^${l}$`,"i"),A=r?new RegExp(`^${r}$`,"i"):null,p=new RegExp(`^${s.join("|")}$`,"i"),g=new RegExp(`^${a}$`,"i");return{hostVariables:h,pathVariables:f,host:m,path:y,excludePath:A,method:p,protocol:g,handler:n,handlerName:o,headers:i,data:c}}function Ot(e){return[...e].reduce((t,r)=>{let s={};return s[r[0]]=r[1],{...t,...s}},{})}async function ws(e,t=1024*1024){let r=[],s=e.getReader(),n=new TextDecoder,a=0;for(;t&&a<t;){let{done:i,value:c}=await s.read();if(i)break;a+=c.byteLength,r.push(n.decode(c))}let o=r.join("");return t?o.substring(0,t):o}function Ss(e){let t=new URL(e.url),r=Ot(t.searchParams),s=Ot(e.headers);s.host&&(t.hostname=s.host);let n,a;async function o(i){if(a>=i)return n.substring(0,i);let c=e.clone();return n=await ws(c.body,i),n}return{body:e.body,headers:s,host:t.host,hostname:t.hostname,href:t.href,json:async i=>JSON.parse(o(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 o(i)):o(i)}}_t.exports={parseRoute:As,parseRequest:Ss}});var Pt=S((Bo,kt)=>{function bs(e,t){let r={},s=t.host.exec(e.host);t.hostVariables.forEach((a,o)=>{r[a]=s[o+1]});let n=t.path.exec(e.path);return t.pathVariables.forEach((a,o)=>{r[a]=n[o+1]}),r}function Cs(e,t){let r=!0;return Object.keys(e.headers).forEach(s=>{t.headers[s]!==e.headers[s]&&(r=!1)}),r}function vs(e,t){return e.protocol.test(t.protocol)}function Es(e,t){return e.method.test(t.method)&&e.host.test(t.host)&&e.path.test(t.path)&&Cs(e,t)&&vs(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function Ne(e,t){let[r,...s]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!Es(r,e.request))return Ne(e,s);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=bs(e.request,r);try{return r.handler(e,async n=>Ne(n,s))}catch(n){throw n.route=r.handler.name,n}}kt.exports={recurseRoutes:Ne}});var Ut=S((zo,qt)=>{qt.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var $t=S((Wo,Nt)=>{var Ts=Re();Nt.exports=class Rt{constructor(t){this.request=Ts.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 Rt(this.event);return t.cloned=!0,t}}});var Ft=S((Jo,Ht)=>{var J=Re(),Os=Pt(),re=Ut(),_s=$t();Ht.exports=class{constructor(){this.routes=[]}get(t,r){let s=J.parseRoute({method:[re.methods.GET,re.methods.HEAD],path:t,handler:r});this.routes.push(s)}post(t,r){let s=J.parseRoute({method:[re.methods.POST],path:t,handler:r});this.routes.push(s)}patch(t,r){let s=J.parseRoute({method:[re.methods.PATCH],path:t,handler:r});this.routes.push(s)}del(t,r){let s=J.parseRoute({method:[re.methods.DELETE],path:t,handler:r});this.routes.push(s)}use(t){let r=J.parseRoute({handler:t,middleware:!0});this.routes.push(r)}add({host:t,path:r,excludePath:s,method:n,handlerName:a,headers:o,protocol:i},c){let h=J.parseRoute({method:n,host:t,path:r,excludePath:s,handler:c,headers:o,handlerName:a,protocol:i});this.routes.push(h)}async resolve(t){let r=new _s(t);try{return await Os.recurseRoutes(r,this.routes),new Response(r.body,{status:r.status,headers:r.response.headers})}catch(s){return new Response(s.message,{status:500})}}}});var $=S((Xo,Xt)=>{var ks="Expected a function",Dt="__lodash_hash_undefined__",Lt=1/0,Ps="[object Function]",qs="[object GeneratorFunction]",Us="[object Symbol]",Rs=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ns=/^\w*$/,$s=/^\./,Hs=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fs=/[\\^$.*+?()[\]{}|]/g,Ms=/\\(\\)?/g,Is=/^\[object .+?Constructor\]$/,js=typeof global=="object"&&global&&global.Object===Object&&global,Ks=typeof self=="object"&&self&&self.Object===Object&&self,He=js||Ks||Function("return this")();function Ds(e,t){return e?.[t]}function Ls(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Gs=Array.prototype,Bs=Function.prototype,Gt=Object.prototype,$e=He["__core-js_shared__"],Mt=function(){var e=/[^.]+$/.exec($e&&$e.keys&&$e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Bt=Bs.toString,Fe=Gt.hasOwnProperty,zt=Gt.toString,zs=RegExp("^"+Bt.call(Fe).replace(Fs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),It=He.Symbol,Ws=Gs.splice,Vs=Wt(He,"Map"),se=Wt(Object,"create"),jt=It?It.prototype:void 0,Kt=jt?jt.toString:void 0;function K(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Js(){this.__data__=se?se(null):{}}function Xs(e){return this.has(e)&&delete this.__data__[e]}function xs(e){var t=this.__data__;if(se){var r=t[e];return r===Dt?void 0:r}return Fe.call(t,e)?t[e]:void 0}function Ys(e){var t=this.__data__;return se?t[e]!==void 0:Fe.call(t,e)}function Zs(e,t){var r=this.__data__;return r[e]=se&&t===void 0?Dt:t,this}K.prototype.clear=Js;K.prototype.delete=Xs;K.prototype.get=xs;K.prototype.has=Ys;K.prototype.set=Zs;function X(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Qs(){this.__data__=[]}function en(e){var t=this.__data__,r=fe(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():Ws.call(t,r,1),!0}function tn(e){var t=this.__data__,r=fe(t,e);return r<0?void 0:t[r][1]}function rn(e){return fe(this.__data__,e)>-1}function sn(e,t){var r=this.__data__,s=fe(r,e);return s<0?r.push([e,t]):r[s][1]=t,this}X.prototype.clear=Qs;X.prototype.delete=en;X.prototype.get=tn;X.prototype.has=rn;X.prototype.set=sn;function D(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function nn(){this.__data__={hash:new K,map:new(Vs||X),string:new K}}function an(e){return pe(this,e).delete(e)}function on(e){return pe(this,e).get(e)}function cn(e){return pe(this,e).has(e)}function un(e,t){return pe(this,e).set(e,t),this}D.prototype.clear=nn;D.prototype.delete=an;D.prototype.get=on;D.prototype.has=cn;D.prototype.set=un;function fe(e,t){for(var r=e.length;r--;)if(Sn(e[r][0],t))return r;return-1}function hn(e,t){t=pn(t,e)?[t]:fn(t);for(var r=0,s=t.length;e!=null&&r<s;)e=e[An(t[r++])];return r&&r==s?e:void 0}function ln(e){if(!Jt(e)||gn(e))return!1;var t=bn(e)||Ls(e)?zs:Is;return t.test(wn(e))}function dn(e){if(typeof e=="string")return e;if(Ie(e))return Kt?Kt.call(e):"";var t=e+"";return t=="0"&&1/e==-Lt?"-0":t}function fn(e){return Vt(e)?e:yn(e)}function pe(e,t){var r=e.__data__;return mn(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Wt(e,t){var r=Ds(e,t);return ln(r)?r:void 0}function pn(e,t){if(Vt(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ie(e)?!0:Ns.test(e)||!Rs.test(e)||t!=null&&e in Object(t)}function mn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function gn(e){return!!Mt&&Mt in e}var yn=Me(function(e){e=vn(e);var t=[];return $s.test(e)&&t.push(""),e.replace(Hs,function(r,s,n,a){t.push(n?a.replace(Ms,"$1"):s||r)}),t});function An(e){if(typeof e=="string"||Ie(e))return e;var t=e+"";return t=="0"&&1/e==-Lt?"-0":t}function wn(e){if(e!=null){try{return Bt.call(e)}catch{}try{return e+""}catch{}}return""}function Me(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(ks);var r=function(){var s=arguments,n=t?t.apply(this,s):s[0],a=r.cache;if(a.has(n))return a.get(n);var o=e.apply(this,s);return r.cache=a.set(n,o),o};return r.cache=new(Me.Cache||D),r}Me.Cache=D;function Sn(e,t){return e===t||e!==e&&t!==t}var Vt=Array.isArray;function bn(e){var t=Jt(e)?zt.call(e):"";return t==Ps||t==qs}function Jt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Cn(e){return!!e&&typeof e=="object"}function Ie(e){return typeof e=="symbol"||Cn(e)&&zt.call(e)==Us}function vn(e){return e==null?"":dn(e)}function En(e,t,r){var s=e==null?void 0:hn(e,t);return s===void 0?r:s}Xt.exports=En});var ge=S((me,tr)=>{(function(e,t){typeof me=="object"&&typeof tr<"u"?t(me):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.aws4fetch={}))})(me,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"},s=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"];class n{constructor({accessKeyId:l,secretAccessKey:m,sessionToken:y,service:A,region:p,cache:g,retries:T,initRetryMs:P}){if(l==null)throw new TypeError("accessKeyId is a required option");if(m==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=l,this.secretAccessKey=m,this.sessionToken=y,this.service=A,this.region=p,this.cache=g||new Map,this.retries=T??10,this.initRetryMs=P||50}async sign(l,m){if(l instanceof Request){let{method:p,url:g,headers:T,body:P}=l;m=Object.assign({method:p,url:g,headers:T},m),m.body==null&&T.has("Content-Type")&&(m.body=P!=null&&T.has("X-Amz-Content-Sha256")?P:await l.clone().arrayBuffer()),l=g}let y=new a(Object.assign({url:l},m,this,m&&m.aws)),A=Object.assign({},m,await y.sign());return delete A.aws,new Request(A.url.toString(),A)}async fetch(l,m){for(let y=0;y<=this.retries;y++){let A=fetch(await this.sign(l,m));if(y===this.retries)return A;let p=await A;if(p.status<500&&p.status!==429)return p;await new Promise(g=>setTimeout(g,Math.random()*this.initRetryMs*Math.pow(2,y)))}throw new Error("An unknown error occurred, ensure retries is not negative")}}class a{constructor({method:l,url:m,headers:y,body:A,accessKeyId:p,secretAccessKey:g,sessionToken:T,service:P,region:_,cache:I,datetime:Z,signQuery:_e,appendSessionToken:ke,allHeaders:he,singleEncode:Pe}){if(m==null)throw new TypeError("url is a required option");if(p==null)throw new TypeError("accessKeyId is a required option");if(g==null)throw new TypeError("secretAccessKey is a required option");this.method=l||(A?"POST":"GET"),this.url=new URL(m),this.headers=new Headers(y||{}),this.body=A,this.accessKeyId=p,this.secretAccessKey=g,this.sessionToken=T;let F,Q;(!P||!_)&&([F,Q]=f(this.url,this.headers)),this.service=P||F||"",this.region=_||Q||"us-east-1",this.cache=I||new Map,this.datetime=Z||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=_e,this.appendSessionToken=ke||this.service==="iotdevicegateway",this.headers.delete("Host");let U=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"),U.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&U.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(w=>he||!s.includes(w)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(w=>w+":"+(w==="host"?this.url.host:(this.headers.get(w)||"").replace(/\s+/g," "))).join(`
|
|
2
2
|
`),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!U.has("X-Amz-Expires")&&U.set("X-Amz-Expires","86400"),U.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),U.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),U.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,"/");Pe||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=h(this.encodedPath);let le=new Set;this.encodedSearch=[...this.url.searchParams].filter(([w])=>{if(!w)return!1;if(this.service==="s3"){if(le.has(w))return!1;le.add(w)}return!0}).map(w=>w.map(ee=>h(encodeURIComponent(ee)))).sort(([w,ee],[te,de])=>w<te?-1:w>te?1:ee<de?-1:ee>de?1:0).map(w=>w.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let l=this.datetime.slice(0,8),m=[this.secretAccessKey,l,this.region,this.service].join(),y=this.cache.get(m);if(!y){let A=await o("AWS4"+this.secretAccessKey,l),p=await o(A,this.region),g=await o(p,this.service);y=await o(g,"aws4_request"),this.cache.set(m,y)}return c(await o(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 l=this.headers.get("X-Amz-Content-Sha256");if(l==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");l=c(await i(this.body||""))}return l}}async function o(d,l){let m=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",m,t.encode(l))}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),l=>("0"+l.toString(16)).slice(-2)).join("")}function h(d){return d.replace(/[!'()*]/g,l=>"%"+l.charCodeAt(0).toString(16).toUpperCase())}function f(d,l){let{hostname:m,pathname:y}=d,A=m.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[p,g]=(A||["",""]).slice(1,3);if(g==="us-gov")g="us-gov-west-1";else if(g==="s3"||g==="s3-accelerate")g="us-east-1",p="s3";else if(p==="iot")m.startsWith("iot.")?p="execute-api":m.startsWith("data.jobs.iot.")?p="iot-jobs-data":p=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(p==="autoscaling"){let T=(l.get("X-Amz-Target")||"").split(".")[0];T==="AnyScaleFrontendService"?p="application-autoscaling":T==="AnyScaleScalingPlannerFrontendService"&&(p="autoscaling-plans")}else g==null&&p.startsWith("s3-")?(g=p.slice(3).replace(/^fips-|^external-1/,""),p="s3"):p.endsWith("-fips")?p=p.slice(0,-5):g&&/-\d$/.test(p)&&!/-\d$/.test(g)&&([p,g]=[g,p]);return[r[p]||p,g]}e.AwsClient=n,e.AwsV4Signer=a,Object.defineProperty(e,"__esModule",{value:!0})})});var be=S((yi,pr)=>{var Bn="Expected a function",or="__lodash_hash_undefined__",ir=1/0,zn=9007199254740991,Wn="[object Function]",Vn="[object GeneratorFunction]",Xn="[object Symbol]",Jn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/,Yn=/^\./,Zn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Qn=/[\\^$.*+?()[\]{}|]/g,ea=/\\(\\)?/g,ta=/^\[object .+?Constructor\]$/,ra=/^(?:0|[1-9]\d*)$/,sa=typeof global=="object"&&global&&global.Object===Object&&global,na=typeof self=="object"&&self&&self.Object===Object&&self,Ze=sa||na||Function("return this")();function aa(e,t){return e?.[t]}function oa(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ia=Array.prototype,ca=Function.prototype,cr=Object.prototype,Ye=Ze["__core-js_shared__"],rr=function(){var e=/[^.]+$/.exec(Ye&&Ye.keys&&Ye.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),ur=ca.toString,Ae=cr.hasOwnProperty,hr=cr.toString,ua=RegExp("^"+ur.call(Ae).replace(Qn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),sr=Ze.Symbol,ha=ia.splice,la=lr(Ze,"Map"),ne=lr(Object,"create"),nr=sr?sr.prototype:void 0,ar=nr?nr.toString:void 0;function G(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function da(){this.__data__=ne?ne(null):{}}function fa(e){return this.has(e)&&delete this.__data__[e]}function pa(e){var t=this.__data__;if(ne){var r=t[e];return r===or?void 0:r}return Ae.call(t,e)?t[e]:void 0}function ma(e){var t=this.__data__;return ne?t[e]!==void 0:Ae.call(t,e)}function ga(e,t){var r=this.__data__;return r[e]=ne&&t===void 0?or:t,this}G.prototype.clear=da;G.prototype.delete=fa;G.prototype.get=pa;G.prototype.has=ma;G.prototype.set=ga;function x(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function ya(){this.__data__=[]}function Aa(e){var t=this.__data__,r=we(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():ha.call(t,r,1),!0}function wa(e){var t=this.__data__,r=we(t,e);return r<0?void 0:t[r][1]}function Sa(e){return we(this.__data__,e)>-1}function ba(e,t){var r=this.__data__,s=we(r,e);return s<0?r.push([e,t]):r[s][1]=t,this}x.prototype.clear=ya;x.prototype.delete=Aa;x.prototype.get=wa;x.prototype.has=Sa;x.prototype.set=ba;function B(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Ca(){this.__data__={hash:new G,map:new(la||x),string:new G}}function va(e){return Se(this,e).delete(e)}function Ea(e){return Se(this,e).get(e)}function Ta(e){return Se(this,e).has(e)}function Oa(e,t){return Se(this,e).set(e,t),this}B.prototype.clear=Ca;B.prototype.delete=va;B.prototype.get=Ea;B.prototype.has=Ta;B.prototype.set=Oa;function _a(e,t,r){var s=e[t];(!(Ae.call(e,t)&&dr(s,r))||r===void 0&&!(t in e))&&(e[t]=r)}function we(e,t){for(var r=e.length;r--;)if(dr(e[r][0],t))return r;return-1}function ka(e){if(!ye(e)||Ha(e))return!1;var t=ja(e)||oa(e)?ua:ta;return t.test(Ia(e))}function Pa(e,t,r,s){if(!ye(e))return e;t=Na(t,e)?[t]:Ua(t);for(var n=-1,a=t.length,o=a-1,i=e;i!=null&&++n<a;){var c=Ma(t[n]),h=r;if(n!=o){var f=i[c];h=s?s(f,c,i):void 0,h===void 0&&(h=ye(f)?f:Ra(t[n+1])?[]:{})}_a(i,c,h),i=i[c]}return e}function qa(e){if(typeof e=="string")return e;if(et(e))return ar?ar.call(e):"";var t=e+"";return t=="0"&&1/e==-ir?"-0":t}function Ua(e){return fr(e)?e:Fa(e)}function Se(e,t){var r=e.__data__;return $a(t)?r[typeof t=="string"?"string":"hash"]:r.map}function lr(e,t){var r=aa(e,t);return ka(r)?r:void 0}function Ra(e,t){return t=t??zn,!!t&&(typeof e=="number"||ra.test(e))&&e>-1&&e%1==0&&e<t}function Na(e,t){if(fr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||et(e)?!0:xn.test(e)||!Jn.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 Ha(e){return!!rr&&rr in e}var Fa=Qe(function(e){e=Da(e);var t=[];return Yn.test(e)&&t.push(""),e.replace(Zn,function(r,s,n,a){t.push(n?a.replace(ea,"$1"):s||r)}),t});function Ma(e){if(typeof e=="string"||et(e))return e;var t=e+"";return t=="0"&&1/e==-ir?"-0":t}function Ia(e){if(e!=null){try{return ur.call(e)}catch{}try{return e+""}catch{}}return""}function Qe(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Bn);var r=function(){var s=arguments,n=t?t.apply(this,s):s[0],a=r.cache;if(a.has(n))return a.get(n);var o=e.apply(this,s);return r.cache=a.set(n,o),o};return r.cache=new(Qe.Cache||B),r}Qe.Cache=B;function dr(e,t){return e===t||e!==e&&t!==t}var fr=Array.isArray;function ja(e){var t=ye(e)?hr.call(e):"";return t==Wn||t==Vn}function ye(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ka(e){return!!e&&typeof e=="object"}function et(e){return typeof e=="symbol"||Ka(e)&&hr.call(e)==Xn}function Da(e){return e==null?"":qa(e)}function La(e,t,r){return e==null?e:Pa(e,t,r)}pr.exports=La});var br=S(nt=>{"use strict";nt.parse=xa;nt.serialize=Ya;var Va=decodeURIComponent,Xa=encodeURIComponent,Ja=/; */,ve=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function xa(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},s=t||{},n=e.split(Ja),a=s.decode||Va,o=0;o<n.length;o++){var i=n[o],c=i.indexOf("=");if(!(c<0)){var h=i.substr(0,c).trim(),f=i.substr(++c,i.length).trim();f[0]=='"'&&(f=f.slice(1,-1)),r[h]==null&&(r[h]=Za(f,a))}}return r}function Ya(e,t,r){var s=r||{},n=s.encode||Xa;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!ve.test(e))throw new TypeError("argument name is invalid");var a=n(t);if(a&&!ve.test(a))throw new TypeError("argument val is invalid");var o=e+"="+a;if(s.maxAge!=null){var i=s.maxAge-0;if(isNaN(i)||!isFinite(i))throw new TypeError("option maxAge is invalid");o+="; Max-Age="+Math.floor(i)}if(s.domain){if(!ve.test(s.domain))throw new TypeError("option domain is invalid");o+="; Domain="+s.domain}if(s.path){if(!ve.test(s.path))throw new TypeError("option path is invalid");o+="; Path="+s.path}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(o+="; HttpOnly"),s.secure&&(o+="; Secure"),s.sameSite){var c=typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite;switch(c){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o}function Za(e,t){try{return t(e)}catch{return e}}});var vr=S((Hi,Cr)=>{"use strict";var Ee=1;function Qa(){return Ee=(Ee*9301+49297)%233280,Ee/233280}function eo(e){Ee=e}Cr.exports={nextValue:Qa,seed:eo}});var ce=S((Fi,_r)=>{"use strict";var at=vr(),W="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",M,Er,ie;function ot(){ie=!1}function Tr(e){if(!e){M!==W&&(M=W,ot());return}if(e!==M){if(e.length!==W.length)throw new Error("Custom alphabet for shortid must be "+W.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter(function(r,s,n){return s!==n.lastIndexOf(r)});if(t.length)throw new Error("Custom alphabet for shortid must be "+W.length+" unique characters. These characters were not unique: "+t.join(", "));M=e,ot()}}function to(e){return Tr(e),M}function ro(e){at.seed(e),Er!==e&&(ot(),Er=e)}function so(){M||Tr(W);for(var e=M.split(""),t=[],r=at.nextValue(),s;e.length>0;)r=at.nextValue(),s=Math.floor(r*e.length),t.push(e.splice(s,1)[0]);return t.join("")}function Or(){return ie||(ie=so(),ie)}function no(e){var t=Or();return t[e]}function ao(){return M||W}_r.exports={get:ao,characters:to,seed:ro,lookup:no,shuffled:Or}});var Pr=S((Mi,kr)=>{"use strict";var it=typeof window=="object"&&(window.crypto||window.msCrypto),ct;!it||!it.getRandomValues?ct=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:ct=function(e){return it.getRandomValues(new Uint8Array(e))};kr.exports=ct});var Ur=S((Ii,qr)=>{qr.exports=function(e,t,r){for(var s=(2<<Math.log(t.length-1)/Math.LN2)-1,n=-~(1.6*s*r/t.length),a="";;)for(var o=e(n),i=n;i--;)if(a+=t[o[i]&s]||"",a.length===+r)return a}});var Nr=S((ji,Rr)=>{"use strict";var oo=ce(),io=Pr(),co=Ur();function uo(e){for(var t=0,r,s="";!r;)s=s+co(io,oo.get(),1),r=e<Math.pow(16,t+1),t++;return s}Rr.exports=uo});var Fr=S((Di,Hr)=>{"use strict";var Te=Nr(),Ki=ce(),ho=1567752802062,lo=7,Oe,$r;function fo(e){var t="",r=Math.floor((Date.now()-ho)*.001);return r===$r?Oe++:(Oe=0,$r=r),t=t+Te(lo),t=t+Te(e),Oe>0&&(t=t+Te(Oe)),t=t+Te(r),t}Hr.exports=fo});var Ir=S((Li,Mr)=>{"use strict";var po=ce();function mo(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+po.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Mr.exports=mo});var Kr=S((Gi,jr)=>{"use strict";jr.exports=0});var Gr=S((Bi,H)=>{"use strict";var ut=ce(),go=Fr(),yo=Ir(),Dr=Kr()||0;function Ao(e){return ut.seed(e),H.exports}function wo(e){return Dr=e,H.exports}function So(e){return e!==void 0&&ut.characters(e),ut.shuffled()}function Lr(){return go(Dr)}H.exports=Lr;H.exports.generate=Lr;H.exports.seed=Ao;H.exports.worker=wo;H.exports.characters=So;H.exports.isValid=yo});var zr=S((zi,Br)=>{"use strict";Br.exports=Gr()});var as=E(Ht());var Jt=E($()),En={get:Jt.default};function je(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function Ke(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return je(t);let s=En.get(t,"request.headers.authorization");if(!s||!s.startsWith("Basic "))return je(t);let n=e.users.map(i=>i.authToken),a=s.substring(6),o=n.indexOf(a);return o===-1?je(t):(t.state.user=e.users[o].username,r(t))}}var xt=caches.default;async function Tn(e){return await xt.match(e)}async function On(e,t){return xt.put(e.href,t)}var De={get:Tn,set:On};async function _n(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 Yt=_n;function kn(e,t={}){return Object.keys(t).reduce((r,s)=>r.replace(`{${s}}`,t[s]),e)}function Le(e){return[...e].reduce((t,r)=>{let s={};return s[r[0]]=r[1],{...t,...s}},{})}var C={resolveParams:kn,instanceToJson:Le};var Pn=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function qn(e){return["POST","PATCH"].indexOf(e.method)===-1?null:e.text()}async function Un(e,t){if(!t)return e.event.request;let r=t.match(/{.*?}/gi).map(a=>a.slice(1,-1)),s={};for(let a=0;a<r.length;a+=1){let o=r[a],i=o.split(":");switch(i[0]){case"method":s[o]=e.request.method;break;case"path":s[o]=e.request.path;break;case"bodyHash":s[o]=await Yt(await qn(e.request));break;case"header":s[o]=e.request.headers[i[1]]||"";break;default:s[o]=o}}let n=encodeURIComponent(t.replace(/({(.*?)})/gi,(a,o,i)=>s[i]));return new Request(`http://${e.request.hostname}/${n}`)}function Ge({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=Pn}){return async(s,n)=>{let a=await Un(s,t),o=await De.get(a);if(o){s.body=o.body,s.status=o.status;let i=Le(o.headers);Object.keys(i).forEach(c=>{s.set(c,i[c])}),s.set("X-Cache-Hit",!0)}else{await n(s);let i;s.body.tee?[s.body,i]=s.body.tee():i=s.body;let c=new Response(i,{status:s.status});Object.keys(s.response.headers).forEach(h=>{r.indexOf(h.toLowerCase())===-1&&c.headers.set(h,s.response.headers[h])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),s.event.waitUntil(De.set(a,c))}}}function Be({allowedOrigins:e=["*"],allowedMethods:t=["GET","PUT","POST","PATCH","DELETE","HEAD","OPTIONS"],allowCredentials:r=!0,allowedHeaders:s=["Content-Type"],allowedExposeHeaders:n=["WWW-Authenticate","Server-Authorization"],maxAge:a=600,optionsSuccessStatus:o=204,terminatePreflight:i=!1}){return async(c,h)=>{let{method:f}=c.request,{origin:d}=c.request.headers,l=c.request.headers["access-control-request-headers"];if(Rn(c,d,e),Nn(c,r),Mn(c,n),f==="OPTIONS"&&($n(c,t),Hn(c,l,s),Fn(c,a),i)){c.status=o,c.set("Content-Length","0"),c.body="";return}await h(c)}}function Rn(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 Nn(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function $n(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function Hn(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 Fn(e,t){t&&e.set("Access-Control-Max-Age",t)}function Mn(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var In={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 ze(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=In[r],await t(e)}}function jn(e){let t=e.split("."),r=JSON.parse(atob(t[0])),s=JSON.parse(atob(t[1])),n=atob(t[2].replace(/-/g,"+").replace(/_/g,"/"));return{header:r,payload:s,signature:n,raw:{header:t[0],payload:t[1],signature:t[2]}}}function We({jwksUri:e,allowPublicAccess:t=!1}){async function r(){return(await(await fetch(e)).json()).keys}async function s(a){let i=new TextEncoder().encode([a.raw.header,a.raw.payload].join(".")),c=new Uint8Array(Array.from(a.signature).map(d=>d.charCodeAt(0))),h=await r();return(await Promise.all(h.map(async d=>{let l=await crypto.subtle.importKey("jwk",d,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",l,c,i)}))).some(d=>d)}async function n(a,o){if(a.request.method==="OPTIONS")return o(a);if((a.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let c=jn(a.request.headers.authorization.slice(7)),h=new Date(c.payload.exp*1e3),f=new Date(Date.now());if(h<=f)return!1;if(await s(c))return a.state.user=c.payload,o(a)}return t?o(a):(a.status=403,a.body="Forbidden",a)}return n}var Zt=E($()),Kn={get:Zt.default},L=class{constructor({accountId:t,namespace:r,authEmail:s,authKey:n,ttl:a}){this.accountId=t,this.namespace=r,this.authEmail=s,this.authKey=n,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 s=`${this.getNamespaceUrl()}/keys?prefix=${t}&limit=${r}`,n=await fetch(s,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});return n.ok?n.json():null}async get(t,r){let s=this.getUrlForKey(t),n=await fetch(s,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});if(n.ok)switch(r){case"json":return n.json();case"stream":return n;case"arrayBuffer":return n.arrayBuffer();default:return n.text()}return null}async getWithMetadata(t,r){let[s,n]=await Promise.all([this.get(t,r),this.list(t)]),a=Kn.get(n,"result.0.metadata",{});return{value:s,metadata:a}}async put(t,r,s={}){let n=this.getUrlForKey(t),a=new URLSearchParams;this.ttl&&a.append("expiration_ttl",this.ttl.toString());let o={"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey};n.search=a.toString();let i=new FormData;return i.append("value",r),i.append("metadata",JSON.stringify(s)),(await fetch(n.toString(),{method:"PUT",headers:o,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 q={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 Dn(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Ve({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:s,kvBasePath:n="",kvKey:a="{file}",defaultExtension:o="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:h={},mode:f="rest"}){let d=new L({accountId:e,namespace:t,authEmail:r,authKey:s,mode:f}),l={...q.mime,...h};return async m=>{let y=C.resolveParams(a,m.params),A=y===""&&i?i:Dn(y,o),p=await d.get(n+A);!p&&c&&(p=await d.get(n+c)),p?(m.status=200,m.body=p,m.set("Content-Type",l[A.split(".").pop()]||"text/plain")):(m.status=404,m.body=q.http.statusMessages[404],m.set("Content-Type","text/plain"))}}var Qt=E($());var Xe={get:Qt.default};function Ln(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Gn(e,t){let r=Xe.get(e,"headers.if-none-match"),s=Xe.get(t,"metadata.headers.etag");return r?r===s:!1}function Je({kvNamespaceBinding:e,kvBasePath:t="",kvKey:r="{file}",defaultExtension:s="html",defaultIndexDocument:n,defaultErrorDocument:a}){async function o(i){return await global[e].getWithMetadata(i)}return async i=>{let c=C.resolveParams(r,i.params),h=c===""&&n?n:Ln(c,s),f=await o(t+h);if(!f&&a&&(f=await o(t+a)),f)if(Gn(i.request,f))i.status=304;else{i.status=f.status,i.body=f.value;let d=Xe.get(f,"metadata.headers",{});Object.keys(d).forEach(l=>{i.set(l,d[l])})}else i.status=404,i.body=q.http.statusMessages[404],i.set("Content-Type","text/plain")}}var tr=E(ge());function xe({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:s}){let n=new tr.AwsClient({accessKeyId:e,secretAccessKey:t});return async a=>{let o=`https://lambda.${r}.amazonaws.com/2015-03-31/functions/${s}/invocations`,i={},c=await n.fetch(o,{body:JSON.stringify(i)});a.status=c.status,a.body=c.body;let h=C.instanceToJson(c.headers);Object.keys(h).forEach(f=>{a.set(f,h[f])})}}var gr=E($()),yr=E(be());var mr={get:gr.default,set:yr.default};function Ga(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Ba(e){return e[Math.floor(Math.random()*e.length)]}function tt({sources:e=[]}){return async t=>{let r=Ba(e),s={method:t.request.method,headers:Ga(t.request.headers),redirect:"manual",cf:t.request.cf};if(q.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&mr.get(t,"event.request.body")){let i=t.event.request.clone();s.body=i.body}let n=C.resolveParams(r.url,t.params);if(r.resolveOverride){let i=C.resolveParams(r.resolveOverride,t.request.params);mr.set(s,"cf.resolveOverride",i)}let a=await fetch(n+t.request.search,s);t.body=a.body,t.status=a.status;let o=C.instanceToJson(a.headers);Object.keys(o).forEach(i=>{t.set(i,o[i])})}}var Sr=E($());var rt={name:"@ahmadissa/cloudworker-proxy",version:"1.0.8",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:"Markus Ahlstrand",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","cloudworker-router":"1.11.2",cookie:"0.4.1","lodash.get":"4.4.2","lodash.set":"4.3.2",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 z=class{constructor({maxSize:t=10,maxSeconds:r=10,sink:s}){this.maxSize=t,this.maxSeconds=r,this.queue=[],this.sink=s,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,s)=>{this.resolveTimer=r,this.rejectTimer=s,this.cancelationToken=setTimeout(async()=>{try{r(await this.flush())}catch(n){s(n)}},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
|
|
7
|
-
`),s=JSON.stringify({DeliveryStreamName:this.streamName,Record:{Data:r}}),n=`https://firehose.${this.region}.amazonaws.com`,a=new Request(n,{method:"POST",body:s,headers:{"X-Amz-Target":"Firehose_20150804.PutRecord","Content-Type":" application/x-amz-json-1.1"}});return this.awsClient.fetch(a)}};var k={get:Sr.default};async function Wa(e){return["POST","PATCH"].indexOf(e.method)===-1?null:e.text()}function st(e){let t;switch(e.type){case"http":t=new ae(e);break;case"kinesis":t=new oe(e);break;default:throw new Error(`Log service type not supported: ${e.type}`)}return async(r,s)=>{r.state["logger-startDate"]=new Date;let n=await Wa(r.request);try{await s(r);let a={message:"START",requestIp:k.get(r,"request.headers.x-real-ip"),requestId:k.get(r,"request.requestId"),request:{headers:k.get(r,"request.headers"),method:k.get(r,"request.method"),url:k.get(r,"request.href"),protocol:k.get(r,"request.protocol"),body:n},response:{status:r.status,headers:k.get(r,"response.headers")},handlers:k.get(r,"state.handlers",[]).join(","),route:k.get(r,"route.name"),timestamp:new Date().toISOString(),ttfb:new Date-r.state["logger-startDate"],redirectUrl:r.userRedirect,severity:30,proxyVersion:rt.version};r.event.waitUntil(t.log(a))}catch(a){let o={request:{headers:k.get(r,"request.headers"),method:k.get(r,"request.method"),handlers:k.get(r,"state.handlers",[]).join(","),url:k.get(r,"request.href"),body:n},message:"ERROR",stack:a.stack,error:a.message,severity:50,proxyVersion:rt.version};r.event.waitUntil(t.log(o))}}}var ue=E(br()),Jr=E($()),xr=E(be()),Yr=E(zr());async function ht({refresh_token:e,authDomain:t,clientId:r,clientSecret:s}){let n=`${t}/oauth/token`,a=await fetch(n,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:r,client_secret:s,refresh_token:e})});if(!a.ok)throw new Error("Authentication failed");let o=await a.json();return{...o,expires:Date.now()+o.expires_in*1e3,refresh_token:e}}var Wr="PBKDF2",lt="AES-GCM",bo="SHA-256",Co="raw";function vo(e){let t=atob(e.replace(/_/g,"/").replace(/-/g,"+")),r=t.length,s=new Uint8Array(r);for(let n=0;n<r;n+=1)s[n]=t.charCodeAt(n);return s.buffer}function Vr(e){let t="",r=new Uint8Array(e),s=r.byteLength;for(let n=0;n<s;n+=1)t+=String.fromCharCode(r[n]);return btoa(t).replace(/\//g,"_").replace(/\+/g,"-")}function Eo(e){return String.fromCharCode.apply(null,new Uint16Array(e))}function To(e){let t=new ArrayBuffer(e.length*2),r=new Uint16Array(t);for(let s=0,n=e.length;s<n;s+=1)r[s]=e.charCodeAt(s);return t}async function Oo(e){let t=new TextEncoder;return crypto.subtle.importKey(Co,t.encode(e),{name:Wr},!1,["deriveKey"])}async function _o(e,t){let r=await Oo(e),n=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:Wr,salt:n,iterations:1e3,hash:{name:bo}},r,{name:lt,length:256},!0,["encrypt","decrypt"])}async function ko(){let e=crypto.getRandomValues(new Uint8Array(8));return Vr(e)}async function Po(e,t){let r=vo(t),s=r.slice(0,16),n=r.slice(16),a=await crypto.subtle.decrypt({name:lt,iv:s},e,n);return Eo(a)}async function qo(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),s=await crypto.subtle.encrypt({name:lt,iv:r},e,To(t)),n=new Uint8Array(s.byteLength+r.byteLength);return n.set(r,0),n.set(new Uint8Array(s),r.byteLength),Vr(n)}var V={decrypt:Po,deriveAesGcmKey:_o,encrypt:qo,getSalt:ko};var Y={get:Jr.default,set:xr.default};function Xr({cookieHeader:e="",cookieName:t}){return ue.default.parse(e)[t]}function Uo(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function Ro(e=""){return e.split(",").indexOf("text/html")!==-1}function dt({cookieName:e="proxy",cookieHttpOnly:t=!0,allowPublicAccess:r=!1,kvAccountId:s,kvNamespace:n,kvAuthEmail:a,kvAuthKey:o,kvTtl:i=2592e3,oauth2AuthDomain:c,oauth2ClientId:h,oauth2ClientSecret:f,oauth2Audience:d,oauth2Scopes:l=[],oauth2CallbackPath:m="/callback",oauth2CallbackType:y="cookie",oauth2LogoutPath:A="/logout",oauth2LoginPath:p="/login",oauth2ServerTokenPath:g="/oauth/token",oauth2ServerAuthorizePath:T="",oauth2ServerLogoutPath:P}){let _=new L({accountId:s,namespace:n,authEmail:a,authKey:o,ttl:i}),I=c,Z=m,_e=y,ke=g,he=T,Pe=P,F=h,Q=f,U=d,le=A,w=p,te=l.join("%20");async function de(u,v){let b=`${I}${ke}`,O=await fetch(b,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Uo({code:u,grant_type:"authorization_code",client_id:F,client_secret:Q,redirect_uri:v})});if(!O.ok)throw new Error("Authentication failed");let R=await O.json();return{...R,expires:Date.now()+R.expires_in*1e3}}async function os(u){if(Xr({cookieHeader:u.request.headers.cookie,cookieName:e})){let O=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.set("Set-Cookie",ue.default.serialize(e,"",{domain:`.${O}`,path:"/",maxAge:0}))}let b=vt(u);if(P){let O=encodeURIComponent(`${u.request.protocol}://${u.request.host}${b}`);u.set("Location",`${I}${Pe}?client_id=${F}&returnTo=${O}`)}else u.set("Location",b);u.status=302}async function is(u){let v=u.request.href.split("?")[0],b=await de(u.request.query.code,v),O=Yr.default.generate(),R=await V.getSalt(),N=`${O}.${R}`,qe=await V.deriveAesGcmKey(O,R),j=await V.encrypt(qe,JSON.stringify(b));await _.put(O,j);let Ue=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.status=302,_e==="query"?u.set("Location",`${u.request.query.state}?auth=${N}`):(u.set("Set-Cookie",ue.default.serialize(e,N,{httpOnly:t,domain:`.${Ue}`,path:"/",maxAge:60*60*24*365})),u.set("Location",u.request.query.state))}async function cs(u,v){let[b,O]=v.split("."),R=await _.get(b);if(R){let N=await V.deriveAesGcmKey(b,O),qe=await V.decrypt(N,R),j=JSON.parse(qe);if(j.expires<Date.now()){j=await ht({refresh_token:j.refresh_token,clientId:F,authDomain:I,clientSecret:Q});let Ue=await V.encrypt(N,JSON.stringify(j));await _.put(b,Ue)}u.state.accessToken=j.access_token,u.state.accessToken&&(u.request.headers.authorization=`bearer ${u.state.accessToken}`)}else{let N=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.set("Set-Cookie",ue.default.serialize(e,"",{domain:`.${N}`,maxAge:0}))}}function vt(u){let v=Y.get(u,"request.query.redirect-to");if(v)return v;let b=Y.get(u,"request.headers.referer");return b||"/"}async function us(u){if(u.request.method==="OPTIONS")u.status=200;else{let v=vt(u),b=encodeURIComponent(v||"/"),O=encodeURIComponent(`${u.request.protocol}://${u.request.host}${Z}`);u.status=302,u.set("location",`${I}${he}/authorize?state=${b}&client_id=${F}&response_type=code&scope=${te}&audience=${U}&redirect_uri=${O}`)}}async function hs(u,v){if(u.request.method==="OPTIONS")await v(u);else if(Y.get(u,"request.headers.authorization","").toLowerCase().startsWith("bearer "))Y.set(u,"state.access_token",u.request.headers.authorization.slice(7)),await v(u);else{let b=Y.get(u,"request.query.auth")||Xr({cookieHeader:u.request.headers.cookie,cookieName:e});if(b&&await cs(u,b),Y.get(u,"state.accessToken")||r)await v(u);else if(Ro(u.request.headers.accept)){let R=encodeURIComponent(u.request.href),N=encodeURIComponent(`${u.request.protocol}://${u.request.host}${Z}`);u.status=302,u.set("location",`${I}${he}/authorize?state=${R}&client_id=${F}&response_type=code&scope=${te}&audience=${U}&redirect_uri=${N}`)}else u.status=403,u.body="Forbidden"}}return async(u,v)=>{switch(u.request.path){case Z:await is(u);break;case le:await os(u);break;case w:await us(u);break;default:await hs(u,v)}}}var Zr=E($());var No={get:Zr.default};function $o(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function ft(e){let{localOriginOverride:t,backend:r}=e;return async s=>{let n=process.env.LOCAL?`${t||s.request.origin}${s.request.path}`:`${r}${s.request.path}`,a={headers:$o(s.request.headers),method:s.request.method,redirect:"manual"};if(q.methodsMethodsWithBody.indexOf(s.request.method)!==-1&&No.get(s,"event.request.body")){let c=s.event.request.clone();a.body=c.body}let o=await fetch(n,a);s.body=o.body,s.status=o.status;let i=C.instanceToJson(o.headers);Object.keys(i).forEach(c=>{s.set(c,i[c])})}}function pt({body:e="",headers:t={},status:r=200}){return async s=>{e instanceof Object?(s.body=JSON.stringify(e),s.set("Content-Type","application/json")):s.body=C.resolveParams(e,s.params),s.status=r,Object.keys(t).forEach(n=>{s.set(n,C.resolveParams(t[n],s.params))})}}var Qr=E($()),es=E(be()),mt={get:Qr.default,set:es.default};function gt({type:e="IP",scope:t="default",limit:r=1e3}){let s={};function n(o,i){let c=i["x-real-ip"];return e==="IP"?`minute.${o}.${t}.${c}`:`minute.${o}.${t}.account`}function a(o){let i=mt.get(s,"minutes",{});Object.keys(i).forEach(c=>{c!==o&&delete s.minutes.minute})}return async(o,i)=>{let c=Math.trunc(Date.now()/6e4),h=Math.trunc(c*60+60-Date.now()/1e3),f=n(c,o.request.headers),d=mt.get(s,f,0);if(["HEAD","OPTIONS"].indexOf(o.request.method)===-1&&(d+=1),mt.set(s,f,d),r<d){o.status=429;return}a(c),await i(o)}}var ts=E(ge());function Ho(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:s,endpoint:n,forcePathStyle:a,enableBucketOperations:o=!1}){let i=new ts.AwsClient({accessKeyId:e,region:s,secretAccessKey:t}),c=Ho(n,{region:s,bucket:r,forcePathStyle:a});return async h=>{if(h.params.file===void 0&&!o){h.status=404,h.body=q.http.statusMessages[404],h.set("Content-Type","text/plain");return}let f=h.params.file?C.resolveParams(`${c}/{file}`,h.params):c,d={};h.request.headers.range&&(d.range=h.request.headers.range);let l=await i.fetch(f,{method:h.method||h.request.method,headers:d});h.status=l.status,h.body=l.body;let m=C.instanceToJson(l.headers);Object.keys(m).forEach(y=>{h.set(y,m[y])})}}var At;function rs(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Fo(e){return At||(At=await crypto.subtle.importKey("raw",rs(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),At}async function Mo(e,t){let r=await Fo(t),s=await crypto.subtle.sign({name:"HMAC"},r,rs(e));return btoa(String.fromCharCode.apply(null,new Uint8Array(s))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function wt({secret:e}){return async(t,r)=>{let s=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Mo(s,e)!==t.query.sign){t.status=403;return}await r(t)}}function St({host:e}){if(!e)throw new Error("Need to specify a host for the split middleware.");return async(t,r)=>{let s=t.clone();s.cloned=!0,s.request={...s.request,href:s.request.href.replace(s.request.href,e),host:e},t.event.waitUntil(r(s)),await r(t)}}async function Io(e,t,r){let s=e.getReader(),n=t.getWriter(),a=new TextDecoder,o=new TextEncoder;for(;;){let{done:i,value:c}=await s.read();if(i)break;let h=a.decode(c),f=ss(h,r),d=o.encode(f);await n.write(d)}await n.close()}function jo(e,t){return e.replace(/{{\$(\d)}}/g,(r,s)=>t[parseInt(s,10)])}function ss(e,t){return t.reduce((r,s)=>r.replace(s.regex,(...n)=>jo(s.replace,n)),e)}function bt({transforms:e=[],statusCodes:t=[200]}){let r=e.map(s=>({regex:new RegExp(s.regex,"g"),replace:s.replace}));return async(s,n)=>{await n(s);let{body:a}=s;if(t.indexOf(s.status)!==-1)if(typeof a=="string")s.body=ss(a,r);else{let{readable:o,writable:i}=new TransformStream;Io(a,i,r),s.body=o}}}async function Ko({projectID:e="your-project-id",API_KEY:t="GCP_API_KEY",token:r="action-token",siteKey:s="siteKey",expectedAction:n="action-name"}){let o=await(await fetch(`https://recaptchaenterprise.googleapis.com/v1/projects/${e}/assessments?key=${t}`,{body:JSON.stringify({event:{token:r,siteKey:s,expectedAction:n}}),headers:{"Content-Type":"application/json"},method:"POST"})).json();return o.tokenProperties.valid?o.tokenProperties.action===n?(o.riskAnalysis.reasons.forEach(i=>{console.log(i)}),o.riskAnalysis.score):(console.error("The action attribute in your reCAPTCHA tag does not match the action you are expecting to score"),null):(console.error("The CreateAssessment call failed because the token was: "+o.tokenProperties.invalidReason),0)}function Ct({projectID:e,API_KEY:t,siteKey:r}){function s(n){return{token:n["g-recaptcha-token"],expectedAction:n["g-recaptcha-action"]}}return async(n,a)=>{let{token:o,expectedAction:i}=s(n.request.headers);if((await Ko({projectID:e,API_KEY:t,token:o,siteKey:r,expectedAction:i})||0)<.5){n.status=409;return}await a(n)}}var ns={basicAuth:Ke,cache:Ge,cors:Be,geoDecorator:ze,jwt:We,kvStorage:Ve,kvStorageBinding:Je,lambda:xe,loadbalancer:tt,logger:st,oauth2:dt,origin:ft,rateLimit:gt,response:pt,s3:yt,signature:wt,split:St,transform:bt,recaptcha:Ct};module.exports=class{constructor(t=[],r={}){this.router=new as.default,t.forEach(s=>{let n=r[s.handlerName]||ns[s.handlerName];if(!n)throw new Error(`Handler ${s.handlerName} is not supported`);this.router.add(s,n(s.options))})}async resolve(t){return this.router.resolve(t)}};
|
|
5
|
+
`)}async hexBodyHash(){let l=this.headers.get("X-Amz-Content-Sha256");if(l==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");l=c(await i(this.body||""))}return l}}async function o(d,l){let m=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",m,t.encode(l))}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),l=>("0"+l.toString(16)).slice(-2)).join("")}function h(d){return d.replace(/[!'()*]/g,l=>"%"+l.charCodeAt(0).toString(16).toUpperCase())}function f(d,l){let{hostname:m,pathname:y}=d,A=m.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[p,g]=(A||["",""]).slice(1,3);if(g==="us-gov")g="us-gov-west-1";else if(g==="s3"||g==="s3-accelerate")g="us-east-1",p="s3";else if(p==="iot")m.startsWith("iot.")?p="execute-api":m.startsWith("data.jobs.iot.")?p="iot-jobs-data":p=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(p==="autoscaling"){let T=(l.get("X-Amz-Target")||"").split(".")[0];T==="AnyScaleFrontendService"?p="application-autoscaling":T==="AnyScaleScalingPlannerFrontendService"&&(p="autoscaling-plans")}else g==null&&p.startsWith("s3-")?(g=p.slice(3).replace(/^fips-|^external-1/,""),p="s3"):p.endsWith("-fips")?p=p.slice(0,-5):g&&/-\d$/.test(p)&&!/-\d$/.test(g)&&([p,g]=[g,p]);return[r[p]||p,g]}e.AwsClient=n,e.AwsV4Signer=a,Object.defineProperty(e,"__esModule",{value:!0})})});var be=S((Ai,mr)=>{var zn="Expected a function",ir="__lodash_hash_undefined__",cr=1/0,Wn=9007199254740991,Vn="[object Function]",Jn="[object GeneratorFunction]",Xn="[object Symbol]",xn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yn=/^\w*$/,Zn=/^\./,Qn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ea=/[\\^$.*+?()[\]{}|]/g,ta=/\\(\\)?/g,ra=/^\[object .+?Constructor\]$/,sa=/^(?:0|[1-9]\d*)$/,na=typeof global=="object"&&global&&global.Object===Object&&global,aa=typeof self=="object"&&self&&self.Object===Object&&self,Ze=na||aa||Function("return this")();function oa(e,t){return e?.[t]}function ia(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ca=Array.prototype,ua=Function.prototype,ur=Object.prototype,Ye=Ze["__core-js_shared__"],sr=function(){var e=/[^.]+$/.exec(Ye&&Ye.keys&&Ye.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),hr=ua.toString,Ae=ur.hasOwnProperty,lr=ur.toString,ha=RegExp("^"+hr.call(Ae).replace(ea,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nr=Ze.Symbol,la=ca.splice,da=dr(Ze,"Map"),ne=dr(Object,"create"),ar=nr?nr.prototype:void 0,or=ar?ar.toString:void 0;function G(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function fa(){this.__data__=ne?ne(null):{}}function pa(e){return this.has(e)&&delete this.__data__[e]}function ma(e){var t=this.__data__;if(ne){var r=t[e];return r===ir?void 0:r}return Ae.call(t,e)?t[e]:void 0}function ga(e){var t=this.__data__;return ne?t[e]!==void 0:Ae.call(t,e)}function ya(e,t){var r=this.__data__;return r[e]=ne&&t===void 0?ir:t,this}G.prototype.clear=fa;G.prototype.delete=pa;G.prototype.get=ma;G.prototype.has=ga;G.prototype.set=ya;function x(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Aa(){this.__data__=[]}function wa(e){var t=this.__data__,r=we(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():la.call(t,r,1),!0}function Sa(e){var t=this.__data__,r=we(t,e);return r<0?void 0:t[r][1]}function ba(e){return we(this.__data__,e)>-1}function Ca(e,t){var r=this.__data__,s=we(r,e);return s<0?r.push([e,t]):r[s][1]=t,this}x.prototype.clear=Aa;x.prototype.delete=wa;x.prototype.get=Sa;x.prototype.has=ba;x.prototype.set=Ca;function B(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function va(){this.__data__={hash:new G,map:new(da||x),string:new G}}function Ea(e){return Se(this,e).delete(e)}function Ta(e){return Se(this,e).get(e)}function Oa(e){return Se(this,e).has(e)}function _a(e,t){return Se(this,e).set(e,t),this}B.prototype.clear=va;B.prototype.delete=Ea;B.prototype.get=Ta;B.prototype.has=Oa;B.prototype.set=_a;function ka(e,t,r){var s=e[t];(!(Ae.call(e,t)&&fr(s,r))||r===void 0&&!(t in e))&&(e[t]=r)}function we(e,t){for(var r=e.length;r--;)if(fr(e[r][0],t))return r;return-1}function Pa(e){if(!ye(e)||Fa(e))return!1;var t=Ka(e)||ia(e)?ha:ra;return t.test(ja(e))}function qa(e,t,r,s){if(!ye(e))return e;t=$a(t,e)?[t]:Ra(t);for(var n=-1,a=t.length,o=a-1,i=e;i!=null&&++n<a;){var c=Ia(t[n]),h=r;if(n!=o){var f=i[c];h=s?s(f,c,i):void 0,h===void 0&&(h=ye(f)?f:Na(t[n+1])?[]:{})}ka(i,c,h),i=i[c]}return e}function Ua(e){if(typeof e=="string")return e;if(et(e))return or?or.call(e):"";var t=e+"";return t=="0"&&1/e==-cr?"-0":t}function Ra(e){return pr(e)?e:Ma(e)}function Se(e,t){var r=e.__data__;return Ha(t)?r[typeof t=="string"?"string":"hash"]:r.map}function dr(e,t){var r=oa(e,t);return Pa(r)?r:void 0}function Na(e,t){return t=t??Wn,!!t&&(typeof e=="number"||sa.test(e))&&e>-1&&e%1==0&&e<t}function $a(e,t){if(pr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||et(e)?!0:Yn.test(e)||!xn.test(e)||t!=null&&e in Object(t)}function Ha(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Fa(e){return!!sr&&sr in e}var Ma=Qe(function(e){e=La(e);var t=[];return Zn.test(e)&&t.push(""),e.replace(Qn,function(r,s,n,a){t.push(n?a.replace(ta,"$1"):s||r)}),t});function Ia(e){if(typeof e=="string"||et(e))return e;var t=e+"";return t=="0"&&1/e==-cr?"-0":t}function ja(e){if(e!=null){try{return hr.call(e)}catch{}try{return e+""}catch{}}return""}function Qe(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(zn);var r=function(){var s=arguments,n=t?t.apply(this,s):s[0],a=r.cache;if(a.has(n))return a.get(n);var o=e.apply(this,s);return r.cache=a.set(n,o),o};return r.cache=new(Qe.Cache||B),r}Qe.Cache=B;function fr(e,t){return e===t||e!==e&&t!==t}var pr=Array.isArray;function Ka(e){var t=ye(e)?lr.call(e):"";return t==Vn||t==Jn}function ye(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Da(e){return!!e&&typeof e=="object"}function et(e){return typeof e=="symbol"||Da(e)&&lr.call(e)==Xn}function La(e){return e==null?"":Ua(e)}function Ga(e,t,r){return e==null?e:qa(e,t,r)}mr.exports=Ga});var Cr=S(nt=>{"use strict";nt.parse=Ya;nt.serialize=Za;var Ja=decodeURIComponent,Xa=encodeURIComponent,xa=/; */,ve=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function Ya(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},s=t||{},n=e.split(xa),a=s.decode||Ja,o=0;o<n.length;o++){var i=n[o],c=i.indexOf("=");if(!(c<0)){var h=i.substr(0,c).trim(),f=i.substr(++c,i.length).trim();f[0]=='"'&&(f=f.slice(1,-1)),r[h]==null&&(r[h]=Qa(f,a))}}return r}function Za(e,t,r){var s=r||{},n=s.encode||Xa;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!ve.test(e))throw new TypeError("argument name is invalid");var a=n(t);if(a&&!ve.test(a))throw new TypeError("argument val is invalid");var o=e+"="+a;if(s.maxAge!=null){var i=s.maxAge-0;if(isNaN(i)||!isFinite(i))throw new TypeError("option maxAge is invalid");o+="; Max-Age="+Math.floor(i)}if(s.domain){if(!ve.test(s.domain))throw new TypeError("option domain is invalid");o+="; Domain="+s.domain}if(s.path){if(!ve.test(s.path))throw new TypeError("option path is invalid");o+="; Path="+s.path}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(o+="; HttpOnly"),s.secure&&(o+="; Secure"),s.sameSite){var c=typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite;switch(c){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o}function Qa(e,t){try{return t(e)}catch{return e}}});var Er=S((Fi,vr)=>{"use strict";var Ee=1;function eo(){return Ee=(Ee*9301+49297)%233280,Ee/233280}function to(e){Ee=e}vr.exports={nextValue:eo,seed:to}});var ce=S((Mi,kr)=>{"use strict";var at=Er(),W="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",M,Tr,ie;function ot(){ie=!1}function Or(e){if(!e){M!==W&&(M=W,ot());return}if(e!==M){if(e.length!==W.length)throw new Error("Custom alphabet for shortid must be "+W.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter(function(r,s,n){return s!==n.lastIndexOf(r)});if(t.length)throw new Error("Custom alphabet for shortid must be "+W.length+" unique characters. These characters were not unique: "+t.join(", "));M=e,ot()}}function ro(e){return Or(e),M}function so(e){at.seed(e),Tr!==e&&(ot(),Tr=e)}function no(){M||Or(W);for(var e=M.split(""),t=[],r=at.nextValue(),s;e.length>0;)r=at.nextValue(),s=Math.floor(r*e.length),t.push(e.splice(s,1)[0]);return t.join("")}function _r(){return ie||(ie=no(),ie)}function ao(e){var t=_r();return t[e]}function oo(){return M||W}kr.exports={get:oo,characters:ro,seed:so,lookup:ao,shuffled:_r}});var qr=S((Ii,Pr)=>{"use strict";var it=typeof window=="object"&&(window.crypto||window.msCrypto),ct;!it||!it.getRandomValues?ct=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:ct=function(e){return it.getRandomValues(new Uint8Array(e))};Pr.exports=ct});var Rr=S((ji,Ur)=>{Ur.exports=function(e,t,r){for(var s=(2<<Math.log(t.length-1)/Math.LN2)-1,n=-~(1.6*s*r/t.length),a="";;)for(var o=e(n),i=n;i--;)if(a+=t[o[i]&s]||"",a.length===+r)return a}});var $r=S((Ki,Nr)=>{"use strict";var io=ce(),co=qr(),uo=Rr();function ho(e){for(var t=0,r,s="";!r;)s=s+uo(co,io.get(),1),r=e<Math.pow(16,t+1),t++;return s}Nr.exports=ho});var Mr=S((Li,Fr)=>{"use strict";var Te=$r(),Di=ce(),lo=1567752802062,fo=7,Oe,Hr;function po(e){var t="",r=Math.floor((Date.now()-lo)*.001);return r===Hr?Oe++:(Oe=0,Hr=r),t=t+Te(fo),t=t+Te(e),Oe>0&&(t=t+Te(Oe)),t=t+Te(r),t}Fr.exports=po});var jr=S((Gi,Ir)=>{"use strict";var mo=ce();function go(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+mo.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Ir.exports=go});var Dr=S((Bi,Kr)=>{"use strict";Kr.exports=0});var Br=S((zi,H)=>{"use strict";var ut=ce(),yo=Mr(),Ao=jr(),Lr=Dr()||0;function wo(e){return ut.seed(e),H.exports}function So(e){return Lr=e,H.exports}function bo(e){return e!==void 0&&ut.characters(e),ut.shuffled()}function Gr(){return yo(Lr)}H.exports=Gr;H.exports.generate=Gr;H.exports.seed=wo;H.exports.worker=So;H.exports.characters=bo;H.exports.isValid=Ao});var Wr=S((Wi,zr)=>{"use strict";zr.exports=Br()});var os=E(Ft());var xt=E($()),Tn={get:xt.default};function je(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function Ke(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return je(t);let s=Tn.get(t,"request.headers.authorization");if(!s||!s.startsWith("Basic "))return je(t);let n=e.users.map(i=>i.authToken),a=s.substring(6),o=n.indexOf(a);return o===-1?je(t):(t.state.user=e.users[o].username,r(t))}}var Yt=caches.default;async function On(e){return await Yt.match(e)}async function _n(e,t){return Yt.put(e.href,t)}var De={get:On,set:_n};async function kn(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 Zt=kn;function Pn(e,t={}){return Object.keys(t).reduce((r,s)=>r.replace(`{${s}}`,t[s]),e)}function Le(e){return[...e].reduce((t,r)=>{let s={};return s[r[0]]=r[1],{...t,...s}},{})}var C={resolveParams:Pn,instanceToJson:Le};var qn=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function Un(e){return["POST","PATCH"].indexOf(e.method)===-1?null:e.text()}async function Rn(e,t){if(!t)return e.event.request;let r=t.match(/{.*?}/gi).map(a=>a.slice(1,-1)),s={};for(let a=0;a<r.length;a+=1){let o=r[a],i=o.split(":");switch(i[0]){case"method":s[o]=e.request.method;break;case"path":s[o]=e.request.path;break;case"bodyHash":s[o]=await Zt(await Un(e.request));break;case"header":s[o]=e.request.headers[i[1]]||"";break;default:s[o]=o}}let n=encodeURIComponent(t.replace(/({(.*?)})/gi,(a,o,i)=>s[i]));return new Request(`http://${e.request.hostname}/${n}`)}function Ge({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=qn}){return async(s,n)=>{let a=await Rn(s,t),o=await De.get(a);if(o){s.body=o.body,s.status=o.status;let i=Le(o.headers);Object.keys(i).forEach(c=>{s.set(c,i[c])}),s.set("X-Cache-Hit",!0)}else{await n(s);let i;s.body.tee?[s.body,i]=s.body.tee():i=s.body;let c=new Response(i,{status:s.status});Object.keys(s.response.headers).forEach(h=>{r.indexOf(h.toLowerCase())===-1&&c.headers.set(h,s.response.headers[h])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),s.event.waitUntil(De.set(a,c))}}}function Be({allowedOrigins:e=["*"],allowedMethods:t=["GET","PUT","POST","PATCH","DELETE","HEAD","OPTIONS"],allowCredentials:r=!0,allowedHeaders:s=["Content-Type"],allowedExposeHeaders:n=["WWW-Authenticate","Server-Authorization"],maxAge:a=600,optionsSuccessStatus:o=204,terminatePreflight:i=!1}){return async(c,h)=>{let{method:f}=c.request,{origin:d}=c.request.headers,l=c.request.headers["access-control-request-headers"];if(Nn(c,d,e),$n(c,r),In(c,n),f==="OPTIONS"&&(Hn(c,t),Fn(c,l,s),Mn(c,a),i)){c.status=o,c.set("Content-Length","0"),c.body="";return}await h(c)}}function Nn(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 $n(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function Hn(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function Fn(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 Mn(e,t){t&&e.set("Access-Control-Max-Age",t)}function In(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var jn={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 ze(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=jn[r],await t(e)}}function Kn(e){let t=e.split("."),r=JSON.parse(atob(t[0])),s=JSON.parse(atob(t[1])),n=atob(t[2].replace(/-/g,"+").replace(/_/g,"/"));return{header:r,payload:s,signature:n,raw:{header:t[0],payload:t[1],signature:t[2]}}}function We({jwksUri:e,allowPublicAccess:t=!1}){async function r(){return(await(await fetch(e)).json()).keys}async function s(a){let i=new TextEncoder().encode([a.raw.header,a.raw.payload].join(".")),c=new Uint8Array(Array.from(a.signature).map(d=>d.charCodeAt(0))),h=await r();return(await Promise.all(h.map(async d=>{let l=await crypto.subtle.importKey("jwk",d,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",l,c,i)}))).some(d=>d)}async function n(a,o){if(a.request.method==="OPTIONS")return o(a);if((a.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let c=Kn(a.request.headers.authorization.slice(7)),h=new Date(c.payload.exp*1e3),f=new Date(Date.now());if(h<=f)return!1;if(await s(c))return a.state.user=c.payload,o(a)}return t?o(a):(a.status=403,a.body="Forbidden",a)}return n}var Qt=E($()),Dn={get:Qt.default},L=class{constructor({accountId:t,namespace:r,authEmail:s,authKey:n,ttl:a}){this.accountId=t,this.namespace=r,this.authEmail=s,this.authKey=n,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 s=`${this.getNamespaceUrl()}/keys?prefix=${t}&limit=${r}`,n=await fetch(s,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});return n.ok?n.json():null}async get(t,r){let s=this.getUrlForKey(t),n=await fetch(s,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});if(n.ok)switch(r){case"json":return n.json();case"stream":return n;case"arrayBuffer":return n.arrayBuffer();default:return n.text()}return null}async getWithMetadata(t,r){let[s,n]=await Promise.all([this.get(t,r),this.list(t)]),a=Dn.get(n,"result.0.metadata",{});return{value:s,metadata:a}}async put(t,r,s={}){let n=this.getUrlForKey(t),a=new URLSearchParams;this.ttl&&a.append("expiration_ttl",this.ttl.toString());let o={"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey};n.search=a.toString();let i=new FormData;return i.append("value",r),i.append("metadata",JSON.stringify(s)),(await fetch(n.toString(),{method:"PUT",headers:o,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 q={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 Ln(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Ve({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:s,kvBasePath:n="",kvKey:a="{file}",defaultExtension:o="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:h={},mode:f="rest"}){let d=new L({accountId:e,namespace:t,authEmail:r,authKey:s,mode:f}),l={...q.mime,...h};return async m=>{let y=C.resolveParams(a,m.params),A=y===""&&i?i:Ln(y,o),p=await d.get(n+A);!p&&c&&(p=await d.get(n+c)),p?(m.status=200,m.body=p,m.set("Content-Type",l[A.split(".").pop()]||"text/plain")):(m.status=404,m.body=q.http.statusMessages[404],m.set("Content-Type","text/plain"))}}var er=E($());var Je={get:er.default};function Gn(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Bn(e,t){let r=Je.get(e,"headers.if-none-match"),s=Je.get(t,"metadata.headers.etag");return r?r===s:!1}function Xe({kvNamespaceBinding:e,kvBasePath:t="",kvKey:r="{file}",defaultExtension:s="html",defaultIndexDocument:n,defaultErrorDocument:a}){async function o(i){return await global[e].getWithMetadata(i)}return async i=>{let c=C.resolveParams(r,i.params),h=c===""&&n?n:Gn(c,s),f=await o(t+h);if(!f&&a&&(f=await o(t+a)),f)if(Bn(i.request,f))i.status=304;else{i.status=f.status,i.body=f.value;let d=Je.get(f,"metadata.headers",{});Object.keys(d).forEach(l=>{i.set(l,d[l])})}else i.status=404,i.body=q.http.statusMessages[404],i.set("Content-Type","text/plain")}}var rr=E(ge());function xe({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:s}){let n=new rr.AwsClient({accessKeyId:e,secretAccessKey:t});return async a=>{let o=`https://lambda.${r}.amazonaws.com/2015-03-31/functions/${s}/invocations`,i={},c=await n.fetch(o,{body:JSON.stringify(i)});a.status=c.status,a.body=c.body;let h=C.instanceToJson(c.headers);Object.keys(h).forEach(f=>{a.set(f,h[f])})}}var yr=E($()),Ar=E(be());var gr={get:yr.default,set:Ar.default};function Ba(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function za(e){return e[Math.floor(Math.random()*e.length)]}function tt({sources:e=[]}){return async t=>{let r=za(e),s={method:t.request.method,headers:Ba(t.request.headers),redirect:"manual",cf:t.request.cf};if(q.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&gr.get(t,"event.request.body")){let i=t.event.request.clone();s.body=i.body}let n=C.resolveParams(r.url,t.params);if(r.resolveOverride){let i=C.resolveParams(r.resolveOverride,t.request.params);gr.set(s,"cf.resolveOverride",i)}let a=await fetch(n+t.request.search,s);t.body=a.body,t.status=a.status;let o=C.instanceToJson(a.headers);Object.keys(o).forEach(i=>{t.set(i,o[i])})}}var br=E($());var rt={name:"@ahmadissa/cloudworker-proxy",version:"1.0.10",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:"Markus Ahlstrand",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","cloudworker-router":"1.11.2",cookie:"0.4.1","lodash.get":"4.4.2","lodash.set":"4.3.2",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 z=class{constructor({maxSize:t=10,maxSeconds:r=10,sink:s}){this.maxSize=t,this.maxSeconds=r,this.queue=[],this.sink=s,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,s)=>{this.resolveTimer=r,this.rejectTimer=s,this.cancelationToken=setTimeout(async()=>{try{r(await this.flush())}catch(n){s(n)}},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 wr(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((s,n)=>e[n]==null?s:{...s,...wr(e[n],t,r+n+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var Ce=wr;var ae=class{constructor(t){this.url=t.url,this.contentType=t.contentType,this.delimiter=t.delimiter,this.chunker=new z({sink:this.sendMessage.bind(this),...t})}async log(t){let r=Ce(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 Sr=E(ge());var oe=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new z({sink:this.sendMessage.bind(this),...t}),this.awsClient=new Sr.AwsClient({accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,region:t.region}),this.streamName=t.streamName,this.region=t.region}async log(t){let r=Ce(t,this.delimiter);await this.chunker.push(JSON.stringify(r))}async sendMessage(t){let r=btoa(`${JSON.stringify(t)}
|
|
7
|
+
`),s=JSON.stringify({DeliveryStreamName:this.streamName,Record:{Data:r}}),n=`https://firehose.${this.region}.amazonaws.com`,a=new Request(n,{method:"POST",body:s,headers:{"X-Amz-Target":"Firehose_20150804.PutRecord","Content-Type":" application/x-amz-json-1.1"}});return this.awsClient.fetch(a)}};var k={get:br.default};async function Va(e){return["POST","PATCH"].indexOf(e.method)===-1?null:e.text()}function st(e){let t;switch(e.type){case"http":t=new ae(e);break;case"kinesis":t=new oe(e);break;default:throw new Error(`Log service type not supported: ${e.type}`)}return async(r,s)=>{r.state["logger-startDate"]=new Date;let n=await Va(r.request);try{await s(r);let a={message:"START",requestIp:k.get(r,"request.headers.x-real-ip"),requestId:k.get(r,"request.requestId"),request:{headers:k.get(r,"request.headers"),method:k.get(r,"request.method"),url:k.get(r,"request.href"),protocol:k.get(r,"request.protocol"),body:n},response:{status:r.status,headers:k.get(r,"response.headers")},handlers:k.get(r,"state.handlers",[]).join(","),route:k.get(r,"route.name"),timestamp:new Date().toISOString(),ttfb:new Date-r.state["logger-startDate"],redirectUrl:r.userRedirect,severity:30,proxyVersion:rt.version};r.event.waitUntil(t.log(a))}catch(a){let o={request:{headers:k.get(r,"request.headers"),method:k.get(r,"request.method"),handlers:k.get(r,"state.handlers",[]).join(","),url:k.get(r,"request.href"),body:n},message:"ERROR",stack:a.stack,error:a.message,severity:50,proxyVersion:rt.version};r.event.waitUntil(t.log(o))}}}var ue=E(Cr()),xr=E($()),Yr=E(be()),Zr=E(Wr());async function ht({refresh_token:e,authDomain:t,clientId:r,clientSecret:s}){let n=`${t}/oauth/token`,a=await fetch(n,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:r,client_secret:s,refresh_token:e})});if(!a.ok)throw new Error("Authentication failed");let o=await a.json();return{...o,expires:Date.now()+o.expires_in*1e3,refresh_token:e}}var Vr="PBKDF2",lt="AES-GCM",Co="SHA-256",vo="raw";function Eo(e){let t=atob(e.replace(/_/g,"/").replace(/-/g,"+")),r=t.length,s=new Uint8Array(r);for(let n=0;n<r;n+=1)s[n]=t.charCodeAt(n);return s.buffer}function Jr(e){let t="",r=new Uint8Array(e),s=r.byteLength;for(let n=0;n<s;n+=1)t+=String.fromCharCode(r[n]);return btoa(t).replace(/\//g,"_").replace(/\+/g,"-")}function To(e){return String.fromCharCode.apply(null,new Uint16Array(e))}function Oo(e){let t=new ArrayBuffer(e.length*2),r=new Uint16Array(t);for(let s=0,n=e.length;s<n;s+=1)r[s]=e.charCodeAt(s);return t}async function _o(e){let t=new TextEncoder;return crypto.subtle.importKey(vo,t.encode(e),{name:Vr},!1,["deriveKey"])}async function ko(e,t){let r=await _o(e),n=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:Vr,salt:n,iterations:1e3,hash:{name:Co}},r,{name:lt,length:256},!0,["encrypt","decrypt"])}async function Po(){let e=crypto.getRandomValues(new Uint8Array(8));return Jr(e)}async function qo(e,t){let r=Eo(t),s=r.slice(0,16),n=r.slice(16),a=await crypto.subtle.decrypt({name:lt,iv:s},e,n);return To(a)}async function Uo(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),s=await crypto.subtle.encrypt({name:lt,iv:r},e,Oo(t)),n=new Uint8Array(s.byteLength+r.byteLength);return n.set(r,0),n.set(new Uint8Array(s),r.byteLength),Jr(n)}var V={decrypt:qo,deriveAesGcmKey:ko,encrypt:Uo,getSalt:Po};var Y={get:xr.default,set:Yr.default};function Xr({cookieHeader:e="",cookieName:t}){return ue.default.parse(e)[t]}function Ro(e){return Object.keys(e).map(t=>`${t}=${encodeURIComponent(e[t])}`).join("&")}function No(e=""){return e.split(",").indexOf("text/html")!==-1}function dt({cookieName:e="proxy",cookieHttpOnly:t=!0,allowPublicAccess:r=!1,kvAccountId:s,kvNamespace:n,kvAuthEmail:a,kvAuthKey:o,kvTtl:i=2592e3,oauth2AuthDomain:c,oauth2ClientId:h,oauth2ClientSecret:f,oauth2Audience:d,oauth2Scopes:l=[],oauth2CallbackPath:m="/callback",oauth2CallbackType:y="cookie",oauth2LogoutPath:A="/logout",oauth2LoginPath:p="/login",oauth2ServerTokenPath:g="/oauth/token",oauth2ServerAuthorizePath:T="",oauth2ServerLogoutPath:P}){let _=new L({accountId:s,namespace:n,authEmail:a,authKey:o,ttl:i}),I=c,Z=m,_e=y,ke=g,he=T,Pe=P,F=h,Q=f,U=d,le=A,w=p,te=l.join("%20");async function de(u,v){let b=`${I}${ke}`,O=await fetch(b,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:Ro({code:u,grant_type:"authorization_code",client_id:F,client_secret:Q,redirect_uri:v})});if(!O.ok)throw new Error("Authentication failed");let R=await O.json();return{...R,expires:Date.now()+R.expires_in*1e3}}async function is(u){if(Xr({cookieHeader:u.request.headers.cookie,cookieName:e})){let O=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.set("Set-Cookie",ue.default.serialize(e,"",{domain:`.${O}`,path:"/",maxAge:0}))}let b=Et(u);if(P){let O=encodeURIComponent(`${u.request.protocol}://${u.request.host}${b}`);u.set("Location",`${I}${Pe}?client_id=${F}&returnTo=${O}`)}else u.set("Location",b);u.status=302}async function cs(u){let v=u.request.href.split("?")[0],b=await de(u.request.query.code,v),O=Zr.default.generate(),R=await V.getSalt(),N=`${O}.${R}`,qe=await V.deriveAesGcmKey(O,R),j=await V.encrypt(qe,JSON.stringify(b));await _.put(O,j);let Ue=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.status=302,_e==="query"?u.set("Location",`${u.request.query.state}?auth=${N}`):(u.set("Set-Cookie",ue.default.serialize(e,N,{httpOnly:t,domain:`.${Ue}`,path:"/",maxAge:60*60*24*365})),u.set("Location",u.request.query.state))}async function us(u,v){let[b,O]=v.split("."),R=await _.get(b);if(R){let N=await V.deriveAesGcmKey(b,O),qe=await V.decrypt(N,R),j=JSON.parse(qe);if(j.expires<Date.now()){j=await ht({refresh_token:j.refresh_token,clientId:F,authDomain:I,clientSecret:Q});let Ue=await V.encrypt(N,JSON.stringify(j));await _.put(b,Ue)}u.state.accessToken=j.access_token,u.state.accessToken&&(u.request.headers.authorization=`bearer ${u.state.accessToken}`)}else{let N=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.set("Set-Cookie",ue.default.serialize(e,"",{domain:`.${N}`,maxAge:0}))}}function Et(u){let v=Y.get(u,"request.query.redirect-to");if(v)return v;let b=Y.get(u,"request.headers.referer");return b||"/"}async function hs(u){if(u.request.method==="OPTIONS")u.status=200;else{let v=Et(u),b=encodeURIComponent(v||"/"),O=encodeURIComponent(`${u.request.protocol}://${u.request.host}${Z}`);u.status=302,u.set("location",`${I}${he}/authorize?state=${b}&client_id=${F}&response_type=code&scope=${te}&audience=${U}&redirect_uri=${O}`)}}async function ls(u,v){if(u.request.method==="OPTIONS")await v(u);else if(Y.get(u,"request.headers.authorization","").toLowerCase().startsWith("bearer "))Y.set(u,"state.access_token",u.request.headers.authorization.slice(7)),await v(u);else{let b=Y.get(u,"request.query.auth")||Xr({cookieHeader:u.request.headers.cookie,cookieName:e});if(b&&await us(u,b),Y.get(u,"state.accessToken")||r)await v(u);else if(No(u.request.headers.accept)){let R=encodeURIComponent(u.request.href),N=encodeURIComponent(`${u.request.protocol}://${u.request.host}${Z}`);u.status=302,u.set("location",`${I}${he}/authorize?state=${R}&client_id=${F}&response_type=code&scope=${te}&audience=${U}&redirect_uri=${N}`)}else u.status=403,u.body="Forbidden"}}return async(u,v)=>{switch(u.request.path){case Z:await cs(u);break;case le:await is(u);break;case w:await hs(u);break;default:await ls(u,v)}}}var Qr=E($());var $o={get:Qr.default};function Ho(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function ft(e){let{localOriginOverride:t,backend:r}=e;return async s=>{let n=process.env.LOCAL?`${t||s.request.origin}${s.request.path}`:`${r}${s.request.path}`,a={headers:Ho(s.request.headers),method:s.request.method,redirect:"manual"};if(q.methodsMethodsWithBody.indexOf(s.request.method)!==-1&&$o.get(s,"event.request.body")){let c=s.event.request.clone();a.body=c.body}let o=await fetch(n,a);s.body=o.body,s.status=o.status;let i=C.instanceToJson(o.headers);Object.keys(i).forEach(c=>{s.set(c,i[c])})}}function pt({body:e="",headers:t={},status:r=200}){return async s=>{e instanceof Object?(s.body=JSON.stringify(e),s.set("Content-Type","application/json")):s.body=C.resolveParams(e,s.params),s.status=r,Object.keys(t).forEach(n=>{s.set(n,C.resolveParams(t[n],s.params))})}}var es=E($()),ts=E(be()),mt={get:es.default,set:ts.default};function gt({type:e="IP",scope:t="default",limit:r=1e3}){let s={};function n(o,i){let c=i["x-real-ip"];return e==="IP"?`minute.${o}.${t}.${c}`:`minute.${o}.${t}.account`}function a(o){let i=mt.get(s,"minutes",{});Object.keys(i).forEach(c=>{c!==o&&delete s.minutes.minute})}return async(o,i)=>{let c=Math.trunc(Date.now()/6e4),h=Math.trunc(c*60+60-Date.now()/1e3),f=n(c,o.request.headers),d=mt.get(s,f,0);if(["HEAD","OPTIONS"].indexOf(o.request.method)===-1&&(d+=1),mt.set(s,f,d),r<d){o.status=429;return}a(c),await i(o)}}var rs=E(ge());function Fo(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:s,endpoint:n,forcePathStyle:a,enableBucketOperations:o=!1}){let i=new rs.AwsClient({accessKeyId:e,region:s,secretAccessKey:t}),c=Fo(n,{region:s,bucket:r,forcePathStyle:a});return async h=>{if(h.params.file===void 0&&!o){h.status=404,h.body=q.http.statusMessages[404],h.set("Content-Type","text/plain");return}let f=h.params.file?C.resolveParams(`${c}/{file}`,h.params):c,d={};h.request.headers.range&&(d.range=h.request.headers.range);let l=await i.fetch(f,{method:h.method||h.request.method,headers:d});h.status=l.status,h.body=l.body;let m=C.instanceToJson(l.headers);Object.keys(m).forEach(y=>{h.set(y,m[y])})}}var At;function ss(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Mo(e){return At||(At=await crypto.subtle.importKey("raw",ss(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),At}async function Io(e,t){let r=await Mo(t),s=await crypto.subtle.sign({name:"HMAC"},r,ss(e));return btoa(String.fromCharCode.apply(null,new Uint8Array(s))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function wt({secret:e}){return async(t,r)=>{let s=(t.request.path+t.request.search).replace(/([?|&]sign=[\w|-]+)/,"");if(await Io(s,e)!==t.query.sign){t.status=403;return}await r(t)}}function St({host:e}){if(!e)throw new Error("Need to specify a host for the split middleware.");return async(t,r)=>{let s=t.clone();s.cloned=!0,s.request={...s.request,href:s.request.href.replace(s.request.href,e),host:e},t.event.waitUntil(r(s)),await r(t)}}async function jo(e,t,r){let s=e.getReader(),n=t.getWriter(),a=new TextDecoder,o=new TextEncoder;for(;;){let{done:i,value:c}=await s.read();if(i)break;let h=a.decode(c),f=ns(h,r),d=o.encode(f);await n.write(d)}await n.close()}function Ko(e,t){return e.replace(/{{\$(\d)}}/g,(r,s)=>t[parseInt(s,10)])}function ns(e,t){return t.reduce((r,s)=>r.replace(s.regex,(...n)=>Ko(s.replace,n)),e)}function bt({transforms:e=[],statusCodes:t=[200]}){let r=e.map(s=>({regex:new RegExp(s.regex,"g"),replace:s.replace}));return async(s,n)=>{await n(s);let{body:a}=s;if(t.indexOf(s.status)!==-1)if(typeof a=="string")s.body=ns(a,r);else{let{readable:o,writable:i}=new TransformStream;jo(a,i,r),s.body=o}}}async function Do({projectID:e="your-project-id",API_KEY:t="GCP_API_KEY",token:r="action-token",siteKey:s="siteKey",expectedAction:n="action-name"}){let o=await(await fetch(`https://recaptchaenterprise.googleapis.com/v1/projects/${e}/assessments?key=${t}`,{body:JSON.stringify({event:{token:r,siteKey:s,expectedAction:n}}),headers:{"Content-Type":"application/json"},method:"POST"})).json();return o.tokenProperties.valid?o.tokenProperties.action===n?(o.riskAnalysis.reasons.forEach(i=>{console.log(i)}),o.riskAnalysis.score):(console.error("The action attribute in your reCAPTCHA tag does not match the action you are expecting to score"),null):(console.error("The CreateAssessment call failed because the token was: "+o.tokenProperties.invalidReason),0)}function Ct({projectID:e,API_KEY:t,siteKey:r}){function s(n){return{token:n["g-recaptcha-token"],expectedAction:n["g-recaptcha-action"]}}return async(n,a)=>{let{token:o,expectedAction:i}=s(n.request.headers);if((await Do({projectID:e,API_KEY:t,token:o,siteKey:r,expectedAction:i})||0)<.5){n.status=409;return}await a(n)}}function vt({rules:e}){return async(t,r)=>{t.body=JSON.stringify(t),t.status=200}}var as={basicAuth:Ke,cache:Ge,cors:Be,geoDecorator:ze,jwt:We,kvStorage:Ve,kvStorageBinding:Xe,lambda:xe,loadbalancer:tt,logger:st,oauth2:dt,origin:ft,rateLimit:gt,response:pt,s3:yt,signature:wt,split:St,transform:bt,recaptcha:Ct,userInputValidation:vt};module.exports=class{constructor(t=[],r={}){this.router=new os.default,t.forEach(s=>{let n=r[s.handlerName]||as[s.handlerName];if(!n)throw new Error(`Handler ${s.handlerName} is not supported`);this.router.add(s,n(s.options))})}async resolve(t){return this.router.resolve(t)}};
|
|
8
8
|
/*! Bundled license information:
|
|
9
9
|
|
|
10
10
|
aws4fetch/dist/aws4fetch.umd.js:
|