@ahmadissa/cloudworker-proxy 1.0.2 → 1.0.4
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 +5 -5
- package/dist/index.js.map +4 -4
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";var hs=Object.create;var Ct=Object.defineProperty;var ls=Object.getOwnPropertyDescriptor;var ds=Object.getOwnPropertyNames;var fs=Object.getPrototypeOf,ps=Object.prototype.hasOwnProperty;var S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ms=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ds(t))!ps.call(e,n)&&n!==r&&Ct(e,n,{get:()=>t[n],enumerable:!(s=ls(t,n))||s.enumerable});return e};var E=(e,t,r)=>(r=e!=null?hs(fs(e)):{},ms(t||!e||!e.__esModule?Ct(r,"default",{value:e,enumerable:!0}):r,e));var Ne=S((Ko,Tt)=>{function gs({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,U,_)=>(h.push(_),"([^.]+)")),l=t.replace(/(:([^/]+))/g,(T,U,_)=>_.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 Et(e){return[...e].reduce((t,r)=>{let s={};return s[r[0]]=r[1],{...t,...s}},{})}async function ys(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 As(e){let t=new URL(e.url),r=Et(t.searchParams),s=Et(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 ys(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)}}Tt.exports={parseRoute:gs,parseRequest:As}});var _t=S((Do,Ot)=>{function ws(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 Ss(e,t){let r=!0;return Object.keys(e.headers).forEach(s=>{t.headers[s]!==e.headers[s]&&(r=!1)}),r}function bs(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)&&Ss(e,t)&&bs(e,t)&&(!e.excludePath||!e.excludePath.test(t.path))}async function ke(e,t){let[r,...s]=t;if(!r)return new Response("NOT_FOUND",{status:404});if(!vs(r,e.request))return ke(e,s);e.state.handlers=e.state.handlers||[],e.state.handlers.push(r.handlerName||r.handler.name),e.params=ws(e.request,r);try{return r.handler(e,async n=>ke(n,s))}catch(n){throw n.route=r.handler.name,n}}Ot.exports={recurseRoutes:ke}});var Ut=S((Lo,qt)=>{qt.exports={methods:{DELETE:"DELETE",GET:"GET",HEAD:"HEAD",OPTIONS:"OPTIONS",PATCH:"PATCH",POST:"POST"},statusMessages:{404:"Not found",429:"Rate limited"}}});var Nt=S((Go,Pt)=>{var Cs=Ne();Pt.exports=class Rt{constructor(t){this.request=Cs.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 $t=S((zo,kt)=>{var X=Ne(),Es=_t(),re=Ut(),Ts=Nt();kt.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 Ts(t);try{return await Es.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((Wo,Vt)=>{var Os="Expected a function",jt="__lodash_hash_undefined__",Kt=1/0,_s="[object Function]",qs="[object GeneratorFunction]",Us="[object Symbol]",Rs=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ps=/^\w*$/,Ns=/^\./,ks=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$s=/[\\^$.*+?()[\]{}|]/g,Hs=/\\(\\)?/g,Fs=/^\[object .+?Constructor\]$/,Ms=typeof global=="object"&&global&&global.Object===Object&&global,Is=typeof self=="object"&&self&&self.Object===Object&&self,He=Ms||Is||Function("return this")();function js(e,t){return e?.[t]}function Ks(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var Ds=Array.prototype,Ls=Function.prototype,Dt=Object.prototype,$e=He["__core-js_shared__"],Ht=function(){var e=/[^.]+$/.exec($e&&$e.keys&&$e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Lt=Ls.toString,Fe=Dt.hasOwnProperty,Gt=Dt.toString,Gs=RegExp("^"+Lt.call(Fe).replace($s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ft=He.Symbol,Bs=Ds.splice,zs=Bt(He,"Map"),se=Bt(Object,"create"),Mt=Ft?Ft.prototype:void 0,It=Mt?Mt.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 Ws(){this.__data__=se?se(null):{}}function Vs(e){return this.has(e)&&delete this.__data__[e]}function Xs(e){var t=this.__data__;if(se){var r=t[e];return r===jt?void 0:r}return Fe.call(t,e)?t[e]:void 0}function Js(e){var t=this.__data__;return se?t[e]!==void 0:Fe.call(t,e)}function xs(e,t){var r=this.__data__;return r[e]=se&&t===void 0?jt:t,this}K.prototype.clear=Ws;K.prototype.delete=Vs;K.prototype.get=Xs;K.prototype.has=Js;K.prototype.set=xs;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 Ys(){this.__data__=[]}function Zs(e){var t=this.__data__,r=fe(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():Bs.call(t,r,1),!0}function Qs(e){var t=this.__data__,r=fe(t,e);return r<0?void 0:t[r][1]}function en(e){return fe(this.__data__,e)>-1}function tn(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=Ys;J.prototype.delete=Zs;J.prototype.get=Qs;J.prototype.has=en;J.prototype.set=tn;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 rn(){this.__data__={hash:new K,map:new(zs||J),string:new K}}function sn(e){return pe(this,e).delete(e)}function nn(e){return pe(this,e).get(e)}function an(e){return pe(this,e).has(e)}function on(e,t){return pe(this,e).set(e,t),this}D.prototype.clear=rn;D.prototype.delete=sn;D.prototype.get=nn;D.prototype.has=an;D.prototype.set=on;function fe(e,t){for(var r=e.length;r--;)if(An(e[r][0],t))return r;return-1}function cn(e,t){t=dn(t,e)?[t]:ln(t);for(var r=0,s=t.length;e!=null&&r<s;)e=e[gn(t[r++])];return r&&r==s?e:void 0}function un(e){if(!Wt(e)||pn(e))return!1;var t=wn(e)||Ks(e)?Gs:Fs;return t.test(yn(e))}function hn(e){if(typeof e=="string")return e;if(Ie(e))return It?It.call(e):"";var t=e+"";return t=="0"&&1/e==-Kt?"-0":t}function ln(e){return zt(e)?e:mn(e)}function pe(e,t){var r=e.__data__;return fn(t)?r[typeof t=="string"?"string":"hash"]:r.map}function Bt(e,t){var r=js(e,t);return un(r)?r:void 0}function dn(e,t){if(zt(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Ie(e)?!0:Ps.test(e)||!Rs.test(e)||t!=null&&e in Object(t)}function fn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function pn(e){return!!Ht&&Ht in e}var mn=Me(function(e){e=bn(e);var t=[];return Ns.test(e)&&t.push(""),e.replace(ks,function(r,s,n,a){t.push(n?a.replace(Hs,"$1"):s||r)}),t});function gn(e){if(typeof e=="string"||Ie(e))return e;var t=e+"";return t=="0"&&1/e==-Kt?"-0":t}function yn(e){if(e!=null){try{return Lt.call(e)}catch{}try{return e+""}catch{}}return""}function Me(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Os);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 An(e,t){return e===t||e!==e&&t!==t}var zt=Array.isArray;function wn(e){var t=Wt(e)?Gt.call(e):"";return t==_s||t==qs}function Wt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Sn(e){return!!e&&typeof e=="object"}function Ie(e){return typeof e=="symbol"||Sn(e)&&Gt.call(e)==Us}function bn(e){return e==null?"":hn(e)}function vn(e,t,r){var s=e==null?void 0:cn(e,t);return s===void 0?r:s}Vt.exports=vn});var ge=S((me,Qt)=>{(function(e,t){typeof me=="object"&&typeof Qt<"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:U}){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=U||50}async sign(l,m){if(l instanceof Request){let{method:p,url:g,headers:T,body:U}=l;m=Object.assign({method:p,url:g,headers:T},m),m.body==null&&T.has("Content-Type")&&(m.body=U!=null&&T.has("X-Amz-Content-Sha256")?U: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:U,region:_,cache:I,datetime:Z,signQuery:_e,appendSessionToken:qe,allHeaders:he,singleEncode:Ue}){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;(!U||!_)&&([F,Q]=f(this.url,this.headers)),this.service=U||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=qe||this.service==="iotdevicegateway",this.headers.delete("Host");let P=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"),P.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&P.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
|
-
`),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!
|
|
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(`
|
|
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((mi,fr)=>{var Gn="Expected a function",ar="__lodash_hash_undefined__",or=1/0,Bn=9007199254740991,zn="[object Function]",Wn="[object GeneratorFunction]",Vn="[object Symbol]",Xn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Jn=/^\w*$/,xn=/^\./,Yn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zn=/[\\^$.*+?()[\]{}|]/g,Qn=/\\(\\)?/g,ea=/^\[object .+?Constructor\]$/,ta=/^(?:0|[1-9]\d*)$/,ra=typeof global=="object"&&global&&global.Object===Object&&global,sa=typeof self=="object"&&self&&self.Object===Object&&self,Ze=ra||sa||Function("return this")();function na(e,t){return e?.[t]}function aa(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var oa=Array.prototype,ia=Function.prototype,ir=Object.prototype,Ye=Ze["__core-js_shared__"],tr=function(){var e=/[^.]+$/.exec(Ye&&Ye.keys&&Ye.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),cr=ia.toString,Ae=ir.hasOwnProperty,ur=ir.toString,ca=RegExp("^"+cr.call(Ae).replace(Zn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),rr=Ze.Symbol,ua=oa.splice,ha=hr(Ze,"Map"),ne=hr(Object,"create"),sr=rr?rr.prototype:void 0,nr=sr?sr.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 la(){this.__data__=ne?ne(null):{}}function da(e){return this.has(e)&&delete this.__data__[e]}function fa(e){var t=this.__data__;if(ne){var r=t[e];return r===ar?void 0:r}return Ae.call(t,e)?t[e]:void 0}function pa(e){var t=this.__data__;return ne?t[e]!==void 0:Ae.call(t,e)}function ma(e,t){var r=this.__data__;return r[e]=ne&&t===void 0?ar:t,this}G.prototype.clear=la;G.prototype.delete=da;G.prototype.get=fa;G.prototype.has=pa;G.prototype.set=ma;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 ga(){this.__data__=[]}function ya(e){var t=this.__data__,r=we(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():ua.call(t,r,1),!0}function Aa(e){var t=this.__data__,r=we(t,e);return r<0?void 0:t[r][1]}function wa(e){return we(this.__data__,e)>-1}function Sa(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=ga;x.prototype.delete=ya;x.prototype.get=Aa;x.prototype.has=wa;x.prototype.set=Sa;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 ba(){this.__data__={hash:new G,map:new(ha||x),string:new G}}function va(e){return Se(this,e).delete(e)}function Ca(e){return Se(this,e).get(e)}function Ea(e){return Se(this,e).has(e)}function Ta(e,t){return Se(this,e).set(e,t),this}B.prototype.clear=ba;B.prototype.delete=va;B.prototype.get=Ca;B.prototype.has=Ea;B.prototype.set=Ta;function Oa(e,t,r){var s=e[t];(!(Ae.call(e,t)&&lr(s,r))||r===void 0&&!(t in e))&&(e[t]=r)}function we(e,t){for(var r=e.length;r--;)if(lr(e[r][0],t))return r;return-1}function _a(e){if(!ye(e)||$a(e))return!1;var t=Ia(e)||aa(e)?ca:ea;return t.test(Ma(e))}function qa(e,t,r,s){if(!ye(e))return e;t=Na(t,e)?[t]:Ra(t);for(var n=-1,a=t.length,o=a-1,i=e;i!=null&&++n<a;){var c=Fa(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:Pa(t[n+1])?[]:{})}Oa(i,c,h),i=i[c]}return e}function Ua(e){if(typeof e=="string")return e;if(et(e))return nr?nr.call(e):"";var t=e+"";return t=="0"&&1/e==-or?"-0":t}function Ra(e){return dr(e)?e:Ha(e)}function Se(e,t){var r=e.__data__;return ka(t)?r[typeof t=="string"?"string":"hash"]:r.map}function hr(e,t){var r=na(e,t);return _a(r)?r:void 0}function Pa(e,t){return t=t??Bn,!!t&&(typeof e=="number"||ta.test(e))&&e>-1&&e%1==0&&e<t}function Na(e,t){if(dr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||et(e)?!0:Jn.test(e)||!Xn.test(e)||t!=null&&e in Object(t)}function ka(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function $a(e){return!!tr&&tr in e}var Ha=Qe(function(e){e=Ka(e);var t=[];return xn.test(e)&&t.push(""),e.replace(Yn,function(r,s,n,a){t.push(n?a.replace(Qn,"$1"):s||r)}),t});function Fa(e){if(typeof e=="string"||et(e))return e;var t=e+"";return t=="0"&&1/e==-or?"-0":t}function Ma(e){if(e!=null){try{return cr.call(e)}catch{}try{return e+""}catch{}}return""}function Qe(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Gn);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 lr(e,t){return e===t||e!==e&&t!==t}var dr=Array.isArray;function Ia(e){var t=ye(e)?ur.call(e):"";return t==zn||t==Wn}function ye(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function ja(e){return!!e&&typeof e=="object"}function et(e){return typeof e=="symbol"||ja(e)&&ur.call(e)==Vn}function Ka(e){return e==null?"":Ua(e)}function Da(e,t,r){return e==null?e:qa(e,t,r)}fr.exports=Da});var Sr=S(nt=>{"use strict";nt.parse=Ja;nt.serialize=xa;var Wa=decodeURIComponent,Va=encodeURIComponent,Xa=/; */,Ce=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function Ja(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||Wa,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]=Ya(f,a))}}return r}function xa(e,t,r){var s=r||{},n=s.encode||Va;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!Ce.test(e))throw new TypeError("argument name is invalid");var a=n(t);if(a&&!Ce.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(!Ce.test(s.domain))throw new TypeError("option domain is invalid");o+="; Domain="+s.domain}if(s.path){if(!Ce.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 Ya(e,t){try{return t(e)}catch{return e}}});var vr=S((ki,br)=>{"use strict";var Ee=1;function Za(){return Ee=(Ee*9301+49297)%233280,Ee/233280}function Qa(e){Ee=e}br.exports={nextValue:Za,seed:Qa}});var ce=S(($i,Or)=>{"use strict";var at=vr(),W="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",M,Cr,ie;function ot(){ie=!1}function Er(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 eo(e){return Er(e),M}function to(e){at.seed(e),Cr!==e&&(ot(),Cr=e)}function ro(){M||Er(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 Tr(){return ie||(ie=ro(),ie)}function so(e){var t=Tr();return t[e]}function no(){return M||W}Or.exports={get:no,characters:eo,seed:to,lookup:so,shuffled:Tr}});var qr=S((Hi,_r)=>{"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))};_r.exports=ct});var Rr=S((Fi,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 Nr=S((Mi,Pr)=>{"use strict";var ao=ce(),oo=qr(),io=Rr();function co(e){for(var t=0,r,s="";!r;)s=s+io(oo,ao.get(),1),r=e<Math.pow(16,t+1),t++;return s}Pr.exports=co});var Hr=S((ji,$r)=>{"use strict";var Te=Nr(),Ii=ce(),uo=1567752802062,ho=7,Oe,kr;function lo(e){var t="",r=Math.floor((Date.now()-uo)*.001);return r===kr?Oe++:(Oe=0,kr=r),t=t+Te(ho),t=t+Te(e),Oe>0&&(t=t+Te(Oe)),t=t+Te(r),t}$r.exports=lo});var Mr=S((Ki,Fr)=>{"use strict";var fo=ce();function po(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+fo.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Fr.exports=po});var jr=S((Di,Ir)=>{"use strict";Ir.exports=0});var Lr=S((Li,H)=>{"use strict";var ut=ce(),mo=Hr(),go=Mr(),Kr=jr()||0;function yo(e){return ut.seed(e),H.exports}function Ao(e){return Kr=e,H.exports}function wo(e){return e!==void 0&&ut.characters(e),ut.shuffled()}function Dr(){return mo(Kr)}H.exports=Dr;H.exports.generate=Dr;H.exports.seed=yo;H.exports.worker=Ao;H.exports.characters=wo;H.exports.isValid=go});var Br=S((Gi,Gr)=>{"use strict";Gr.exports=Lr()});var ns=E($t());var Xt=E($()),Cn={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=Cn.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 Jt=caches.default;async function En(e){return await Jt.match(e)}async function Tn(e,t){return Jt.put(e.href,t)}var De={get:En,set:Tn};async function On(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 xt=On;function _n(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 v={resolveParams:_n,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 xt(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(Pn(c,d,e),Nn(c,r),Fn(c,n),f==="OPTIONS"&&(kn(c,t),$n(c,l,s),Hn(c,a),i)){c.status=o,c.set("Content-Length","0"),c.body="";return}await h(c)}}function Pn(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 kn(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function $n(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 Hn(e,t){t&&e.set("Access-Control-Max-Age",t)}function Fn(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var Mn={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"]=Mn[r],await t(e)}}function In(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=In(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 Yt=E($()),jn={get:Yt.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=jn.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 R={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 Kn(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={...R.mime,...h};return async m=>{let y=v.resolveParams(a,m.params),A=y===""&&i?i:Kn(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=R.http.statusMessages[404],m.set("Content-Type","text/plain"))}}var Zt=E($());var Xe={get:Zt.default};function Dn(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Ln(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=v.resolveParams(r,i.params),h=c===""&&n?n:Dn(c,s),f=await o(t+h);if(!f&&a&&(f=await o(t+a)),f)if(Ln(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=R.http.statusMessages[404],i.set("Content-Type","text/plain")}}var er=E(ge());function xe({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:s}){let n=new er.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=v.instanceToJson(c.headers);Object.keys(h).forEach(f=>{a.set(f,h[f])})}}var mr=E($()),gr=E(be());var pr={get:mr.default,set:gr.default};function La(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Ga(e){return e[Math.floor(Math.random()*e.length)]}function tt({sources:e=[]}){return async t=>{let r=Ga(e),s={method:t.request.method,headers:La(t.request.headers),redirect:"manual",cf:t.request.cf};if(R.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&pr.get(t,"event.request.body")){let i=t.event.request.clone();s.body=i.body}let n=v.resolveParams(r.url,t.params);if(r.resolveOverride){let i=v.resolveParams(r.resolveOverride,t.request.params);pr.set(s,"cf.resolveOverride",i)}let a=await fetch(n+t.request.search,s);t.body=a.body,t.status=a.status;let o=v.instanceToJson(a.headers);Object.keys(o).forEach(i=>{t.set(i,o[i])})}}var wr=E($());var rt={name:"@ahmadissa/cloudworker-proxy",version:"1.0.2",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:{"lodash.get":"4.4.2","lodash.set":"4.3.2",aws4fetch:"1.0.13","cloudworker-router":"1.11.2",shortid:"2.2.16",cookie:"0.4.1"},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 q={get:wr.default};async function za(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 za(r.request);try{await s(r);let a={message:"START",requestIp:q.get(r,"request.headers.x-real-ip"),requestId:q.get(r,"request.requestId"),request:{headers:q.get(r,"request.headers"),method:q.get(r,"request.method"),url:q.get(r,"request.href"),protocol:q.get(r,"request.protocol"),body:n},response:{status:r.status,headers:q.get(r,"response.headers")},handlers:q.get(r,"state.handlers",[]).join(","),route:q.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:q.get(r,"request.headers"),method:q.get(r,"request.method"),handlers:q.get(r,"state.handlers",[]).join(","),url:q.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(Sr()),Xr=E($()),Jr=E(be()),xr=E(Br());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 zr="PBKDF2",lt="AES-GCM",So="SHA-256",bo="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 Wr(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 Co(e){return String.fromCharCode.apply(null,new Uint16Array(e))}function Eo(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 To(e){let t=new TextEncoder;return crypto.subtle.importKey(bo,t.encode(e),{name:zr},!1,["deriveKey"])}async function Oo(e,t){let r=await To(e),n=new TextEncoder().encode(t.replace(/_/g,"/").replace(/-/g,"+"));return crypto.subtle.deriveKey({name:zr,salt:n,iterations:1e3,hash:{name:So}},r,{name:lt,length:256},!0,["encrypt","decrypt"])}async function _o(){let e=crypto.getRandomValues(new Uint8Array(8));return Wr(e)}async function qo(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 Co(a)}async function Uo(e,t){let r=crypto.getRandomValues(new Uint8Array(16)),s=await crypto.subtle.encrypt({name:lt,iv:r},e,Eo(t)),n=new Uint8Array(s.byteLength+r.byteLength);return n.set(r,0),n.set(new Uint8Array(s),r.byteLength),Wr(n)}var V={decrypt:qo,deriveAesGcmKey:Oo,encrypt:Uo,getSalt:_o};var Y={get:Xr.default,set:Jr.default};function Vr({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 Po(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:U}){let _=new L({accountId:s,namespace:n,authEmail:a,authKey:o,ttl:i}),I=c,Z=m,_e=y,qe=g,he=T,Ue=U,F=h,Q=f,P=d,le=A,w=p,te=l.join("%20");async function de(u,C){let b=`${I}${qe}`,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:C})});if(!O.ok)throw new Error("Authentication failed");let N=await O.json();return{...N,expires:Date.now()+N.expires_in*1e3}}async function as(u){if(Vr({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(U){let O=encodeURIComponent(`${u.request.protocol}://${u.request.host}${b}`);u.set("Location",`${I}${Ue}?client_id=${F}&returnTo=${O}`)}else u.set("Location",b);u.status=302}async function os(u){let C=u.request.href.split("?")[0],b=await de(u.request.query.code,C),O=xr.default.generate(),N=await V.getSalt(),k=`${O}.${N}`,Re=await V.deriveAesGcmKey(O,N),j=await V.encrypt(Re,JSON.stringify(b));await _.put(O,j);let Pe=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.status=302,_e==="query"?u.set("Location",`${u.request.query.state}?auth=${k}`):(u.set("Set-Cookie",ue.default.serialize(e,k,{httpOnly:t,domain:`.${Pe}`,path:"/",maxAge:60*60*24*365})),u.set("Location",u.request.query.state))}async function is(u,C){let[b,O]=C.split("."),N=await _.get(b);if(N){let k=await V.deriveAesGcmKey(b,O),Re=await V.decrypt(k,N),j=JSON.parse(Re);if(j.expires<Date.now()){j=await ht({refresh_token:j.refresh_token,clientId:F,authDomain:I,clientSecret:Q});let Pe=await V.encrypt(k,JSON.stringify(j));await _.put(b,Pe)}u.state.accessToken=j.access_token,u.state.accessToken&&(u.request.headers.authorization=`bearer ${u.state.accessToken}`)}else{let k=u.request.hostname.match(/[^.]+\.[^.]+$/i)[0];u.set("Set-Cookie",ue.default.serialize(e,"",{domain:`.${k}`,maxAge:0}))}}function vt(u){let C=Y.get(u,"request.query.redirect-to");if(C)return C;let b=Y.get(u,"request.headers.referer");return b||"/"}async function cs(u){if(u.request.method==="OPTIONS")u.status=200;else{let C=vt(u),b=encodeURIComponent(C||"/"),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=${P}&redirect_uri=${O}`)}}async function us(u,C){if(u.request.method==="OPTIONS")await C(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 C(u);else{let b=Y.get(u,"request.query.auth")||Vr({cookieHeader:u.request.headers.cookie,cookieName:e});if(b&&await is(u,b),Y.get(u,"state.accessToken")||r)await C(u);else if(Po(u.request.headers.accept)){let N=encodeURIComponent(u.request.href),k=encodeURIComponent(`${u.request.protocol}://${u.request.host}${Z}`);u.status=302,u.set("location",`${I}${he}/authorize?state=${N}&client_id=${F}&response_type=code&scope=${te}&audience=${P}&redirect_uri=${k}`)}else u.status=403,u.body="Forbidden"}}return async(u,C)=>{switch(u.request.path){case Z:await os(u);break;case le:await as(u);break;case w:await cs(u);break;default:await us(u,C)}}}var Yr=E($());var No={get:Yr.default};function ko(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:ko(s.request.headers),method:s.request.method,redirect:"manual"};if(R.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=v.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=v.resolveParams(e,s.params),s.status=r,Object.keys(t).forEach(n=>{s.set(n,v.resolveParams(t[n],s.params))})}}var Zr=E($()),Qr=E(be()),mt={get:Zr.default,set:Qr.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 es=E(ge());function $o(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 es.AwsClient({accessKeyId:e,region:s,secretAccessKey:t}),c=$o(n,{region:s,bucket:r,forcePathStyle:a});return async h=>{if(h.params.file===void 0&&!o){h.status=404,h.body=R.http.statusMessages[404],h.set("Content-Type","text/plain");return}let f=h.params.file?v.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=v.instanceToJson(l.headers);Object.keys(m).forEach(y=>{h.set(y,m[y])})}}var At;function ts(e){return new Uint8Array(e.split("").map(r=>r.charCodeAt(0)))}async function Ho(e){return At||(At=await crypto.subtle.importKey("raw",ts(e),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"])),At}async function Fo(e,t){let r=await Ho(t),s=await crypto.subtle.sign({name:"HMAC"},r,ts(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 Fo(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 Mo(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=rs(h,r),d=o.encode(f);await n.write(d)}await n.close()}function Io(e,t){return e.replace(/{{\$(\d)}}/g,(r,s)=>t[parseInt(s,10)])}function rs(e,t){return t.reduce((r,s)=>r.replace(s.regex,(...n)=>Io(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=rs(a,r);else{let{readable:o,writable:i}=new TransformStream;Mo(a,i,r),s.body=o}}}var ss={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};module.exports=class{constructor(t=[],r={}){this.router=new ns.default,t.forEach(s=>{let n=r[s.handlerName]||ss[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((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.4",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 Ar(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((s,n)=>e[n]==null?s:{...s,...Ar(e[n],t,r+n+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var Ce=Ar;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 wr=E(ge());var oe=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new z({sink:this.sendMessage.bind(this),...t}),this.awsClient=new wr.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: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(e,t,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)}};
|
|
8
8
|
/*! Bundled license information:
|
|
9
9
|
|
|
10
10
|
aws4fetch/dist/aws4fetch.umd.js:
|