@ahmadissa/cloudworker-proxy 1.0.3 → 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 +2 -2
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
`),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!U.has("X-Amz-Expires")&&U.set("X-Amz-Expires","86400"),U.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),U.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),U.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch{this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");Pe||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=h(this.encodedPath);let le=new Set;this.encodedSearch=[...this.url.searchParams].filter(([w])=>{if(!w)return!1;if(this.service==="s3"){if(le.has(w))return!1;le.add(w)}return!0}).map(w=>w.map(ee=>h(encodeURIComponent(ee)))).sort(([w,ee],[te,de])=>w<te?-1:w>te?1:ee<de?-1:ee>de?1:0).map(w=>w.join("=")).join("&")}async sign(){return this.signQuery?(this.url.searchParams.set("X-Amz-Signature",await this.signature()),this.sessionToken&&this.appendSessionToken&&this.url.searchParams.set("X-Amz-Security-Token",this.sessionToken)):this.headers.set("Authorization",await this.authHeader()),{method:this.method,url:this.url,headers:this.headers,body:this.body}}async authHeader(){return["AWS4-HMAC-SHA256 Credential="+this.accessKeyId+"/"+this.credentialString,"SignedHeaders="+this.signedHeaders,"Signature="+await this.signature()].join(", ")}async signature(){let l=this.datetime.slice(0,8),m=[this.secretAccessKey,l,this.region,this.service].join(),y=this.cache.get(m);if(!y){let A=await o("AWS4"+this.secretAccessKey,l),p=await o(A,this.region),g=await o(p,this.service);y=await o(g,"aws4_request"),this.cache.set(m,y)}return c(await o(y,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,c(await i(await this.canonicalString()))].join(`
|
|
3
3
|
`)}async canonicalString(){return[this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+`
|
|
4
4
|
`,this.signedHeaders,await this.hexBodyHash()].join(`
|
|
5
|
-
`)}async hexBodyHash(){let l=this.headers.get("X-Amz-Content-Sha256");if(l==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new Error("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");l=c(await i(this.body||""))}return l}}async function o(d,l){let m=await crypto.subtle.importKey("raw",typeof d=="string"?t.encode(d):d,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",m,t.encode(l))}async function i(d){return crypto.subtle.digest("SHA-256",typeof d=="string"?t.encode(d):d)}function c(d){return Array.prototype.map.call(new Uint8Array(d),l=>("0"+l.toString(16)).slice(-2)).join("")}function h(d){return d.replace(/[!'()*]/g,l=>"%"+l.charCodeAt(0).toString(16).toUpperCase())}function f(d,l){let{hostname:m,pathname:y}=d,A=m.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[p,g]=(A||["",""]).slice(1,3);if(g==="us-gov")g="us-gov-west-1";else if(g==="s3"||g==="s3-accelerate")g="us-east-1",p="s3";else if(p==="iot")m.startsWith("iot.")?p="execute-api":m.startsWith("data.jobs.iot.")?p="iot-jobs-data":p=y==="/mqtt"?"iotdevicegateway":"iotdata";else if(p==="autoscaling"){let T=(l.get("X-Amz-Target")||"").split(".")[0];T==="AnyScaleFrontendService"?p="application-autoscaling":T==="AnyScaleScalingPlannerFrontendService"&&(p="autoscaling-plans")}else g==null&&p.startsWith("s3-")?(g=p.slice(3).replace(/^fips-|^external-1/,""),p="s3"):p.endsWith("-fips")?p=p.slice(0,-5):g&&/-\d$/.test(p)&&!/-\d$/.test(g)&&([p,g]=[g,p]);return[r[p]||p,g]}e.AwsClient=n,e.AwsV4Signer=a,Object.defineProperty(e,"__esModule",{value:!0})})});var be=S((yi,pr)=>{var Bn="Expected a function",or="__lodash_hash_undefined__",ir=1/0,zn=9007199254740991,Wn="[object Function]",Vn="[object GeneratorFunction]",Xn="[object Symbol]",Jn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/,Yn=/^\./,Zn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Qn=/[\\^$.*+?()[\]{}|]/g,ea=/\\(\\)?/g,ta=/^\[object .+?Constructor\]$/,ra=/^(?:0|[1-9]\d*)$/,sa=typeof global=="object"&&global&&global.Object===Object&&global,na=typeof self=="object"&&self&&self.Object===Object&&self,Ze=sa||na||Function("return this")();function aa(e,t){return e?.[t]}function oa(e){var t=!1;if(e!=null&&typeof e.toString!="function")try{t=!!(e+"")}catch{}return t}var ia=Array.prototype,ca=Function.prototype,cr=Object.prototype,Ye=Ze["__core-js_shared__"],rr=function(){var e=/[^.]+$/.exec(Ye&&Ye.keys&&Ye.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),ur=ca.toString,Ae=cr.hasOwnProperty,hr=cr.toString,ua=RegExp("^"+ur.call(Ae).replace(Qn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),sr=Ze.Symbol,ha=ia.splice,la=lr(Ze,"Map"),ne=lr(Object,"create"),nr=sr?sr.prototype:void 0,ar=nr?nr.toString:void 0;function G(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function da(){this.__data__=ne?ne(null):{}}function fa(e){return this.has(e)&&delete this.__data__[e]}function pa(e){var t=this.__data__;if(ne){var r=t[e];return r===or?void 0:r}return Ae.call(t,e)?t[e]:void 0}function ma(e){var t=this.__data__;return ne?t[e]!==void 0:Ae.call(t,e)}function ga(e,t){var r=this.__data__;return r[e]=ne&&t===void 0?or:t,this}G.prototype.clear=da;G.prototype.delete=fa;G.prototype.get=pa;G.prototype.has=ma;G.prototype.set=ga;function x(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function ya(){this.__data__=[]}function Aa(e){var t=this.__data__,r=we(t,e);if(r<0)return!1;var s=t.length-1;return r==s?t.pop():ha.call(t,r,1),!0}function wa(e){var t=this.__data__,r=we(t,e);return r<0?void 0:t[r][1]}function Sa(e){return we(this.__data__,e)>-1}function ba(e,t){var r=this.__data__,s=we(r,e);return s<0?r.push([e,t]):r[s][1]=t,this}x.prototype.clear=ya;x.prototype.delete=Aa;x.prototype.get=wa;x.prototype.has=Sa;x.prototype.set=ba;function B(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var s=e[t];this.set(s[0],s[1])}}function Ca(){this.__data__={hash:new G,map:new(la||x),string:new G}}function va(e){return Se(this,e).delete(e)}function Ea(e){return Se(this,e).get(e)}function Ta(e){return Se(this,e).has(e)}function Oa(e,t){return Se(this,e).set(e,t),this}B.prototype.clear=Ca;B.prototype.delete=va;B.prototype.get=Ea;B.prototype.has=Ta;B.prototype.set=Oa;function _a(e,t,r){var s=e[t];(!(Ae.call(e,t)&&dr(s,r))||r===void 0&&!(t in e))&&(e[t]=r)}function we(e,t){for(var r=e.length;r--;)if(dr(e[r][0],t))return r;return-1}function ka(e){if(!ye(e)||Ha(e))return!1;var t=ja(e)||oa(e)?ua:ta;return t.test(Ia(e))}function Pa(e,t,r,s){if(!ye(e))return e;t=Na(t,e)?[t]:Ua(t);for(var n=-1,a=t.length,o=a-1,i=e;i!=null&&++n<a;){var c=Ma(t[n]),h=r;if(n!=o){var f=i[c];h=s?s(f,c,i):void 0,h===void 0&&(h=ye(f)?f:Ra(t[n+1])?[]:{})}_a(i,c,h),i=i[c]}return e}function qa(e){if(typeof e=="string")return e;if(et(e))return ar?ar.call(e):"";var t=e+"";return t=="0"&&1/e==-ir?"-0":t}function Ua(e){return fr(e)?e:Fa(e)}function Se(e,t){var r=e.__data__;return $a(t)?r[typeof t=="string"?"string":"hash"]:r.map}function lr(e,t){var r=aa(e,t);return ka(r)?r:void 0}function Ra(e,t){return t=t??zn,!!t&&(typeof e=="number"||ra.test(e))&&e>-1&&e%1==0&&e<t}function Na(e,t){if(fr(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||et(e)?!0:xn.test(e)||!Jn.test(e)||t!=null&&e in Object(t)}function $a(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ha(e){return!!rr&&rr in e}var Fa=Qe(function(e){e=Da(e);var t=[];return Yn.test(e)&&t.push(""),e.replace(Zn,function(r,s,n,a){t.push(n?a.replace(ea,"$1"):s||r)}),t});function Ma(e){if(typeof e=="string"||et(e))return e;var t=e+"";return t=="0"&&1/e==-ir?"-0":t}function Ia(e){if(e!=null){try{return ur.call(e)}catch{}try{return e+""}catch{}}return""}function Qe(e,t){if(typeof e!="function"||t&&typeof t!="function")throw new TypeError(Bn);var r=function(){var s=arguments,n=t?t.apply(this,s):s[0],a=r.cache;if(a.has(n))return a.get(n);var o=e.apply(this,s);return r.cache=a.set(n,o),o};return r.cache=new(Qe.Cache||B),r}Qe.Cache=B;function dr(e,t){return e===t||e!==e&&t!==t}var fr=Array.isArray;function ja(e){var t=ye(e)?hr.call(e):"";return t==Wn||t==Vn}function ye(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ka(e){return!!e&&typeof e=="object"}function et(e){return typeof e=="symbol"||Ka(e)&&hr.call(e)==Xn}function Da(e){return e==null?"":qa(e)}function La(e,t,r){return e==null?e:Pa(e,t,r)}pr.exports=La});var br=S(nt=>{"use strict";nt.parse=xa;nt.serialize=Ya;var Va=decodeURIComponent,Xa=encodeURIComponent,Ja=/; */,ve=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function xa(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");for(var r={},s=t||{},n=e.split(Ja),a=s.decode||Va,o=0;o<n.length;o++){var i=n[o],c=i.indexOf("=");if(!(c<0)){var h=i.substr(0,c).trim(),f=i.substr(++c,i.length).trim();f[0]=='"'&&(f=f.slice(1,-1)),r[h]==null&&(r[h]=Za(f,a))}}return r}function Ya(e,t,r){var s=r||{},n=s.encode||Xa;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!ve.test(e))throw new TypeError("argument name is invalid");var a=n(t);if(a&&!ve.test(a))throw new TypeError("argument val is invalid");var o=e+"="+a;if(s.maxAge!=null){var i=s.maxAge-0;if(isNaN(i)||!isFinite(i))throw new TypeError("option maxAge is invalid");o+="; Max-Age="+Math.floor(i)}if(s.domain){if(!ve.test(s.domain))throw new TypeError("option domain is invalid");o+="; Domain="+s.domain}if(s.path){if(!ve.test(s.path))throw new TypeError("option path is invalid");o+="; Path="+s.path}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(o+="; HttpOnly"),s.secure&&(o+="; Secure"),s.sameSite){var c=typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite;switch(c){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o}function Za(e,t){try{return t(e)}catch{return e}}});var vr=S((Hi,Cr)=>{"use strict";var Ee=1;function Qa(){return Ee=(Ee*9301+49297)%233280,Ee/233280}function eo(e){Ee=e}Cr.exports={nextValue:Qa,seed:eo}});var ce=S((Fi,_r)=>{"use strict";var at=vr(),W="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-",M,Er,ie;function ot(){ie=!1}function Tr(e){if(!e){M!==W&&(M=W,ot());return}if(e!==M){if(e.length!==W.length)throw new Error("Custom alphabet for shortid must be "+W.length+" unique characters. You submitted "+e.length+" characters: "+e);var t=e.split("").filter(function(r,s,n){return s!==n.lastIndexOf(r)});if(t.length)throw new Error("Custom alphabet for shortid must be "+W.length+" unique characters. These characters were not unique: "+t.join(", "));M=e,ot()}}function to(e){return Tr(e),M}function ro(e){at.seed(e),Er!==e&&(ot(),Er=e)}function so(){M||Tr(W);for(var e=M.split(""),t=[],r=at.nextValue(),s;e.length>0;)r=at.nextValue(),s=Math.floor(r*e.length),t.push(e.splice(s,1)[0]);return t.join("")}function Or(){return ie||(ie=so(),ie)}function no(e){var t=Or();return t[e]}function ao(){return M||W}_r.exports={get:ao,characters:to,seed:ro,lookup:no,shuffled:Or}});var Pr=S((Mi,kr)=>{"use strict";var it=typeof window=="object"&&(window.crypto||window.msCrypto),ct;!it||!it.getRandomValues?ct=function(e){for(var t=[],r=0;r<e;r++)t.push(Math.floor(Math.random()*256));return t}:ct=function(e){return it.getRandomValues(new Uint8Array(e))};kr.exports=ct});var Ur=S((Ii,qr)=>{qr.exports=function(e,t,r){for(var s=(2<<Math.log(t.length-1)/Math.LN2)-1,n=-~(1.6*s*r/t.length),a="";;)for(var o=e(n),i=n;i--;)if(a+=t[o[i]&s]||"",a.length===+r)return a}});var Nr=S((ji,Rr)=>{"use strict";var oo=ce(),io=Pr(),co=Ur();function uo(e){for(var t=0,r,s="";!r;)s=s+co(io,oo.get(),1),r=e<Math.pow(16,t+1),t++;return s}Rr.exports=uo});var Fr=S((Di,Hr)=>{"use strict";var Te=Nr(),Ki=ce(),ho=1567752802062,lo=7,Oe,$r;function fo(e){var t="",r=Math.floor((Date.now()-ho)*.001);return r===$r?Oe++:(Oe=0,$r=r),t=t+Te(lo),t=t+Te(e),Oe>0&&(t=t+Te(Oe)),t=t+Te(r),t}Hr.exports=fo});var Ir=S((Li,Mr)=>{"use strict";var po=ce();function mo(e){if(!e||typeof e!="string"||e.length<6)return!1;var t=new RegExp("[^"+po.get().replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&")+"]");return!t.test(e)}Mr.exports=mo});var Kr=S((Gi,jr)=>{"use strict";jr.exports=0});var Gr=S((Bi,H)=>{"use strict";var ut=ce(),go=Fr(),yo=Ir(),Dr=Kr()||0;function Ao(e){return ut.seed(e),H.exports}function wo(e){return Dr=e,H.exports}function So(e){return e!==void 0&&ut.characters(e),ut.shuffled()}function Lr(){return go(Dr)}H.exports=Lr;H.exports.generate=Lr;H.exports.seed=Ao;H.exports.worker=wo;H.exports.characters=So;H.exports.isValid=yo});var zr=S((zi,Br)=>{"use strict";Br.exports=Gr()});var as=E(Ht());var Jt=E($()),En={get:Jt.default};function je(e){e.status=401,e.body="Unauthorized",e.set("WWW-Authenticate","Basic")}function Ke(e){return async(t,r)=>{if(t.request.path===e.logoutPath)return je(t);let s=En.get(t,"request.headers.authorization");if(!s||!s.startsWith("Basic "))return je(t);let n=e.users.map(i=>i.authToken),a=s.substring(6),o=n.indexOf(a);return o===-1?je(t):(t.state.user=e.users[o].username,r(t))}}var xt=caches.default;async function Tn(e){return await xt.match(e)}async function On(e,t){return xt.put(e.href,t)}var De={get:Tn,set:On};async function _n(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(a=>a.toString(16).padStart(2,"0")).join("")}var Yt=_n;function kn(e,t={}){return Object.keys(t).reduce((r,s)=>r.replace(`{${s}}`,t[s]),e)}function Le(e){return[...e].reduce((t,r)=>{let s={};return s[r[0]]=r[1],{...t,...s}},{})}var C={resolveParams:kn,instanceToJson:Le};var Pn=["x-ratelimit-count","x-ratelimit-limit","x-ratelimit-reset","x-cache-hit"];async function qn(e){return["POST","PATCH"].indexOf(e.method)===-1?null:e.text()}async function Un(e,t){if(!t)return e.event.request;let r=t.match(/{.*?}/gi).map(a=>a.slice(1,-1)),s={};for(let a=0;a<r.length;a+=1){let o=r[a],i=o.split(":");switch(i[0]){case"method":s[o]=e.request.method;break;case"path":s[o]=e.request.path;break;case"bodyHash":s[o]=await Yt(await qn(e.request));break;case"header":s[o]=e.request.headers[i[1]]||"";break;default:s[o]=o}}let n=encodeURIComponent(t.replace(/({(.*?)})/gi,(a,o,i)=>s[i]));return new Request(`http://${e.request.hostname}/${n}`)}function Ge({cacheDuration:e,cacheKeyTemplate:t,headerBlacklist:r=Pn}){return async(s,n)=>{let a=await Un(s,t),o=await De.get(a);if(o){s.body=o.body,s.status=o.status;let i=Le(o.headers);Object.keys(i).forEach(c=>{s.set(c,i[c])}),s.set("X-Cache-Hit",!0)}else{await n(s);let i;s.body.tee?[s.body,i]=s.body.tee():i=s.body;let c=new Response(i,{status:s.status});Object.keys(s.response.headers).forEach(h=>{r.indexOf(h.toLowerCase())===-1&&c.headers.set(h,s.response.headers[h])}),e&&(c.headers.delete("Cache-Control"),c.headers.set("Cache-Control",`max-age=${e}`)),s.event.waitUntil(De.set(a,c))}}}function Be({allowedOrigins:e=["*"],allowedMethods:t=["GET","PUT","POST","PATCH","DELETE","HEAD","OPTIONS"],allowCredentials:r=!0,allowedHeaders:s=["Content-Type"],allowedExposeHeaders:n=["WWW-Authenticate","Server-Authorization"],maxAge:a=600,optionsSuccessStatus:o=204,terminatePreflight:i=!1}){return async(c,h)=>{let{method:f}=c.request,{origin:d}=c.request.headers,l=c.request.headers["access-control-request-headers"];if(Rn(c,d,e),Nn(c,r),Mn(c,n),f==="OPTIONS"&&($n(c,t),Hn(c,l,s),Fn(c,a),i)){c.status=o,c.set("Content-Length","0"),c.body="";return}await h(c)}}function Rn(e,t,r){Array.isArray(r)&&(r[0]==="*"?e.set("Access-Control-Allow-Origin","*"):r.indexOf(t)!==-1&&(e.set("Access-Control-Allow-Origin",t),e.set("Vary","Origin")))}function Nn(e,t){t&&e.set("Access-Control-Allow-Credentials",t)}function $n(e,t){e.set("Access-Control-Allow-Methods",t.join(","))}function Hn(e,t,r){r.length===0&&t?e.set("Access-Control-Allow-Headers",t):r.length&&e.set("Access-Control-Allow-Headers",r.join(","))}function Fn(e,t){t&&e.set("Access-Control-Max-Age",t)}function Mn(e,t){t.length&&e.set("Access-Control-Expose-Headers",t.join(","))}var In={AF:"AS",AL:"EU",AQ:"AN",DZ:"AF",AS:"OC",AD:"EU",AO:"AF",AG:"NA",AZ:"EU",AR:"SA",AU:"OC",AT:"EU",BS:"NA",BH:"AS",BD:"AS",AM:"EU",BB:"NA",BE:"EU",BM:"NA",BT:"AS",BO:"SA",BA:"EU",BW:"AF",BV:"AN",BR:"SA",BZ:"NA",IO:"AS",SB:"OC",VG:"NA",BN:"AS",BG:"EU",MM:"AS",BI:"AF",BY:"EU",KH:"AS",CM:"AF",CA:"NA",CV:"AF",KY:"NA",CF:"AF",LK:"AS",TD:"AF",CL:"SA",CN:"AS",TW:"AS",CX:"AS",CC:"AS",CO:"SA",KM:"AF",YT:"AF",CG:"AF",CD:"AF",CK:"OC",CR:"NA",HR:"EU",CU:"NA",CY:"EU",CZ:"EU",BJ:"AF",DK:"EU",DM:"NA",DO:"NA",EC:"SA",SV:"NA",GQ:"AF",ET:"AF",ER:"AF",EE:"EU",FO:"EU",FK:"SA",GS:"AN",FJ:"OC",FI:"EU",AX:"EU",FR:"EU",GF:"SA",PF:"OC",TF:"AN",DJ:"AF",GA:"AF",GE:"EU",GM:"AF",PS:"AS",DE:"EU",GH:"AF",GI:"EU",KI:"OC",GR:"EU",GL:"NA",GD:"NA",GP:"NA",GU:"OC",GT:"NA",GN:"AF",GY:"SA",HT:"NA",HM:"AN",VA:"EU",HN:"NA",HK:"AS",HU:"EU",IS:"EU",IN:"AS",ID:"AS",IR:"AS",IQ:"AS",IE:"EU",IL:"AS",IT:"EU",CI:"AF",JM:"NA",JP:"AS",KZ:"EU",JO:"AS",KE:"AF",KP:"AS",KR:"AS",KW:"AS",KG:"AS",LA:"AS",LB:"AS",LS:"AF",LV:"EU",LR:"AF",LY:"AF",LI:"EU",LT:"EU",LU:"EU",MO:"AS",MG:"AF",MW:"AF",MY:"AS",MV:"AS",ML:"AF",MT:"EU",MQ:"NA",MR:"AF",MU:"AF",MX:"NA",MC:"EU",MN:"AS",MD:"EU",ME:"EU",MS:"NA",MA:"AF",MZ:"AF",OM:"AS",NA:"AF",NR:"OC",NP:"AS",NL:"EU",AN:"NA",CW:"NA",AW:"NA",SX:"NA",BQ:"NA",NC:"OC",VU:"OC",NZ:"OC",NI:"NA",NE:"AF",NG:"AF",NU:"OC",NF:"OC",NO:"EU",MP:"OC",UM:"OC",FM:"OC",MH:"OC",PW:"OC",PK:"AS",PA:"NA",PG:"OC",PY:"SA",PE:"SA",PH:"AS",PN:"OC",PL:"EU",PT:"EU",GW:"AF",TL:"AS",PR:"NA",QA:"AS",RE:"AF",RO:"EU",RU:"EU",RW:"AF",BL:"NA",SH:"AF",KN:"NA",AI:"NA",LC:"NA",MF:"NA",PM:"NA",VC:"NA",SM:"EU",ST:"AF",SA:"AS",SN:"AF",RS:"EU",SC:"AF",SL:"AF",SG:"AS",SK:"EU",VN:"AS",SI:"EU",SO:"AF",ZA:"AF",ZW:"AF",ES:"EU",SS:"AF",EH:"AF",SD:"AF",SR:"SA",SJ:"EU",SZ:"AF",SE:"EU",CH:"EU",SY:"AS",TJ:"AS",TH:"AS",TG:"AF",TK:"OC",TO:"OC",TT:"NA",AE:"AS",TN:"AF",TR:"EU",TM:"AS",TC:"NA",TV:"OC",UG:"AF",UA:"EU",MK:"EU",EG:"AF",GB:"EU",GG:"EU",JE:"EU",IM:"EU",TZ:"AF",US:"NA",VI:"NA",BF:"AF",UY:"SA",UZ:"AS",VE:"SA",WF:"OC",WS:"OC",YE:"AS",ZM:"AF",XX:"XX"};function ze(){return async(e,t)=>{let r=e.request.headers["cf-ipcountry"]||"XX";e.request.headers["proxy-continent"]=In[r],await t(e)}}function jn(e){let t=e.split("."),r=JSON.parse(atob(t[0])),s=JSON.parse(atob(t[1])),n=atob(t[2].replace(/-/g,"+").replace(/_/g,"/"));return{header:r,payload:s,signature:n,raw:{header:t[0],payload:t[1],signature:t[2]}}}function We({jwksUri:e,allowPublicAccess:t=!1}){async function r(){return(await(await fetch(e)).json()).keys}async function s(a){let i=new TextEncoder().encode([a.raw.header,a.raw.payload].join(".")),c=new Uint8Array(Array.from(a.signature).map(d=>d.charCodeAt(0))),h=await r();return(await Promise.all(h.map(async d=>{let l=await crypto.subtle.importKey("jwk",d,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"]);return crypto.subtle.verify("RSASSA-PKCS1-v1_5",l,c,i)}))).some(d=>d)}async function n(a,o){if(a.request.method==="OPTIONS")return o(a);if((a.request.headers.authorization||"").toLowerCase().startsWith("bearer")){let c=jn(a.request.headers.authorization.slice(7)),h=new Date(c.payload.exp*1e3),f=new Date(Date.now());if(h<=f)return!1;if(await s(c))return a.state.user=c.payload,o(a)}return t?o(a):(a.status=403,a.body="Forbidden",a)}return n}var Zt=E($()),Kn={get:Zt.default},L=class{constructor({accountId:t,namespace:r,authEmail:s,authKey:n,ttl:a}){this.accountId=t,this.namespace=r,this.authEmail=s,this.authKey=n,this.ttl=a}getNamespaceUrl(){return new URL(`https://api.cloudflare.com/client/v4/accounts/${this.accountId}/storage/kv/namespaces/${this.namespace}`)}getUrlForKey(t){return new URL(`${this.getNamespaceUrl()}/values/${t}`)}async list(t,r=10){let s=`${this.getNamespaceUrl()}/keys?prefix=${t}&limit=${r}`,n=await fetch(s,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});return n.ok?n.json():null}async get(t,r){let s=this.getUrlForKey(t),n=await fetch(s,{headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}});if(n.ok)switch(r){case"json":return n.json();case"stream":return n;case"arrayBuffer":return n.arrayBuffer();default:return n.text()}return null}async getWithMetadata(t,r){let[s,n]=await Promise.all([this.get(t,r),this.list(t)]),a=Kn.get(n,"result.0.metadata",{});return{value:s,metadata:a}}async put(t,r,s={}){let n=this.getUrlForKey(t),a=new URLSearchParams;this.ttl&&a.append("expiration_ttl",this.ttl.toString());let o={"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey};n.search=a.toString();let i=new FormData;return i.append("value",r),i.append("metadata",JSON.stringify(s)),(await fetch(n.toString(),{method:"PUT",headers:o,body:r})).ok}async delete(t){let r=this.getUrlForKey(t);return fetch(r,{method:"DELETE",headers:{"X-Auth-Email":this.authEmail,"X-Auth-Key":this.authKey}})}};var q={methodsMethodsWithBody:["POST","PUT","PATCH"],http:{statusMessages:{404:"Not Found"}},mime:{css:"text/css",csv:"text/csv",html:"text/html",ico:"image/microsoft.vnd.icon",jpeg:"image/jpeg",js:"application/javascript",json:"application/json",png:"image/png",svg:"image/svg+xml",xml:"application/xml"}};function Dn(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Ve({kvAccountId:e,kvNamespace:t,kvAuthEmail:r,kvAuthKey:s,kvBasePath:n="",kvKey:a="{file}",defaultExtension:o="html",defaultIndexDocument:i,defaultErrorDocument:c,mime:h={},mode:f="rest"}){let d=new L({accountId:e,namespace:t,authEmail:r,authKey:s,mode:f}),l={...q.mime,...h};return async m=>{let y=C.resolveParams(a,m.params),A=y===""&&i?i:Dn(y,o),p=await d.get(n+A);!p&&c&&(p=await d.get(n+c)),p?(m.status=200,m.body=p,m.set("Content-Type",l[A.split(".").pop()]||"text/plain")):(m.status=404,m.body=q.http.statusMessages[404],m.set("Content-Type","text/plain"))}}var Qt=E($());var Xe={get:Qt.default};function Ln(e,t,r){if(e==="/"&&r)return r;let s=e.split("/").pop();return s.split(".").pop()!==s?e:`${e}.${t}`}function Gn(e,t){let r=Xe.get(e,"headers.if-none-match"),s=Xe.get(t,"metadata.headers.etag");return r?r===s:!1}function Je({kvNamespaceBinding:e,kvBasePath:t="",kvKey:r="{file}",defaultExtension:s="html",defaultIndexDocument:n,defaultErrorDocument:a}){async function o(i){return await global[e].getWithMetadata(i)}return async i=>{let c=C.resolveParams(r,i.params),h=c===""&&n?n:Ln(c,s),f=await o(t+h);if(!f&&a&&(f=await o(t+a)),f)if(Gn(i.request,f))i.status=304;else{i.status=f.status,i.body=f.value;let d=Xe.get(f,"metadata.headers",{});Object.keys(d).forEach(l=>{i.set(l,d[l])})}else i.status=404,i.body=q.http.statusMessages[404],i.set("Content-Type","text/plain")}}var tr=E(ge());function xe({accessKeyId:e,secretAccessKey:t,region:r,lambdaName:s}){let n=new tr.AwsClient({accessKeyId:e,secretAccessKey:t});return async a=>{let o=`https://lambda.${r}.amazonaws.com/2015-03-31/functions/${s}/invocations`,i={},c=await n.fetch(o,{body:JSON.stringify(i)});a.status=c.status,a.body=c.body;let h=C.instanceToJson(c.headers);Object.keys(h).forEach(f=>{a.set(f,h[f])})}}var gr=E($()),yr=E(be());var mr={get:gr.default,set:yr.default};function Ga(e){let t={};return Object.keys(e).forEach(r=>{r.startsWith("cf")||(t[r]=e[r])}),t}function Ba(e){return e[Math.floor(Math.random()*e.length)]}function tt({sources:e=[]}){return async t=>{let r=Ba(e),s={method:t.request.method,headers:Ga(t.request.headers),redirect:"manual",cf:t.request.cf};if(q.methodsMethodsWithBody.indexOf(t.request.method)!==-1&&mr.get(t,"event.request.body")){let i=t.event.request.clone();s.body=i.body}let n=C.resolveParams(r.url,t.params);if(r.resolveOverride){let i=C.resolveParams(r.resolveOverride,t.request.params);mr.set(s,"cf.resolveOverride",i)}let a=await fetch(n+t.request.search,s);t.body=a.body,t.status=a.status;let o=C.instanceToJson(a.headers);Object.keys(o).forEach(i=>{t.set(i,o[i])})}}var Sr=E($());var rt={name:"@ahmadissa/cloudworker-proxy",version:"1.0.3",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(`
|
|
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
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){function r(s){return{token:s["G-Recaptcha-Token"],expectedAction:s["G-Recaptcha-Action"]}}return async(s,n)=>{let{token:a,expectedAction:o}=r(s.request.headers);if((await Ko({projectID:e,API_KEY:t,token:a,expectedAction:o})||0)<.5){s.status=409;return}await n(s)}}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)}};
|
|
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:
|