@ahmadissa/cloudworker-proxy 1.0.1 → 1.0.2
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 +3 -3
- 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"&&!P.has("X-Amz-Expires")&&P.set("X-Amz-Expires","86400"),P.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),P.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),P.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,"/");Ue||(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.1",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(`
|
|
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
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 yr(e,t=".",r=""){return e instanceof Object?Object.keys(e).reduce((s,n)=>e[n]==null?s:{...s,...yr(e[n],t,r+n+t)},{}):r.endsWith(t)?{[r.slice(0,r.length-1)]:e}:{[r]:e}}var ve=yr;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=ve(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 Ar=E(ge());var oe=class{constructor(t){this.delimiter=t.delimiter,this.chunker=new z({sink:this.sendMessage.bind(this),...t}),this.awsClient=new Ar.AwsClient({accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,region:t.region}),this.streamName=t.streamName,this.region=t.region}async log(t){let r=ve(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 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}=e;return async r=>{let s=process.env.LOCAL?`${t||r.request.origin}${r.request.path}`:r.request.href,n={headers:ko(r.request.headers),method:r.request.method,redirect:"manual"};if(R.methodsMethodsWithBody.indexOf(r.request.method)!==-1&&No.get(r,"event.request.body")){let i=r.event.request.clone();n.body=i.body}let a=await fetch(s,n);r.body=a.body,r.status=a.status;let o=v.instanceToJson(a.headers);Object.keys(o).forEach(i=>{r.set(i,o[i])})}}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)}};
|
|
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)}};
|
|
8
8
|
/*! Bundled license information:
|
|
9
9
|
|
|
10
10
|
aws4fetch/dist/aws4fetch.umd.js:
|