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