@zuplo/graphql 5.1744.0 → 5.1748.0

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/index.minified.js CHANGED
@@ -32,7 +32,7 @@
32
32
  `))):c=e.stylize("[Circular]","special")),Dh(a)){if(o&&i.match(/^\d+$/))return c;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+c}s(Tu,"formatProperty");function Uw(e,t){if(Dh(t))return e.stylize("undefined","undefined");if(Uh(t)){let r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(Cw(t))return e.stylize(""+t,"number");if(Nw(t))return e.stylize(""+t,"boolean");if(Mh(t))return e.stylize("null","null")}s(Uw,"formatPrimitive");function Mw(e,t,r){let n=0;return e.reduce(function(o,a){return n++,a.indexOf(`
33
33
  `)>=0&&n++,o+a.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(t===""?"":t+`
34
34
  `)+" "+e.join(`,
35
- `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}s(Mw,"reduceToSingleString")});var Fh=g(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.format=void 0;var kw=Ch(),Hw=Hh(),Fw=s((e,...t)=>(0,kw.format)(Hw.inspect,e,t),"format");ho.format=Fw});var Sr=g(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.debug=Wt.withoutEnv=Wt.Debugger=void 0;var qw=xh(),$w=Fh(),fo=class{static{s(this,"Debugger")}manager;ns;color;last;enabled;constructor(t,r){this.manager=t,this.ns=r,this.color=(0,qw.generateColor)(r),this.last=0,this.enabled=t.enabled.some(n=>n.test(r))}log(...t){if(!this.enabled)return;let r,n=t[0];typeof n=="function"?r=n():r=String(n);let i=Date.now()-(this.last||Date.now());r=(0,$w.format)(r,...t);let o=`${this.color(this.ns)} ${r} ${this.color(`+${i}ms`)}`;console.log(o),this.last=Date.now()}};Wt.Debugger=fo;var mo=class{static{s(this,"DebugManager")}debuggers;enabled;constructor(t){this.debuggers=new Map,this.enabled=t??[]}};function qh(e){return!e||e.length===0?[]:(e=e.replace(/\s/g,"").replace(/\*/g,".+"),e.split(",").map(t=>new RegExp(`^${t}$`)))}s(qh,"extract");var ni;function jw(e){e||(e=[]),typeof e=="string"&&(e=qh(e)),ni=new mo(e)}s(jw,"withoutEnv");Wt.withoutEnv=jw;function Vw(e){let t=globalThis.DEBUG;ni||(ni=new mo(qh(t)));let r=new fo(ni,e);return ni.debuggers.set(e,r),Object.assign(r.log.bind(r),{self:r})}s(Vw,"debug");Wt.debug=Vw});var go=g(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.ProblemResponseFormatter=Vr.InternalProblemResponseFormatter=void 0;var Gw=C(),yo=class e{static{s(this,"InternalProblemResponseFormatter")}static problemResponseFormat=async t=>{let r=t.problem,n=JSON.stringify(r,null,2);return new Response(n,{status:t.problem.status,statusText:t.statusText,headers:{...t.additionalHeaders,"content-type":"application/problem+json"}})};static setProblemResponseFormat(t){t&&(e.problemResponseFormat=(r,n,i)=>{try{return t(r,n,i)}catch(o){throw new Gw.RuntimeError("Error in custom 'problemResponseFormat'",{cause:o})}})}};Vr.InternalProblemResponseFormatter=yo;var Pu=class{static{s(this,"ProblemResponseFormatter")}static async format(t,r,n){return await yo.problemResponseFormat(t,r,n)}};Vr.ProblemResponseFormatter=Pu});var jh=g(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.deepFreeze=void 0;function $h(e){for(let t in e){let r=e[t];r&&typeof r=="object"&&$h(r)}return Object.freeze(e)}s($h,"deepFreeze");bo.deepFreeze=$h});var He=g(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.ZuploRequest=void 0;var Vh=jh(),Au=class e extends Request{static{s(this,"ZuploRequest")}#e=void 0;#t;constructor(t,r){super(t,r);let n=r?.params;n?this.#t=n:t instanceof e?this.#t=t.#t:this.#t={};let i=r?.user;i?this.user=i:t instanceof e&&(this.user=t.user)}get query(){if(this.#e===void 0){let t={},r=new URL(this.url).searchParams;for(let[n,i]of r.entries())t[n]=i;this.#e=t}return(0,Vh.deepFreeze)(this.#e)}get params(){return(0,Vh.deepFreeze)(this.#t)}user};_o.ZuploRequest=Au});var gt=g(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.initializeRuntime=ye.invokeOnResponseSendingFinalExtensions=ye.invokeOnResponseSendingExtensions=ye.invokeOnRequestExtensions=ye.plugins=ye.runtimeExtensions=ye.SystemRuntimePlugin=ye.RuntimePlugin=void 0;var Gh=C(),Bw=go(),Kw=He(),wo=class{static{s(this,"RuntimePlugin")}};ye.RuntimePlugin=wo;var vo=class extends wo{static{s(this,"SystemRuntimePlugin")}async initialize(t){return Promise.resolve()}registerRoutes(t,r){}};ye.SystemRuntimePlugin=vo;ye.runtimeExtensions={};var Ru=[];ye.plugins=Ru;var Bh=[],Kh=[],Jh=[],Eo={addPlugin(e){Ru.push(e)},addRequestHook(e){Bh.push(e)},addResponseSendingHook(e){Kh.push(e)},addResponseSendingFinalHook(e){Jh.push(e)}},Jw=s(async(e,t)=>{let r=e;for(let n of Bh){let i=await n(r,t);if(i instanceof Kw.ZuploRequest)r=i;else{if(i instanceof Response)return i;throw new Gh.ConfigurationError(`Invalid state - the OnRequest hook must return a ZuploRequest or Response. Received ${typeof r}.`)}}return r},"invokeOnRequestExtensions");ye.invokeOnRequestExtensions=Jw;var zw=s(async(e,t,r)=>{let n=e;for(let i of Kh){let o=await i(e,t,r);if(o instanceof Response)n=o;else throw new Gh.ConfigurationError(`Invalid state - the OnResponseSending hook must return a Response. Received ${typeof n}.`)}return n},"invokeOnResponseSendingExtensions");ye.invokeOnResponseSendingExtensions=zw;var Ww=s(async(e,t,r)=>{for(let n of Jh)await n(e,t,r)},"invokeOnResponseSendingFinalExtensions");ye.invokeOnResponseSendingFinalExtensions=Ww;async function Qw(e=()=>Promise.resolve()){await e(Eo),ye.runtimeExtensions.value=Eo;for(let t of Ru)t instanceof vo&&await t.initialize(Eo);Bw.InternalProblemResponseFormatter.setProblemResponseFormat(Eo.problemResponseFormat)}s(Qw,"initializeRuntime");ye.initializeRuntime=Qw});var Ou=g(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.serialize=Qt.ContentTypes=void 0;Qt.ContentTypes={Json:"application/json",Form:"application/x-www-form-urlencoded"};function Yw(e,t){if(e!==null)return t&&typeof e=="string"?e:typeof e=="object"&&t?.startsWith(Qt.ContentTypes.Form)?new URLSearchParams(e).toString():typeof e=="object"&&t?.startsWith(Qt.ContentTypes.Json)||!t?JSON.stringify(e):e}s(Yw,"serialize");Qt.serialize=Yw});var Dt=g(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.Pipeline=void 0;var Nu=Ir(),zh=gt(),Zw=Ou(),xu=class{static{s(this,"Pipeline")}constructor(t){this.execute=this.#t(t)}execute;#e=(t,r)=>async(n,i)=>{try{return await t(n,i)}catch(o){return i.log.error("Error executing request handler.",o),r.errorHandler(n,i,o)}};#t=({processors:t,gateway:r,handler:n})=>async(i,o)=>{let a=[...t],c=s(async y=>{let E=a.pop();return E?E(i,o,r,c):await this.#e(async S=>{let U=await n(S,o);return Xw(U)},r)(y,o)},"nextPipe"),l=await c(i),d=new Nu.ResponseSendingEvent(i,l);o.dispatchEvent(d);let p=Nu.ZuploContextExtensions.getContextExtensions(o),m=p.latestRequest,h;try{h=await d.mutableResponse}catch(y){return o.log.error(y),r.errorHandler(i,o,y)}try{h=await p.onResponseSending(h,m,o)}catch(y){return o.log.error(`Error invoking 'context.onResponseSending' hook: '${y.message}'`,y),r.errorHandler(i,o,y)}try{h=await(0,zh.invokeOnResponseSendingExtensions)(h,m,o)}catch(y){return o.log.error(`Error invoking 'context.onResponseSending' hook: '${y.message}'`,y),r.errorHandler(i,o,y)}o.dispatchEvent(new Nu.ResponseSentEvent(i,h));try{await p.onResponseSendingFinal(l,m,o)}catch(y){throw o.log.error(`Error invoking 'runtime.onResponseSending' hook: '${y.message}'`,y),y}try{await(0,zh.invokeOnResponseSendingFinalExtensions)(l,m,o)}catch(y){throw o.log.error(`Error invoking 'runtime.onResponseSending' hook: '${y.message}'`,y),y}return h}};To.Pipeline=xu;function Xw(e){return e instanceof Response?e:typeof e>"u"?new Response:new Response((0,Zw.serialize)(e),{headers:{"content-type":"application/json"}})}s(Xw,"resultToResponse")});var Io=g(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.MetricsPlugin=void 0;var ev=gt(),Cu=class extends ev.RuntimePlugin{static{s(this,"MetricsPlugin")}};So.MetricsPlugin=Cu});var Ke=g(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.SystemLogMap=void 0;var tv=C(),Lu=class e{static{s(this,"SystemLogMap")}static#e=new WeakMap;static getLogger(t){let r=e.#e.get(t);if(!r){let n=`No system logger found for context with requestId '${t.requestId}'`;throw console.error(n),new tv.SystemError(n)}return r}static addLogger(t,r){e.#e.set(t,r)}};Po.SystemLogMap=Lu});var Te=g(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.BatchDispatch=void 0;var Du=class{static{s(this,"BatchDispatch")}constructor(t,r,n,i){this.#t=t,this.#o=r,this.#n=n,this.#r=i}#e=void 0;#t;#r;#n;#i=[];#o;enqueue=t=>{this.#i.push(t),this.#e||(this.#e=new Promise(r=>{setTimeout(()=>{if(this.#i.length>0){let n=[...this.#i];this.#i.length=0,this.#e=void 0,this.#n(n).catch(i=>{this.#r&&this.#r.error(`Uncaught error in BatchDispatcher named '${this.#t}'}`,i.message,i.stack)}).finally(()=>{r()})}},this.#o)}))};waitUntilFlushed=async()=>{if(this.#e)return this.#e}};Ao.BatchDispatch=Du});var Qh=g(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.EllieMetricsTransport=void 0;var Wh=Ke(),rv=Te(),Ro=Y(),Uu=class{static{s(this,"EllieMetricsTransport")}#e;#t;#r;constructor(t){this.#r=Ro.Environment.instance.loggingId,this.#e=t,this.#t=new rv.BatchDispatch("ellie-metrics-transport",10,this.dispatchFunction,Wh.SystemLogMap.getLogger(t))}pushMetrics(t,r){this.#r!==void 0&&(this.#t.enqueue(t),r.waitUntil(this.#t.waitUntilFlushed()))}dispatchFunction=async t=>{if(t.length===0)return;let r,{loggingId:n,remoteLogURL:i,deploymentName:o}=Ro.Environment.instance,a=t.map(c=>{let u=Object.assign({},c);return delete u.requestContentLength,delete u.responseContentLength,u});if(n&&o&&(r=`${i}/v1-alpha/metrics?loggingId=${encodeURI(n)}&deploymentName=${encodeURI(o)}`),r){let c=await fetch(r,{method:"POST",body:JSON.stringify(a),headers:{"content-type":"application/json","zp-dn":Ro.Environment.instance.deploymentName??"unknown","user-agent":Ro.Environment.instance.systemUserAgent}});if(!c.ok){let u=await c.text();Wh.SystemLogMap.getLogger(this.#e).error(`Metrics POST responded ${c.status}: ${c.statusText}`,u)}}}};Oo.EllieMetricsTransport=Uu});var st=g(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.systemNoVersion=Pr.SystemRouteConfiguration=void 0;var Mu=class{static{s(this,"SystemRouteConfiguration")}constructor({label:t,path:r,methods:n,systemRouteName:i,corsPolicy:o="none"}){this.label=t,this.path=r,this.methods=n,this.corsPolicy=o,this.version=Pr.systemNoVersion.name,this.handler={export:"SYSTEM_IGNORED",module:"SYSTEM_IGNORED"},this.systemRouteName=i}label;path;methods;handler;corsPolicy;version;policies;systemRouteName;raw(){return{}}};Pr.SystemRouteConfiguration=Mu;Pr.systemNoVersion={name:"__system-no-version",pathPrefix:""}});var Yt=g(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.metricsProcessor=void 0;var Yh=ri(),nv=Ir(),iv=gt(),ov=Io(),sv=Qh(),av=st(),cv=s(async(e,t,r,n)=>{let i=new Date,o=Date.now(),a=await n(e),c=e.headers.get(Yh.RAY_ID_HEADER)??void 0,u=e.headers.get(Yh.TRUE_CLIENT_IP)??void 0,l=t.incomingRequestProperties,d;t.route instanceof av.SystemRouteConfiguration&&(d=t.route.systemRouteName);let p=nv.ZuploContextExtensions.getContextExtensions(t).latestRequest,m={timestamp:i,statusCode:a.status,durationMs:Date.now()-o,requestContentLength:e.headers.get("content-length")?Number(e.headers.get("content-length")):void 0,responseContentLength:a.headers.get("content-length")?Number(a.headers.get("content-length")):void 0,routePath:t.route?.path??"SYSTEM_OR_NOT_FOUND",systemRouteName:d,requestId:t.requestId,method:e.method,asn:l.asn,asOrganization:l.asOrganization,colo:l.colo,continent:l.continent,country:l.country,city:l.city,latitude:l.latitude,longitude:l.longitude,rayId:c,instanceId:r.instanceId,userSub:p.user?.sub,clientIp:u},h=[];return h.push(new sv.EllieMetricsTransport(t)),iv.plugins.forEach(y=>{if(y instanceof ov.MetricsPlugin){let E=y.getTransport();h.push(E)}}),h.forEach(y=>{y.pushMetrics(m,t)}),a},"metricsProcessor");No.metricsProcessor=cv});var ku=g(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.SystemRouteName=void 0;var Zh;(function(e){e.Build="build-data",e.CorsPreflight="cors-preflight",e.DeveloperPortal="developer-portal",e.DeveloperPortalLegacy="developer-portal-legacy",e.StripePlugin="stripe-plugin",e.EmptyGatewayCatchall="empty-gateway-catchall",e.Ping="ping",e.UnmatchedPath="unmatched-path"})(Zh||(xo.SystemRouteName=Zh={}))});var ef=g(Xh=>{"use strict";Object.defineProperty(Xh,"__esModule",{value:!0})});var Ar=g(Zt=>{"use strict";var uv=Zt&&Zt.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),tf=Zt&&Zt.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&uv(t,e,r)};Object.defineProperty(Zt,"__esModule",{value:!0});tf(ku(),Zt);tf(ef(),Zt)});var rf=g(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.registerBuildRoute=void 0;var lv=Ut(),dv=Dt(),pv=Yt(),hv=Ar(),fv=st(),mv=Ke(),yv=Y(),gv=s((e,t)=>{let r=s(async(o,a)=>{let u=new URL(o.url).hostname.toLowerCase();if(!u.endsWith(".zuplo.app")&&!u.endsWith(".zuplo.dev")&&!u.endsWith(".fly.dev")&&!u.endsWith("zuplotest.com")&&u!=="localhost")return lv.HttpProblems.notFound(o,a);let l=yv.Environment.instance.build,d={buildId:l.BUILD_ID,zuploVersion:l.ZUPLO_VERSION,apiVersion:l.API_VERSION,gitSha:l.GIT_SHA,timestamp:l.TIMESTAMP,isProduction:l.IS_PRODUCTION},p=o.url.toString().split("?");return p.length>0&&new URLSearchParams(p[1]).get("system_log")==="true"&&mv.SystemLogMap.getLogger(a).error("Test System Log",d),new Response(JSON.stringify(d,null,2),{status:200,headers:{"content-type":"application/json"}})},"buildRouteHandler"),n=new dv.Pipeline({processors:[pv.metricsProcessor],handler:r,gateway:t}),i=new fv.SystemRouteConfiguration({label:"SYSTEM_BUILD_ROUTE",methods:["GET"],path:"/__zuplo/build",systemRouteName:hv.SystemRouteName.Build});e.addRoute(i,n.execute)},"registerBuildRoute");Co.registerBuildRoute=gv});var Hu=g(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.HTTP_STATUS_TITLES=Gr.HttpStatusCode=void 0;var nf;(function(e){e[e.CONTINUE=100]="CONTINUE",e[e.SWITCHING_PROTOCOLS=101]="SWITCHING_PROTOCOLS",e[e.PROCESSING=102]="PROCESSING",e[e.EARLY_HINTS=103]="EARLY_HINTS",e[e.OK=200]="OK",e[e.CREATED=201]="CREATED",e[e.ACCEPTED=202]="ACCEPTED",e[e.NON_AUTHORITATIVE_INFORMATION=203]="NON_AUTHORITATIVE_INFORMATION",e[e.NO_CONTENT=204]="NO_CONTENT",e[e.RESET_CONTENT=205]="RESET_CONTENT",e[e.PARTIAL_CONTENT=206]="PARTIAL_CONTENT",e[e.MULTI_STATUS=207]="MULTI_STATUS",e[e.ALREADY_REPORTED=208]="ALREADY_REPORTED",e[e.IM_USED=226]="IM_USED",e[e.MULTIPLE_CHOICES=300]="MULTIPLE_CHOICES",e[e.MOVED_PERMANENTLY=301]="MOVED_PERMANENTLY",e[e.FOUND=302]="FOUND",e[e.SEE_OTHER=303]="SEE_OTHER",e[e.NOT_MODIFIED=304]="NOT_MODIFIED",e[e.USE_PROXY=305]="USE_PROXY",e[e.SWITCH_PROXY=306]="SWITCH_PROXY",e[e.TEMPORARY_REDIRECT=307]="TEMPORARY_REDIRECT",e[e.PERMANENT_REDIRECT=308]="PERMANENT_REDIRECT",e[e.BAD_REQUEST=400]="BAD_REQUEST",e[e.UNAUTHORIZED=401]="UNAUTHORIZED",e[e.PAYMENT_REQUIRED=402]="PAYMENT_REQUIRED",e[e.FORBIDDEN=403]="FORBIDDEN",e[e.NOT_FOUND=404]="NOT_FOUND",e[e.METHOD_NOT_ALLOWED=405]="METHOD_NOT_ALLOWED",e[e.NOT_ACCEPTABLE=406]="NOT_ACCEPTABLE",e[e.PROXY_AUTHENTICATION_REQUIRED=407]="PROXY_AUTHENTICATION_REQUIRED",e[e.REQUEST_TIMEOUT=408]="REQUEST_TIMEOUT",e[e.CONFLICT=409]="CONFLICT",e[e.GONE=410]="GONE",e[e.LENGTH_REQUIRED=411]="LENGTH_REQUIRED",e[e.PRECONDITION_FAILED=412]="PRECONDITION_FAILED",e[e.CONTENT_TOO_LARGE=413]="CONTENT_TOO_LARGE",e[e.PAYLOAD_TOO_LARGE=413]="PAYLOAD_TOO_LARGE",e[e.URI_TOO_LONG=414]="URI_TOO_LONG",e[e.UNSUPPORTED_MEDIA_TYPE=415]="UNSUPPORTED_MEDIA_TYPE",e[e.RANGE_NOT_SATISFIABLE=416]="RANGE_NOT_SATISFIABLE",e[e.EXPECTATION_FAILED=417]="EXPECTATION_FAILED",e[e.I_AM_A_TEAPOT=418]="I_AM_A_TEAPOT",e[e.MISDIRECTED_REQUEST=421]="MISDIRECTED_REQUEST",e[e.UNPROCESSABLE_ENTITY=422]="UNPROCESSABLE_ENTITY",e[e.UNPROCESSABLE_CONTENT=422]="UNPROCESSABLE_CONTENT",e[e.LOCKED=423]="LOCKED",e[e.FAILED_DEPENDENCY=424]="FAILED_DEPENDENCY",e[e.TOO_EARLY=425]="TOO_EARLY",e[e.UPGRADE_REQUIRED=426]="UPGRADE_REQUIRED",e[e.PRECONDITION_REQUIRED=428]="PRECONDITION_REQUIRED",e[e.TOO_MANY_REQUESTS=429]="TOO_MANY_REQUESTS",e[e.REQUEST_HEADER_FIELDS_TOO_LARGE=431]="REQUEST_HEADER_FIELDS_TOO_LARGE",e[e.UNAVAILABLE_FOR_LEGAL_REASONS=451]="UNAVAILABLE_FOR_LEGAL_REASONS",e[e.INTERNAL_SERVER_ERROR=500]="INTERNAL_SERVER_ERROR",e[e.NOT_IMPLEMENTED=501]="NOT_IMPLEMENTED",e[e.BAD_GATEWAY=502]="BAD_GATEWAY",e[e.SERVICE_UNAVAILABLE=503]="SERVICE_UNAVAILABLE",e[e.GATEWAY_TIMEOUT=504]="GATEWAY_TIMEOUT",e[e.HTTP_VERSION_NOT_SUPPORTED=505]="HTTP_VERSION_NOT_SUPPORTED",e[e.VARIANT_ALSO_NEGOTIATES=506]="VARIANT_ALSO_NEGOTIATES",e[e.INSUFFICIENT_STORAGE=507]="INSUFFICIENT_STORAGE",e[e.LOOP_DETECTED=508]="LOOP_DETECTED",e[e.NOT_EXTENDED=510]="NOT_EXTENDED",e[e.NETWORK_AUTHENTICATION_REQUIRED=511]="NETWORK_AUTHENTICATION_REQUIRED"})(nf||(Gr.HttpStatusCode=nf={}));Gr.HTTP_STATUS_TITLES={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Content Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Content",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"}});var qu=g(Fu=>{"use strict";Object.defineProperty(Fu,"__esModule",{value:!0});var bv={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a Teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"};Fu.default=bv});var ae=g(Br=>{"use strict";var _v=Br&&Br.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Br,"__esModule",{value:!0});Br.HttpProblems=void 0;var Ev=ri(),N=Hu(),wv=_v(qu()),vv=Y(),$u=go();function Tv(e){return`${new URL(e.url).pathname}`}s(Tv,"instance");function Sv(e,t){let r={timestamp:new Date().toISOString(),requestId:t.requestId,buildId:vv.Environment.instance.build.BUILD_ID},n=e.headers.get(Ev.RAY_ID_HEADER);return n&&(r.rayId=n),r}s(Sv,"trace");var Iv=s((e,t,r,n,i)=>({problem:{type:e.type,title:e.title,status:e.status,detail:e.detail,instance:Tv(t),trace:Sv(t,r),...n},additionalHeaders:i,statusText:wv.default[e.status]}),"merge"),ju=class{static{s(this,"HttpProblemsBase")}static format=(t,r,n)=>"problem"in t?$u.ProblemResponseFormatter.format(t,r,n):$u.ProblemResponseFormatter.format({problem:t},r,n);static getProblemFromStatus(t,r){return{type:`https://httpproblems.com/http-status/${t}`,status:t,title:N.HTTP_STATUS_TITLES[t],...r}}},Vu=class extends ju{static{s(this,"HttpProblems")}static#e(t,r,n,i,o){let a=Iv(this.getProblemFromStatus(t),r,n,i,o);return $u.ProblemResponseFormatter.format(a,r,n)}static continue=(t,r,n,i)=>this.#e(N.HttpStatusCode.OK,t,r,n,i);static switchingProtocols=(t,r,n,i)=>this.#e(N.HttpStatusCode.SWITCHING_PROTOCOLS,t,r,n,i);static processing=(t,r,n,i)=>this.#e(N.HttpStatusCode.PROCESSING,t,r,n,i);static earlyHints=(t,r,n,i)=>this.#e(N.HttpStatusCode.EARLY_HINTS,t,r,n,i);static ok=(t,r,n,i)=>this.#e(N.HttpStatusCode.OK,t,r,n,i);static created=(t,r,n,i)=>this.#e(N.HttpStatusCode.CREATED,t,r,n,i);static accepted=(t,r,n,i)=>this.#e(N.HttpStatusCode.ACCEPTED,t,r,n,i);static nonAuthoritativeInformation=(t,r,n,i)=>this.#e(N.HttpStatusCode.NON_AUTHORITATIVE_INFORMATION,t,r,n,i);static noContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.NO_CONTENT,t,r,n,i);static resetContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.RESET_CONTENT,t,r,n,i);static partialContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.PARTIAL_CONTENT,t,r,n,i);static multiStatus=(t,r,n,i)=>this.#e(N.HttpStatusCode.MULTI_STATUS,t,r,n,i);static alreadyReported=(t,r,n,i)=>this.#e(N.HttpStatusCode.ALREADY_REPORTED,t,r,n,i);static imUsed=(t,r,n,i)=>this.#e(N.HttpStatusCode.IM_USED,t,r,n,i);static multipleChoices=(t,r,n,i)=>this.#e(N.HttpStatusCode.MULTIPLE_CHOICES,t,r,n,i);static movedPermanently=(t,r,n,i)=>this.#e(N.HttpStatusCode.MOVED_PERMANENTLY,t,r,n,i);static found=(t,r,n,i)=>this.#e(N.HttpStatusCode.FOUND,t,r,n,i);static seeOther=(t,r,n,i)=>this.#e(N.HttpStatusCode.SEE_OTHER,t,r,n,i);static notModified=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_MODIFIED,t,r,n,i);static useProxy=(t,r,n,i)=>this.#e(N.HttpStatusCode.USE_PROXY,t,r,n,i);static switchProxy=(t,r,n,i)=>this.#e(N.HttpStatusCode.SWITCH_PROXY,t,r,n,i);static temporaryRedirect=(t,r,n,i)=>this.#e(N.HttpStatusCode.TEMPORARY_REDIRECT,t,r,n,i);static permanentRedirect=(t,r,n,i)=>this.#e(N.HttpStatusCode.PERMANENT_REDIRECT,t,r,n,i);static badRequest=(t,r,n,i)=>this.#e(N.HttpStatusCode.BAD_REQUEST,t,r,n,i);static unauthorized=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNAUTHORIZED,t,r,n,i);static paymentRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.PAYMENT_REQUIRED,t,r,n,i);static forbidden=(t,r,n,i)=>this.#e(N.HttpStatusCode.FORBIDDEN,t,r,n,i);static notFound=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_FOUND,t,r,n,i);static methodNotAllowed=(t,r,n,i)=>this.#e(N.HttpStatusCode.METHOD_NOT_ALLOWED,t,r,n,i);static notAcceptable=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_ACCEPTABLE,t,r,n,i);static proxyAuthenticationRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.PROXY_AUTHENTICATION_REQUIRED,t,r,n,i);static requestTimeout=(t,r,n,i)=>this.#e(N.HttpStatusCode.REQUEST_TIMEOUT,t,r,n,i);static conflict=(t,r,n,i)=>this.#e(N.HttpStatusCode.CONFLICT,t,r,n,i);static gone=(t,r,n,i)=>this.#e(N.HttpStatusCode.GONE,t,r,n,i);static lengthRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.LENGTH_REQUIRED,t,r,n,i);static preconditionFailed=(t,r,n,i)=>this.#e(N.HttpStatusCode.PRECONDITION_FAILED,t,r,n,i);static contentTooLarge=(t,r,n,i)=>this.#e(N.HttpStatusCode.CONTENT_TOO_LARGE,t,r,n,i);static uriTooLong=(t,r,n,i)=>this.#e(N.HttpStatusCode.URI_TOO_LONG,t,r,n,i);static unsupportedMediaType=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNSUPPORTED_MEDIA_TYPE,t,r,n,i);static rangeNotSatisfiable=(t,r,n,i)=>this.#e(N.HttpStatusCode.RANGE_NOT_SATISFIABLE,t,r,n,i);static expectationFailed=(t,r,n,i)=>this.#e(N.HttpStatusCode.EXPECTATION_FAILED,t,r,n,i);static imATeapot=(t,r,n,i)=>this.#e(N.HttpStatusCode.I_AM_A_TEAPOT,t,r,n,i);static misdirectedRequest=(t,r,n,i)=>this.#e(N.HttpStatusCode.MISDIRECTED_REQUEST,t,r,n,i);static unprocessableContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNPROCESSABLE_CONTENT,t,r,n,i);static locked=(t,r,n,i)=>this.#e(N.HttpStatusCode.LOCKED,t,r,n,i);static failedDependency=(t,r,n,i)=>this.#e(N.HttpStatusCode.FAILED_DEPENDENCY,t,r,n,i);static tooEarly=(t,r,n,i)=>this.#e(N.HttpStatusCode.TOO_EARLY,t,r,n,i);static upgradeRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.UPGRADE_REQUIRED,t,r,n,i);static preconditionRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.PRECONDITION_REQUIRED,t,r,n,i);static tooManyRequests=(t,r,n,i)=>this.#e(N.HttpStatusCode.TOO_MANY_REQUESTS,t,r,n,i);static requestHeaderFieldsTooLarge=(t,r,n,i)=>this.#e(N.HttpStatusCode.REQUEST_HEADER_FIELDS_TOO_LARGE,t,r,n,i);static unavailableForLegalReasons=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNAVAILABLE_FOR_LEGAL_REASONS,t,r,n,i);static internalServerError=(t,r,n,i)=>this.#e(N.HttpStatusCode.INTERNAL_SERVER_ERROR,t,r,n,i);static notImplemented=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_IMPLEMENTED,t,r,n,i);static badGateway=(t,r,n,i)=>this.#e(N.HttpStatusCode.BAD_GATEWAY,t,r,n,i);static serviceUnavailable=(t,r,n,i)=>this.#e(N.HttpStatusCode.SERVICE_UNAVAILABLE,t,r,n,i);static gatewayTimeout=(t,r,n,i)=>this.#e(N.HttpStatusCode.GATEWAY_TIMEOUT,t,r,n,i);static httpVersionNotSupported=(t,r,n,i)=>this.#e(N.HttpStatusCode.HTTP_VERSION_NOT_SUPPORTED,t,r,n,i);static variantAlsoNegotiates=(t,r,n,i)=>this.#e(N.HttpStatusCode.VARIANT_ALSO_NEGOTIATES,t,r,n,i);static insufficientStorage=(t,r,n,i)=>this.#e(N.HttpStatusCode.INSUFFICIENT_STORAGE,t,r,n,i);static loopDetected=(t,r,n,i)=>this.#e(N.HttpStatusCode.LOOP_DETECTED,t,r,n,i);static notExtended=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_EXTENDED,t,r,n,i);static networkAuthenticationRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.NETWORK_AUTHENTICATION_REQUIRED,t,r,n,i)};Br.HttpProblems=Vu});var bt=g(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});M.isErrorLike=M.withUndefinedAsNull=M.withNullAsUndefined=M.validateConstraint=M.validateConstraints=M.areFunctions=M.isFunction=M.isEmptyObject=M.assertAllDefined=M.assertIsDefined=M.assertType=M.isUndefinedOrNull=M.isDefined=M.isUndefined=M.isBoolean=M.isIterable=M.isNumber=M.isTypedArray=M.isArray=M.isObject=M.getOwnEnumerableKeys=M.isRegexp=M.isStringArray=M.isNonEmptyString=M.isString=M.toString=void 0;var{toString:Pv}=Object.prototype,{propertyIsEnumerable:Av}=Object.prototype;function of(e){return Pv.call(e)}s(of,"toString");M.toString=of;function Lo(e){return typeof e=="string"}s(Lo,"isString");M.isString=Lo;function Rv(e){return Lo(e)&&e!==""}s(Rv,"isNonEmptyString");M.isNonEmptyString=Rv;function Ov(e){return Array.isArray(e)&&e.every(t=>Lo(t))}s(Ov,"isStringArray");M.isStringArray=Ov;function Nv(e){return of(e)==="[object RegExp]"}s(Nv,"isRegexp");M.isRegexp=Nv;function xv(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e).filter(t=>Av.call(e,t))]}s(xv,"getOwnEnumerableKeys");M.getOwnEnumerableKeys=xv;function Gu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}s(Gu,"isObject");M.isObject=Gu;function Cv(e){return Gu(e)&&Array.isArray(e)}s(Cv,"isArray");M.isArray=Cv;function Lv(e){let t=Object.getPrototypeOf(Uint8Array);return typeof e=="object"&&e instanceof t}s(Lv,"isTypedArray");M.isTypedArray=Lv;function Dv(e){return typeof e=="number"&&!isNaN(e)}s(Dv,"isNumber");M.isNumber=Dv;function Uv(e){return!!e&&typeof e[Symbol.iterator]=="function"}s(Uv,"isIterable");M.isIterable=Uv;function Mv(e){return e===!0||e===!1}s(Mv,"isBoolean");M.isBoolean=Mv;function sf(e){return typeof e>"u"}s(sf,"isUndefined");M.isUndefined=sf;function kv(e){return!ii(e)}s(kv,"isDefined");M.isDefined=kv;function ii(e){return sf(e)||e===null}s(ii,"isUndefinedOrNull");M.isUndefinedOrNull=ii;function Hv(e,t){if(!e)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}s(Hv,"assertType");M.assertType=Hv;function Fv(e){if(ii(e))throw new Error("Assertion Failed: argument is undefined or null");return e}s(Fv,"assertIsDefined");M.assertIsDefined=Fv;function qv(...e){let t=[];for(let r=0;r<e.length;r++){let n=e[r];if(ii(n))throw new Error(`Assertion Failed: argument at index ${r} is undefined or null`);t.push(n)}return t}s(qv,"assertAllDefined");M.assertAllDefined=qv;var $v=Object.prototype.hasOwnProperty;function jv(e){if(!Gu(e))return!1;for(let t in e)if($v.call(e,t))return!1;return!0}s(jv,"isEmptyObject");M.isEmptyObject=jv;function Bu(e){return typeof e=="function"}s(Bu,"isFunction");M.isFunction=Bu;function Vv(...e){return e.length>0&&e.every(Bu)}s(Vv,"areFunctions");M.areFunctions=Vv;function Gv(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)af(e[n],t[n])}s(Gv,"validateConstraints");M.validateConstraints=Gv;function af(e,t){if(Lo(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Bu(t)){try{if(e instanceof t)return}catch{}if(!ii(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}s(af,"validateConstraint");M.validateConstraint=af;function Bv(e){return e===null?void 0:e}s(Bv,"withNullAsUndefined");M.withNullAsUndefined=Bv;function Kv(e){return typeof e>"u"?null:e}s(Kv,"withUndefinedAsNull");M.withUndefinedAsNull=Kv;function Jv(e){return!!e&&typeof e=="object"&&"name"in e&&"message"in e&&"stack"in e}s(Jv,"isErrorLike");M.isErrorLike=Jv});var oi=g(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.parseValueToBoolean=_t.parseValueToStringArray=_t.getValueFromRequestUser=_t.statusCodesStringToNumberArray=void 0;var Kr=C(),Ku=bt(),cf=new Map;function zv(e){if(typeof e!="string")throw new Error("Input must be a string");if(!/^\d+(?:-\d+)?(?:,\s*\d+(?:-\d+)?)*$/.test(e))throw new Error("Malformed input string");let t=cf.get(e);if(t)return t;let r=e.split(","),n=[];for(let i of r){let o=i.split("-");if(o.length===2){let a=parseInt(o[0],10),c=parseInt(o[1],10);for(let u=a;u<=c;u++)n.push(u)}else n.push(parseInt(i,10))}return cf.set(e,n),n}s(zv,"statusCodesStringToNumberArray");_t.statusCodesStringToNumberArray=zv;function Wv(e,t,r){if(!t.startsWith("."))throw new Kr.ConfigurationError(`Invalid ${r} - must start with '.' - '${t}' does not`);let n=t.split(".").splice(1),i=e;return n.forEach(o=>{if(i===void 0)throw new Kr.RuntimeError(`Error applying ${r} '${t}', reading '${o}'`);i=i[o]}),`${i}`}s(Wv,"getValueFromRequestUser");_t.getValueFromRequestUser=Wv;function Qv(e){if(Array.isArray(e)){if(e.includes(r=>typeof r!="string"))throw new Kr.ConfigurationError("Received an array that contains non-string values.");return e}if((0,Ku.isString)(e))return e.includes(",")?e.split(",").map(r=>r.trim()).filter(r=>r!==","&&r!==""):[e];throw new Kr.ConfigurationError(`Expected type of string, received type '${typeof e}'`)}s(Qv,"parseValueToStringArray");_t.parseValueToStringArray=Qv;function Yv(e){if((0,Ku.isBoolean)(e))return e;if((0,Ku.isString)(e)){if(e.toLowerCase()==="true")return!0;if(e.toLowerCase()==="false")return!1;throw new Kr.ConfigurationError(`Attempted to parse string to boolean, but received ${e} which cannot be parsed.`)}throw new Kr.ConfigurationError(`Expected type of boolean, received type '${typeof e}'`)}s(Yv,"parseValueToBoolean");_t.parseValueToBoolean=Yv});var Uo=g(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.generateCorsHeaders=Xt.findMatchingOrigin=Xt.parseCorsPolicies=void 0;var Rr=C(),uf=oi(),Do=bt();function Zv(e){if(e==null)return[];if(!Array.isArray(e))throw new Rr.ConfigurationError(`Invalid corsPolicy configuration. Expected an array of objects, received '${typeof e}'`);return e.map(r=>{if(!(0,Do.isObject)(r))throw new Rr.ConfigurationError(`Invalid custom cors policy is set. Expected an object, received '${typeof r}'`);if(!(0,Do.isNonEmptyString)(r.name))throw new Rr.ConfigurationError("Value of 'name' on custom cors policies must be a non-empty string.");if(r.maxAge!==void 0&&!(0,Do.isNumber)(r.maxAge))throw new Rr.ConfigurationError(`Value of 'maxAge' on custom cors policies must be a non-empty string. Received type '${typeof r.maxAge}'`);if(r.allowCredentials!==void 0&&!(0,Do.isBoolean)(r.allowCredentials))throw new Rr.ConfigurationError("Value of 'allowCredentials' on custom cors policies must be a boolean or not be set. If using an environment variable, check that it is set correctly.");let n=Ju(r,"allowedHeaders"),i=Ju(r,"allowedMethods"),o=Ju(r,"exposeHeaders"),a;try{a=(0,uf.parseValueToStringArray)(r.allowedOrigins)}catch(u){throw new Rr.ConfigurationError(`Value of 'allowedOrigins' on custom cors policies is invalid. ${u.message} If using an environment variable, check that it is set correctly.`)}return{name:r.name,allowCredentials:typeof r.allowCredentials=="boolean"?String(r.allowCredentials):void 0,allowedOrigins:a,allowedHeaders:n?n.join(", "):void 0,allowedMethods:i?i.join(", "):void 0,exposeHeaders:o?o.join(", "):void 0,maxAge:typeof r.maxAge=="number"?r.maxAge.toString():void 0}})}s(Zv,"parseCorsPolicies");Xt.parseCorsPolicies=Zv;function Ju(e,t){let r;if(e[t]!==void 0)try{r=(0,uf.parseValueToStringArray)(e[t])}catch(n){throw new Rr.ConfigurationError(`Value of '${t}' on custom cors policies is invalid. ${n.message} If using an environment variable, check that it is set correctly.`)}return r}s(Ju,"parseOptionalProperty");var Xv=s((e,t)=>{if(t===null)return;if(e.find(a=>a==="*"))return t;let n=e.map(a=>a.trim().toLowerCase()),i=t.toLowerCase();return n.find(a=>a===i)},"findMatchingOrigin");Xt.findMatchingOrigin=Xv;var eT=s((e,t)=>{let r={"access-control-allow-origin":t};e.allowedHeaders&&(r["access-control-allow-headers"]=e.allowedHeaders),e.allowedMethods&&(r["access-control-allow-methods"]=e.allowedMethods),e.exposeHeaders&&(r["access-control-expose-headers"]=e.exposeHeaders);let n=e.allowCredentials;n&&(r["access-control-allow-credentials"]=n);let i=e.maxAge?.toString()??void 0;return i&&(r["access-control-max-age"]=i),r},"generateCorsHeaders");Xt.generateCorsHeaders=eT});var df=g(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.registerCorsRoute=void 0;var tT=C(),rT=Dt(),zu=ae(),nT=Yt(),iT=Ar(),oT=st(),lf=Uo(),sT=s((e,t)=>{let r=t.routeData.corsPolicies,n=s(async(a,c)=>{let u=new URL(a.url.toString()).pathname,l=a.headers.get("access-control-request-method"),d=a.headers.get("access-control-request-headers"),p=a.headers.get("origin");if(p===null||l===null)return zu.HttpProblems.badRequest(a,c,{detail:"Expect headers origin and access-control-request-method"});let m=e.lookup(l,u);if(!m)return zu.HttpProblems.notFound(a,c);let h=m.routeConfiguration,y=aT(l,d,p,h,r);return y.isValid?new Response(void 0,{status:200,statusText:"OK",headers:y.headers}):(y.error&&c.log.warn(y.error),zu.HttpProblems.notFound(a,c))},"optionsHandler"),i=new rT.Pipeline({processors:[nT.metricsProcessor],handler:n,gateway:t}),o=new oT.SystemRouteConfiguration({label:"SYSTEM_CORS_ROUTE",methods:["OPTIONS"],path:"/(.*)",systemRouteName:iT.SystemRouteName.CorsPreflight});e.addRoute(o,i.execute)},"registerCorsRoute");Mo.registerCorsRoute=sT;var aT=s((e,t,r,n,i)=>{let o={isValid:!1,headers:{}};if(n.corsPolicy==="anything-goes")return{isValid:!0,headers:{"access-control-allow-origin":r,"access-control-allow-methods":e,"access-control-allow-headers":t??"*","access-control-expose-headers":"*","access-control-allow-credentials":"true","access-control-max-age":"600"}};if(n.corsPolicy==="none")return{...o,error:`No CORS policy set for the route '${n.pathPattern}'`};let a=i?.find(l=>l.name===n.corsPolicy);if(!a)throw new tT.ConfigurationError(`Invalid Configuration - corsPolicy '${n.corsPolicy}' not found in *.oas.json 'corsPolicies' section.`);let c=(0,lf.findMatchingOrigin)(a.allowedOrigins,r);return c?{isValid:!0,headers:(0,lf.generateCorsHeaders)(a,c)}:{...o,error:`The CORS policy '${a.name}' does not allow the origin '${r}'`}},"validateAndBuildResponseHeaders")});var pf=g(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.registerNoRoutes=void 0;var cT=Dt(),uT=Yt(),lT=Ar(),dT=st(),pT=s((e,t)=>{let r=s(async()=>new Response("You have no routes. Add a route in routes.oas.json to get started",{status:200}),"noRoutesHandler"),n=new cT.Pipeline({processors:[uT.metricsProcessor],handler:r,gateway:t}),i=new dT.SystemRouteConfiguration({label:"SYSTEM_NO_ROUTES",methods:["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"],path:"/(.*)",systemRouteName:lT.SystemRouteName.EmptyGatewayCatchall});e.addRoute(i,n.execute)},"registerNoRoutes");ko.registerNoRoutes=pT});var hf=g(Or=>{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.registerNotMatchedHandler=Or.notFoundRouteConfiguration=void 0;var hT=Ir(),fT=gt(),mT=Dt(),yT=ae(),gT=Yt(),bT=Ar(),_T=st();Or.notFoundRouteConfiguration=new _T.SystemRouteConfiguration({label:"SYSTEM_NOT_FOUND_ROUTE",methods:["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"],path:"/(.*)",systemRouteName:bT.SystemRouteName.UnmatchedPath});var ET=s((e,t)=>{let r=s(async(i,o)=>{let a=fT.runtimeExtensions.value?.notFoundHandler;if(a){let c=hT.ZuploContextExtensions.getContextExtensions(o);return a(i,o,{routesMatchedByPathOnly:c.pathOnlyMatches??[]})}return yT.HttpProblems.notFound(i,o)},"notFoundHandler"),n=new mT.Pipeline({processors:[gT.metricsProcessor],handler:r,gateway:t});e.addRoute(Or.notFoundRouteConfiguration,n.execute)},"registerNotMatchedHandler");Or.registerNotMatchedHandler=ET});var Wu=g(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.corsProcessor=void 0;var yf=C(),ff=Uo(),wT=["access-control-allow-origin","access-control-allow-headers","access-control-expose-headers","access-control-allow-credentials","access-control-max-age"],mf=s(e=>{wT.forEach(t=>e.delete(t))},"stripCorsHeaders"),vT=s(async(e,t,r,n)=>{let i=t.route;if(!i.corsPolicy||i.corsPolicy==="none"){let d=await n(e),p=new Headers(d.headers);return mf(p),new Response(d.body,{status:d.status,statusText:d.statusText,headers:p,webSocket:d.webSocket})}let o=await n(e);if(!(o instanceof Response))throw new yf.SystemError(`The CorsProcessor is in the wrong place in the pipeline. It should only receive HttpResponse type but got '${typeof o}'`);let a=TT(i,r.routeData.corsPolicies),c=ST(e,a),u=new Headers(o.headers);return mf(u),Object.entries(c).forEach(([d,p])=>{u.set(d,p)}),new Response(o.body,{status:o.status,statusText:o.statusText,headers:u,webSocket:o.webSocket})},"corsProcessor");Ho.corsProcessor=vT;var TT=s((e,t)=>{if(e.corsPolicy==="anything-goes")return{name:"anything-goes",allowedHeaders:"*",allowedOrigins:["*"],allowedMethods:e.methods.join(", "),exposeHeaders:"*",allowCredentials:"true",maxAge:"600"};let r=t?.find(n=>n.name===e.corsPolicy);if(r===void 0)throw new yf.ConfigurationError(`Invalid Configuration - no corsPolicy '${e.corsPolicy}' found in *.oas.json`);return r},"getCorsPolicy"),ST=s((e,t)=>{let r=(0,ff.findMatchingOrigin)(t.allowedOrigins,e.headers.get("origin"));return r?(0,ff.generateCorsHeaders)(t,r):{}},"getCorsHeaders")});var gf=g(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.registerPingRoute=void 0;var IT=Dt(),PT=Wu(),AT=Ar(),RT=st(),OT=s((e,t)=>{let r=s(async()=>new Response(null,{status:200}),"pingRouteHandler"),n=new IT.Pipeline({processors:[PT.corsProcessor],handler:r,gateway:t}),i=new RT.SystemRouteConfiguration({corsPolicy:"anything-goes",label:"SYSTEM_PING_ROUTE",methods:["GET"],path:"/__zuplo/ping",systemRouteName:AT.SystemRouteName.Ping});e.addRoute(i,n.execute)},"registerPingRoute");Fo.registerPingRoute=OT});var zr=g(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.createInternalPolicyProcessor=at.policyProcessor=at.toStackedInboundHandler=at.getInboundPolicyHandlerAndOptions=void 0;var NT=Ir(),Jr=C(),bf=He(),xT=Y();function _f(e,t){let r,n;return Array.isArray(e)?r=e:(r=e.policies?.inbound??[],n=e.path),r.map(o=>{let a=t?.find(u=>u.name===o);if(!a)throw new Jr.ConfigurationError(`Invalid state - no Policy with the name '${o}' ${n&&`on route '${n}'`} was found in the policies configuration (check case).`);let c;if(typeof a.handler?.module=="object"&&(c=a.handler?.module[a.handler.export]),typeof c!="function")throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${o}' ${n&&`on route '${n}'`}. Expected a function, received '${typeof c}'`);return{exportName:a.handler.export,handler:c,options:a.handler.options,policyName:a.name}})}s(_f,"getInboundPolicyHandlerAndOptions");at.getInboundPolicyHandlerAndOptions=_f;function CT(e,t){return(e.policies?.outbound??[]).map(i=>{let o=t?.find(c=>c.name===i);if(!o)throw new Jr.ConfigurationError(`Invalid state - no Policy with the name '${i}' on route '${e.path}' was found in the policies configuration (check case).`);let a;if(typeof o.handler?.module=="object"&&(a=o.handler?.module[o.handler.export]),typeof a!="function")throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${i}' on route '${e.path}'`);return{exportName:o.handler.export,handler:a,options:o.handler.options,policyName:o.name}})}s(CT,"getOutboundPolicyHandlerAndOptions");var LT=s(e=>async(t,r)=>{let n=NT.ZuploContextExtensions.getContextExtensions(r),i=[...e],o=t;for(;i.length>0;){let a=i.shift();if(!a)return o;let c=await a.handler(o,r,a.options,a.policyName);if(c instanceof bf.ZuploRequest)o=c;else if(c instanceof Request)o=new bf.ZuploRequest(c);else{if(c instanceof Response)return c;throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${a.policyName}'${a.routeName?` on route '${a.routeName}`:""}. The result of an inbound policy must be a Response or Request.`)}n.latestRequest=o}return o},"toStackedInboundHandler");at.toStackedInboundHandler=LT;var DT=s(e=>async(t,r,n)=>{let i=[...e],o=t;for(;i.length>0;){let a=i.shift();if(!a)return o;let c=await a.handler(o,r,n,a.options,a.policyName);if(!(c instanceof Response))throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${a.policyName}'${a.routeName?` on route '${a.routeName}`:""}. The result of an outbound policy must be a Response.`);o=c}return o},"toStackedOutboundHandler"),UT=s(async(e,t,r,n)=>{let i=_f(t.route,r.routeData.policies),o=CT(t.route,r.routeData.policies);return Ef({request:e,context:t,inboundPolicies:i,outboundPolicies:o,gateway:r,next:n})},"policyProcessor");at.policyProcessor=UT;function MT({inboundPolicies:e=[],outboundPolicies:t=[]}){return s(async(n,i,o,a)=>Ef({request:n,context:i,inboundPolicies:e.map(c=>({...c,exportName:"default",policyName:c.handler.name})),outboundPolicies:t.map(c=>({...c,exportName:"default",policyName:c.handler.name})),gateway:o,next:a}),"policyProcessor")}s(MT,"createInternalPolicyProcessor");at.createInternalPolicyProcessor=MT;async function Ef({request:e,context:t,inboundPolicies:r,outboundPolicies:n,gateway:i,next:o}){let a=(0,at.toStackedInboundHandler)(r);try{let c=await a(e,t);if(c instanceof Response)return c;let u=await o(c),l=DT(n),d;return xT.Environment.instance.build.COMPATIBILITY_FLAGS.runOutboundPoliciesOnHandlerOnAllStatuses?d=l(u,e,t):d=u.ok?l(u,e,t):u,d}catch(c){return t.log.error(c),i.errorHandler(e,t,c)}}s(Ef,"executePolicyProcessor")});var wf=g(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.serialize=Wr.parse=void 0;var kT=Object.prototype.toString,qo=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function HT(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");let r={},i=(t||{}).decode||qT,o=0;for(;o<e.length;){let a=e.indexOf("=",o);if(a===-1)break;let c=e.indexOf(";",o);if(c===-1)c=e.length;else if(c<a){o=e.lastIndexOf(";",a-1)+1;continue}let u=e.slice(o,a).trim();if(r[u]===void 0){let l=e.slice(a+1,c).trim();l.charCodeAt(0)===34&&(l=l.slice(1,-1)),r[u]=VT(l,i)}o=c+1}return r}s(HT,"parse");Wr.parse=HT;function FT(e,t,r){let n=r||{},i=n.encode||$T;if(typeof i!="function")throw new TypeError("option encode is invalid");if(!qo.test(e))throw new TypeError("argument name is invalid");let o=i(t);if(o&&!qo.test(o))throw new TypeError("argument val is invalid");let a=e+"="+o;if(n.maxAge!=null){let c=n.maxAge-0;if(isNaN(c)||!isFinite(c))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+Math.floor(c)}if(n.domain){if(!qo.test(n.domain))throw new TypeError("option domain is invalid");a+="; Domain="+n.domain}if(n.path){if(!qo.test(n.path))throw new TypeError("option path is invalid");a+="; Path="+n.path}if(n.expires){let c=n.expires;if(!jT(c)||isNaN(c.valueOf()))throw new TypeError("option expires is invalid");a+="; Expires="+c.toUTCString()}if(n.httpOnly&&(a+="; HttpOnly"),n.secure&&(a+="; Secure"),n.priority)switch(typeof n.priority=="string"?n.priority.toLowerCase():n.priority){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}if(n.sameSite)switch(typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite){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}s(FT,"serialize");Wr.serialize=FT;function qT(e){return e.indexOf("%")!==-1?decodeURIComponent(e):e}s(qT,"decode");function $T(e){return encodeURIComponent(e)}s($T,"encode");function jT(e){return kT.call(e)==="[object Date]"||e instanceof Date}s(jT,"isDate");function VT(e,t){try{return t(e)}catch{return e}}s(VT,"tryDecode")});var vf=g($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.devPortalBaseURL=void 0;var GT=wf();function BT(e,t){try{let r=/v\d+(-\d+)?/g,i=(0,GT.parse)(t.get("Cookie")||"")["zp-dev-portal"];return i!==null&&i&&r.test(i)?`https://dev-portal-${i}.zuplo.com`:e}catch{}return e}s(BT,"devPortalBaseURL");$o.devPortalBaseURL=BT});var Af=g(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.registerDevPortalLegacyRedirectRoute=Qr.registerDevPortalV3Route=void 0;var Qu=Ut(),Sf=Dt(),If=Yt(),KT=zr(),Pf=st(),JT=vf(),er=Y(),Tf="/__zuplo/dev-portal",zT="dev-portal-id",WT="dev-portal-host",QT="zp-account",YT="zp-project",ZT="dev-portal-build",XT=`
35
+ `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}s(Mw,"reduceToSingleString")});var Fh=g(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.format=void 0;var kw=Ch(),Hw=Hh(),Fw=s((e,...t)=>(0,kw.format)(Hw.inspect,e,t),"format");ho.format=Fw});var Sr=g(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.debug=Wt.withoutEnv=Wt.Debugger=void 0;var qw=xh(),$w=Fh(),fo=class{static{s(this,"Debugger")}manager;ns;color;last;enabled;constructor(t,r){this.manager=t,this.ns=r,this.color=(0,qw.generateColor)(r),this.last=0,this.enabled=t.enabled.some(n=>n.test(r))}log(...t){if(!this.enabled)return;let r,n=t[0];typeof n=="function"?r=n():r=String(n);let i=Date.now()-(this.last||Date.now());r=(0,$w.format)(r,...t);let o=`${this.color(this.ns)} ${r} ${this.color(`+${i}ms`)}`;console.log(o),this.last=Date.now()}};Wt.Debugger=fo;var mo=class{static{s(this,"DebugManager")}debuggers;enabled;constructor(t){this.debuggers=new Map,this.enabled=t??[]}};function qh(e){return!e||e.length===0?[]:(e=e.replace(/\s/g,"").replace(/\*/g,".+"),e.split(",").map(t=>new RegExp(`^${t}$`)))}s(qh,"extract");var ni;function jw(e){e||(e=[]),typeof e=="string"&&(e=qh(e)),ni=new mo(e)}s(jw,"withoutEnv");Wt.withoutEnv=jw;function Vw(e){let t=globalThis.DEBUG;ni||(ni=new mo(qh(t)));let r=new fo(ni,e);return ni.debuggers.set(e,r),Object.assign(r.log.bind(r),{self:r})}s(Vw,"debug");Wt.debug=Vw});var go=g(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.ProblemResponseFormatter=Vr.InternalProblemResponseFormatter=void 0;var Gw=C(),yo=class e{static{s(this,"InternalProblemResponseFormatter")}static problemResponseFormat=async t=>{let r=t.problem,n=JSON.stringify(r,null,2);return new Response(n,{status:t.problem.status,statusText:t.statusText,headers:{...t.additionalHeaders,"content-type":"application/problem+json"}})};static setProblemResponseFormat(t){t&&(e.problemResponseFormat=(r,n,i)=>{try{return t(r,n,i)}catch(o){throw new Gw.RuntimeError("Error in custom 'problemResponseFormat'",{cause:o})}})}};Vr.InternalProblemResponseFormatter=yo;var Pu=class{static{s(this,"ProblemResponseFormatter")}static async format(t,r,n){return await yo.problemResponseFormat(t,r,n)}};Vr.ProblemResponseFormatter=Pu});var jh=g(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.deepFreeze=void 0;function $h(e){for(let t in e){let r=e[t];r&&typeof r=="object"&&$h(r)}return Object.freeze(e)}s($h,"deepFreeze");bo.deepFreeze=$h});var He=g(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.ZuploRequest=void 0;var Vh=jh(),Au=class e extends Request{static{s(this,"ZuploRequest")}#e=void 0;#t;constructor(t,r){super(t,r);let n=r?.params;n?this.#t=n:t instanceof e?this.#t=t.#t:this.#t={};let i=r?.user;i?this.user=i:t instanceof e&&(this.user=t.user)}get query(){if(this.#e===void 0){let t={},r=new URL(this.url).searchParams;for(let[n,i]of r.entries())t[n]=i;this.#e=t}return(0,Vh.deepFreeze)(this.#e)}get params(){return(0,Vh.deepFreeze)(this.#t)}user};_o.ZuploRequest=Au});var gt=g(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.initializeRuntime=ye.invokeOnResponseSendingFinalExtensions=ye.invokeOnResponseSendingExtensions=ye.invokeOnRequestExtensions=ye.plugins=ye.runtimeExtensions=ye.SystemRuntimePlugin=ye.RuntimePlugin=void 0;var Gh=C(),Bw=go(),Kw=He(),wo=class{static{s(this,"RuntimePlugin")}};ye.RuntimePlugin=wo;var vo=class extends wo{static{s(this,"SystemRuntimePlugin")}async initialize(t){return Promise.resolve()}registerRoutes(t,r){}};ye.SystemRuntimePlugin=vo;ye.runtimeExtensions={};var Ru=[];ye.plugins=Ru;var Bh=[],Kh=[],Jh=[],Eo={addPlugin(e){Ru.push(e)},addRequestHook(e){Bh.push(e)},addResponseSendingHook(e){Kh.push(e)},addResponseSendingFinalHook(e){Jh.push(e)}},Jw=s(async(e,t)=>{let r=e;for(let n of Bh){let i=await n(r,t);if(i instanceof Kw.ZuploRequest)r=i;else{if(i instanceof Response)return i;throw new Gh.ConfigurationError(`Invalid state - the OnRequest hook must return a ZuploRequest or Response. Received ${typeof r}.`)}}return r},"invokeOnRequestExtensions");ye.invokeOnRequestExtensions=Jw;var zw=s(async(e,t,r)=>{let n=e;for(let i of Kh){let o=await i(e,t,r);if(o instanceof Response)n=o;else throw new Gh.ConfigurationError(`Invalid state - the OnResponseSending hook must return a Response. Received ${typeof n}.`)}return n},"invokeOnResponseSendingExtensions");ye.invokeOnResponseSendingExtensions=zw;var Ww=s(async(e,t,r)=>{for(let n of Jh)await n(e,t,r)},"invokeOnResponseSendingFinalExtensions");ye.invokeOnResponseSendingFinalExtensions=Ww;async function Qw(e=()=>Promise.resolve()){await e(Eo),ye.runtimeExtensions.value=Eo;for(let t of Ru)t instanceof vo&&await t.initialize(Eo);Bw.InternalProblemResponseFormatter.setProblemResponseFormat(Eo.problemResponseFormat)}s(Qw,"initializeRuntime");ye.initializeRuntime=Qw});var Ou=g(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.serialize=Qt.ContentTypes=void 0;Qt.ContentTypes={Json:"application/json",Form:"application/x-www-form-urlencoded"};function Yw(e,t){if(e!==null)return t&&typeof e=="string"?e:typeof e=="object"&&t?.startsWith(Qt.ContentTypes.Form)?new URLSearchParams(e).toString():typeof e=="object"&&t?.startsWith(Qt.ContentTypes.Json)||!t?JSON.stringify(e):e}s(Yw,"serialize");Qt.serialize=Yw});var Dt=g(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.Pipeline=void 0;var Nu=Ir(),zh=gt(),Zw=Ou(),xu=class{static{s(this,"Pipeline")}constructor(t){this.execute=this.#t(t)}execute;#e=(t,r)=>async(n,i)=>{try{return await t(n,i)}catch(o){return i.log.error("Error executing request handler.",o),r.errorHandler(n,i,o)}};#t=({processors:t,gateway:r,handler:n})=>async(i,o)=>{let a=[...t],c=s(async y=>{let E=a.pop();return E?E(i,o,r,c):await this.#e(async S=>{let U=await n(S,o);return Xw(U)},r)(y,o)},"nextPipe"),l=await c(i),d=new Nu.ResponseSendingEvent(i,l);o.dispatchEvent(d);let p=Nu.ZuploContextExtensions.getContextExtensions(o),m=p.latestRequest,h;try{h=await d.mutableResponse}catch(y){return o.log.error(y),r.errorHandler(i,o,y)}try{h=await p.onResponseSending(h,m,o)}catch(y){return o.log.error(`Error invoking 'context.onResponseSending' hook: '${y.message}'`,y),r.errorHandler(i,o,y)}try{h=await(0,zh.invokeOnResponseSendingExtensions)(h,m,o)}catch(y){return o.log.error(`Error invoking 'context.onResponseSending' hook: '${y.message}'`,y),r.errorHandler(i,o,y)}o.dispatchEvent(new Nu.ResponseSentEvent(i,h));try{await p.onResponseSendingFinal(l,m,o)}catch(y){throw o.log.error(`Error invoking 'runtime.onResponseSending' hook: '${y.message}'`,y),y}try{await(0,zh.invokeOnResponseSendingFinalExtensions)(l,m,o)}catch(y){throw o.log.error(`Error invoking 'runtime.onResponseSending' hook: '${y.message}'`,y),y}return h}};To.Pipeline=xu;function Xw(e){return e instanceof Response?e:typeof e>"u"?new Response:new Response((0,Zw.serialize)(e),{headers:{"content-type":"application/json"}})}s(Xw,"resultToResponse")});var Io=g(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.MetricsPlugin=void 0;var ev=gt(),Cu=class extends ev.RuntimePlugin{static{s(this,"MetricsPlugin")}};So.MetricsPlugin=Cu});var Be=g(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.SystemLogMap=void 0;var tv=C(),Lu=class e{static{s(this,"SystemLogMap")}static#e=new WeakMap;static getLogger(t){let r=e.#e.get(t);if(!r){let n=`No system logger found for context with requestId '${t.requestId}'`;throw console.error(n),new tv.SystemError(n)}return r}static addLogger(t,r){e.#e.set(t,r)}};Po.SystemLogMap=Lu});var Te=g(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.BatchDispatch=void 0;var Du=class{static{s(this,"BatchDispatch")}constructor(t,r,n,i){this.#t=t,this.#o=r,this.#n=n,this.#r=i}#e=void 0;#t;#r;#n;#i=[];#o;enqueue=t=>{this.#i.push(t),this.#e||(this.#e=new Promise(r=>{setTimeout(()=>{if(this.#i.length>0){let n=[...this.#i];this.#i.length=0,this.#e=void 0,this.#n(n).catch(i=>{this.#r&&this.#r.error(`Uncaught error in BatchDispatcher named '${this.#t}'}`,i.message,i.stack)}).finally(()=>{r()})}},this.#o)}))};waitUntilFlushed=async()=>{if(this.#e)return this.#e}};Ao.BatchDispatch=Du});var Qh=g(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.EllieMetricsTransport=void 0;var Wh=Be(),rv=Te(),Ro=Y(),Uu=class{static{s(this,"EllieMetricsTransport")}#e;#t;#r;constructor(t){this.#r=Ro.Environment.instance.loggingId,this.#e=t,this.#t=new rv.BatchDispatch("ellie-metrics-transport",10,this.dispatchFunction,Wh.SystemLogMap.getLogger(t))}pushMetrics(t,r){this.#r!==void 0&&(this.#t.enqueue(t),r.waitUntil(this.#t.waitUntilFlushed()))}dispatchFunction=async t=>{if(t.length===0)return;let r,{loggingId:n,remoteLogURL:i,deploymentName:o}=Ro.Environment.instance,a=t.map(c=>{let u=Object.assign({},c);return delete u.requestContentLength,delete u.responseContentLength,u});if(n&&o&&(r=`${i}/v1-alpha/metrics?loggingId=${encodeURI(n)}&deploymentName=${encodeURI(o)}`),r){let c=await fetch(r,{method:"POST",body:JSON.stringify(a),headers:{"content-type":"application/json","zp-dn":Ro.Environment.instance.deploymentName??"unknown","user-agent":Ro.Environment.instance.systemUserAgent}});if(!c.ok){let u=await c.text();Wh.SystemLogMap.getLogger(this.#e).error(`Metrics POST responded ${c.status}: ${c.statusText}`,u)}}}};Oo.EllieMetricsTransport=Uu});var st=g(Pr=>{"use strict";Object.defineProperty(Pr,"__esModule",{value:!0});Pr.systemNoVersion=Pr.SystemRouteConfiguration=void 0;var Mu=class{static{s(this,"SystemRouteConfiguration")}constructor({label:t,path:r,methods:n,systemRouteName:i,corsPolicy:o="none"}){this.label=t,this.path=r,this.methods=n,this.corsPolicy=o,this.version=Pr.systemNoVersion.name,this.handler={export:"SYSTEM_IGNORED",module:"SYSTEM_IGNORED"},this.systemRouteName=i}label;path;methods;handler;corsPolicy;version;policies;systemRouteName;raw(){return{}}};Pr.SystemRouteConfiguration=Mu;Pr.systemNoVersion={name:"__system-no-version",pathPrefix:""}});var Yt=g(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.metricsProcessor=void 0;var Yh=ri(),nv=Ir(),iv=gt(),ov=Io(),sv=Qh(),av=st(),cv=s(async(e,t,r,n)=>{let i=new Date,o=Date.now(),a=await n(e),c=e.headers.get(Yh.RAY_ID_HEADER)??void 0,u=e.headers.get(Yh.TRUE_CLIENT_IP)??void 0,l=t.incomingRequestProperties,d;t.route instanceof av.SystemRouteConfiguration&&(d=t.route.systemRouteName);let p=nv.ZuploContextExtensions.getContextExtensions(t).latestRequest,m={timestamp:i,statusCode:a.status,durationMs:Date.now()-o,requestContentLength:e.headers.get("content-length")?Number(e.headers.get("content-length")):void 0,responseContentLength:a.headers.get("content-length")?Number(a.headers.get("content-length")):void 0,routePath:t.route?.path??"SYSTEM_OR_NOT_FOUND",systemRouteName:d,requestId:t.requestId,method:e.method,asn:l.asn,asOrganization:l.asOrganization,colo:l.colo,continent:l.continent,country:l.country,city:l.city,latitude:l.latitude,longitude:l.longitude,rayId:c,instanceId:r.instanceId,userSub:p.user?.sub,clientIp:u},h=[];return h.push(new sv.EllieMetricsTransport(t)),iv.plugins.forEach(y=>{if(y instanceof ov.MetricsPlugin){let E=y.getTransport();h.push(E)}}),h.forEach(y=>{y.pushMetrics(m,t)}),a},"metricsProcessor");No.metricsProcessor=cv});var ku=g(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.SystemRouteName=void 0;var Zh;(function(e){e.Build="build-data",e.CorsPreflight="cors-preflight",e.DeveloperPortal="developer-portal",e.DeveloperPortalLegacy="developer-portal-legacy",e.StripePlugin="stripe-plugin",e.EmptyGatewayCatchall="empty-gateway-catchall",e.Ping="ping",e.UnmatchedPath="unmatched-path"})(Zh||(xo.SystemRouteName=Zh={}))});var ef=g(Xh=>{"use strict";Object.defineProperty(Xh,"__esModule",{value:!0})});var Ar=g(Zt=>{"use strict";var uv=Zt&&Zt.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),tf=Zt&&Zt.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&uv(t,e,r)};Object.defineProperty(Zt,"__esModule",{value:!0});tf(ku(),Zt);tf(ef(),Zt)});var rf=g(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.registerBuildRoute=void 0;var lv=Ut(),dv=Dt(),pv=Yt(),hv=Ar(),fv=st(),mv=Be(),yv=Y(),gv=s((e,t)=>{let r=s(async(o,a)=>{let u=new URL(o.url).hostname.toLowerCase();if(!u.endsWith(".zuplo.app")&&!u.endsWith(".zuplo.dev")&&!u.endsWith(".fly.dev")&&!u.endsWith("zuplotest.com")&&u!=="localhost")return lv.HttpProblems.notFound(o,a);let l=yv.Environment.instance.build,d={buildId:l.BUILD_ID,zuploVersion:l.ZUPLO_VERSION,apiVersion:l.API_VERSION,gitSha:l.GIT_SHA,timestamp:l.TIMESTAMP,isProduction:l.IS_PRODUCTION},p=o.url.toString().split("?");return p.length>0&&new URLSearchParams(p[1]).get("system_log")==="true"&&mv.SystemLogMap.getLogger(a).error("Test System Log",d),new Response(JSON.stringify(d,null,2),{status:200,headers:{"content-type":"application/json"}})},"buildRouteHandler"),n=new dv.Pipeline({processors:[pv.metricsProcessor],handler:r,gateway:t}),i=new fv.SystemRouteConfiguration({label:"SYSTEM_BUILD_ROUTE",methods:["GET"],path:"/__zuplo/build",systemRouteName:hv.SystemRouteName.Build});e.addRoute(i,n.execute)},"registerBuildRoute");Co.registerBuildRoute=gv});var Hu=g(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.HTTP_STATUS_TITLES=Gr.HttpStatusCode=void 0;var nf;(function(e){e[e.CONTINUE=100]="CONTINUE",e[e.SWITCHING_PROTOCOLS=101]="SWITCHING_PROTOCOLS",e[e.PROCESSING=102]="PROCESSING",e[e.EARLY_HINTS=103]="EARLY_HINTS",e[e.OK=200]="OK",e[e.CREATED=201]="CREATED",e[e.ACCEPTED=202]="ACCEPTED",e[e.NON_AUTHORITATIVE_INFORMATION=203]="NON_AUTHORITATIVE_INFORMATION",e[e.NO_CONTENT=204]="NO_CONTENT",e[e.RESET_CONTENT=205]="RESET_CONTENT",e[e.PARTIAL_CONTENT=206]="PARTIAL_CONTENT",e[e.MULTI_STATUS=207]="MULTI_STATUS",e[e.ALREADY_REPORTED=208]="ALREADY_REPORTED",e[e.IM_USED=226]="IM_USED",e[e.MULTIPLE_CHOICES=300]="MULTIPLE_CHOICES",e[e.MOVED_PERMANENTLY=301]="MOVED_PERMANENTLY",e[e.FOUND=302]="FOUND",e[e.SEE_OTHER=303]="SEE_OTHER",e[e.NOT_MODIFIED=304]="NOT_MODIFIED",e[e.USE_PROXY=305]="USE_PROXY",e[e.SWITCH_PROXY=306]="SWITCH_PROXY",e[e.TEMPORARY_REDIRECT=307]="TEMPORARY_REDIRECT",e[e.PERMANENT_REDIRECT=308]="PERMANENT_REDIRECT",e[e.BAD_REQUEST=400]="BAD_REQUEST",e[e.UNAUTHORIZED=401]="UNAUTHORIZED",e[e.PAYMENT_REQUIRED=402]="PAYMENT_REQUIRED",e[e.FORBIDDEN=403]="FORBIDDEN",e[e.NOT_FOUND=404]="NOT_FOUND",e[e.METHOD_NOT_ALLOWED=405]="METHOD_NOT_ALLOWED",e[e.NOT_ACCEPTABLE=406]="NOT_ACCEPTABLE",e[e.PROXY_AUTHENTICATION_REQUIRED=407]="PROXY_AUTHENTICATION_REQUIRED",e[e.REQUEST_TIMEOUT=408]="REQUEST_TIMEOUT",e[e.CONFLICT=409]="CONFLICT",e[e.GONE=410]="GONE",e[e.LENGTH_REQUIRED=411]="LENGTH_REQUIRED",e[e.PRECONDITION_FAILED=412]="PRECONDITION_FAILED",e[e.CONTENT_TOO_LARGE=413]="CONTENT_TOO_LARGE",e[e.PAYLOAD_TOO_LARGE=413]="PAYLOAD_TOO_LARGE",e[e.URI_TOO_LONG=414]="URI_TOO_LONG",e[e.UNSUPPORTED_MEDIA_TYPE=415]="UNSUPPORTED_MEDIA_TYPE",e[e.RANGE_NOT_SATISFIABLE=416]="RANGE_NOT_SATISFIABLE",e[e.EXPECTATION_FAILED=417]="EXPECTATION_FAILED",e[e.I_AM_A_TEAPOT=418]="I_AM_A_TEAPOT",e[e.MISDIRECTED_REQUEST=421]="MISDIRECTED_REQUEST",e[e.UNPROCESSABLE_ENTITY=422]="UNPROCESSABLE_ENTITY",e[e.UNPROCESSABLE_CONTENT=422]="UNPROCESSABLE_CONTENT",e[e.LOCKED=423]="LOCKED",e[e.FAILED_DEPENDENCY=424]="FAILED_DEPENDENCY",e[e.TOO_EARLY=425]="TOO_EARLY",e[e.UPGRADE_REQUIRED=426]="UPGRADE_REQUIRED",e[e.PRECONDITION_REQUIRED=428]="PRECONDITION_REQUIRED",e[e.TOO_MANY_REQUESTS=429]="TOO_MANY_REQUESTS",e[e.REQUEST_HEADER_FIELDS_TOO_LARGE=431]="REQUEST_HEADER_FIELDS_TOO_LARGE",e[e.UNAVAILABLE_FOR_LEGAL_REASONS=451]="UNAVAILABLE_FOR_LEGAL_REASONS",e[e.INTERNAL_SERVER_ERROR=500]="INTERNAL_SERVER_ERROR",e[e.NOT_IMPLEMENTED=501]="NOT_IMPLEMENTED",e[e.BAD_GATEWAY=502]="BAD_GATEWAY",e[e.SERVICE_UNAVAILABLE=503]="SERVICE_UNAVAILABLE",e[e.GATEWAY_TIMEOUT=504]="GATEWAY_TIMEOUT",e[e.HTTP_VERSION_NOT_SUPPORTED=505]="HTTP_VERSION_NOT_SUPPORTED",e[e.VARIANT_ALSO_NEGOTIATES=506]="VARIANT_ALSO_NEGOTIATES",e[e.INSUFFICIENT_STORAGE=507]="INSUFFICIENT_STORAGE",e[e.LOOP_DETECTED=508]="LOOP_DETECTED",e[e.NOT_EXTENDED=510]="NOT_EXTENDED",e[e.NETWORK_AUTHENTICATION_REQUIRED=511]="NETWORK_AUTHENTICATION_REQUIRED"})(nf||(Gr.HttpStatusCode=nf={}));Gr.HTTP_STATUS_TITLES={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Content Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Content",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"}});var qu=g(Fu=>{"use strict";Object.defineProperty(Fu,"__esModule",{value:!0});var bv={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a Teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"};Fu.default=bv});var ae=g(Br=>{"use strict";var _v=Br&&Br.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Br,"__esModule",{value:!0});Br.HttpProblems=void 0;var Ev=ri(),N=Hu(),wv=_v(qu()),vv=Y(),$u=go();function Tv(e){return`${new URL(e.url).pathname}`}s(Tv,"instance");function Sv(e,t){let r={timestamp:new Date().toISOString(),requestId:t.requestId,buildId:vv.Environment.instance.build.BUILD_ID},n=e.headers.get(Ev.RAY_ID_HEADER);return n&&(r.rayId=n),r}s(Sv,"trace");var Iv=s((e,t,r,n,i)=>({problem:{type:e.type,title:e.title,status:e.status,detail:e.detail,instance:Tv(t),trace:Sv(t,r),...n},additionalHeaders:i,statusText:wv.default[e.status]}),"merge"),ju=class{static{s(this,"HttpProblemsBase")}static format=(t,r,n)=>"problem"in t?$u.ProblemResponseFormatter.format(t,r,n):$u.ProblemResponseFormatter.format({problem:t},r,n);static getProblemFromStatus(t,r){return{type:`https://httpproblems.com/http-status/${t}`,status:t,title:N.HTTP_STATUS_TITLES[t],...r}}},Vu=class extends ju{static{s(this,"HttpProblems")}static#e(t,r,n,i,o){let a=Iv(this.getProblemFromStatus(t),r,n,i,o);return $u.ProblemResponseFormatter.format(a,r,n)}static continue=(t,r,n,i)=>this.#e(N.HttpStatusCode.OK,t,r,n,i);static switchingProtocols=(t,r,n,i)=>this.#e(N.HttpStatusCode.SWITCHING_PROTOCOLS,t,r,n,i);static processing=(t,r,n,i)=>this.#e(N.HttpStatusCode.PROCESSING,t,r,n,i);static earlyHints=(t,r,n,i)=>this.#e(N.HttpStatusCode.EARLY_HINTS,t,r,n,i);static ok=(t,r,n,i)=>this.#e(N.HttpStatusCode.OK,t,r,n,i);static created=(t,r,n,i)=>this.#e(N.HttpStatusCode.CREATED,t,r,n,i);static accepted=(t,r,n,i)=>this.#e(N.HttpStatusCode.ACCEPTED,t,r,n,i);static nonAuthoritativeInformation=(t,r,n,i)=>this.#e(N.HttpStatusCode.NON_AUTHORITATIVE_INFORMATION,t,r,n,i);static noContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.NO_CONTENT,t,r,n,i);static resetContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.RESET_CONTENT,t,r,n,i);static partialContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.PARTIAL_CONTENT,t,r,n,i);static multiStatus=(t,r,n,i)=>this.#e(N.HttpStatusCode.MULTI_STATUS,t,r,n,i);static alreadyReported=(t,r,n,i)=>this.#e(N.HttpStatusCode.ALREADY_REPORTED,t,r,n,i);static imUsed=(t,r,n,i)=>this.#e(N.HttpStatusCode.IM_USED,t,r,n,i);static multipleChoices=(t,r,n,i)=>this.#e(N.HttpStatusCode.MULTIPLE_CHOICES,t,r,n,i);static movedPermanently=(t,r,n,i)=>this.#e(N.HttpStatusCode.MOVED_PERMANENTLY,t,r,n,i);static found=(t,r,n,i)=>this.#e(N.HttpStatusCode.FOUND,t,r,n,i);static seeOther=(t,r,n,i)=>this.#e(N.HttpStatusCode.SEE_OTHER,t,r,n,i);static notModified=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_MODIFIED,t,r,n,i);static useProxy=(t,r,n,i)=>this.#e(N.HttpStatusCode.USE_PROXY,t,r,n,i);static switchProxy=(t,r,n,i)=>this.#e(N.HttpStatusCode.SWITCH_PROXY,t,r,n,i);static temporaryRedirect=(t,r,n,i)=>this.#e(N.HttpStatusCode.TEMPORARY_REDIRECT,t,r,n,i);static permanentRedirect=(t,r,n,i)=>this.#e(N.HttpStatusCode.PERMANENT_REDIRECT,t,r,n,i);static badRequest=(t,r,n,i)=>this.#e(N.HttpStatusCode.BAD_REQUEST,t,r,n,i);static unauthorized=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNAUTHORIZED,t,r,n,i);static paymentRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.PAYMENT_REQUIRED,t,r,n,i);static forbidden=(t,r,n,i)=>this.#e(N.HttpStatusCode.FORBIDDEN,t,r,n,i);static notFound=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_FOUND,t,r,n,i);static methodNotAllowed=(t,r,n,i)=>this.#e(N.HttpStatusCode.METHOD_NOT_ALLOWED,t,r,n,i);static notAcceptable=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_ACCEPTABLE,t,r,n,i);static proxyAuthenticationRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.PROXY_AUTHENTICATION_REQUIRED,t,r,n,i);static requestTimeout=(t,r,n,i)=>this.#e(N.HttpStatusCode.REQUEST_TIMEOUT,t,r,n,i);static conflict=(t,r,n,i)=>this.#e(N.HttpStatusCode.CONFLICT,t,r,n,i);static gone=(t,r,n,i)=>this.#e(N.HttpStatusCode.GONE,t,r,n,i);static lengthRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.LENGTH_REQUIRED,t,r,n,i);static preconditionFailed=(t,r,n,i)=>this.#e(N.HttpStatusCode.PRECONDITION_FAILED,t,r,n,i);static contentTooLarge=(t,r,n,i)=>this.#e(N.HttpStatusCode.CONTENT_TOO_LARGE,t,r,n,i);static uriTooLong=(t,r,n,i)=>this.#e(N.HttpStatusCode.URI_TOO_LONG,t,r,n,i);static unsupportedMediaType=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNSUPPORTED_MEDIA_TYPE,t,r,n,i);static rangeNotSatisfiable=(t,r,n,i)=>this.#e(N.HttpStatusCode.RANGE_NOT_SATISFIABLE,t,r,n,i);static expectationFailed=(t,r,n,i)=>this.#e(N.HttpStatusCode.EXPECTATION_FAILED,t,r,n,i);static imATeapot=(t,r,n,i)=>this.#e(N.HttpStatusCode.I_AM_A_TEAPOT,t,r,n,i);static misdirectedRequest=(t,r,n,i)=>this.#e(N.HttpStatusCode.MISDIRECTED_REQUEST,t,r,n,i);static unprocessableContent=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNPROCESSABLE_CONTENT,t,r,n,i);static locked=(t,r,n,i)=>this.#e(N.HttpStatusCode.LOCKED,t,r,n,i);static failedDependency=(t,r,n,i)=>this.#e(N.HttpStatusCode.FAILED_DEPENDENCY,t,r,n,i);static tooEarly=(t,r,n,i)=>this.#e(N.HttpStatusCode.TOO_EARLY,t,r,n,i);static upgradeRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.UPGRADE_REQUIRED,t,r,n,i);static preconditionRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.PRECONDITION_REQUIRED,t,r,n,i);static tooManyRequests=(t,r,n,i)=>this.#e(N.HttpStatusCode.TOO_MANY_REQUESTS,t,r,n,i);static requestHeaderFieldsTooLarge=(t,r,n,i)=>this.#e(N.HttpStatusCode.REQUEST_HEADER_FIELDS_TOO_LARGE,t,r,n,i);static unavailableForLegalReasons=(t,r,n,i)=>this.#e(N.HttpStatusCode.UNAVAILABLE_FOR_LEGAL_REASONS,t,r,n,i);static internalServerError=(t,r,n,i)=>this.#e(N.HttpStatusCode.INTERNAL_SERVER_ERROR,t,r,n,i);static notImplemented=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_IMPLEMENTED,t,r,n,i);static badGateway=(t,r,n,i)=>this.#e(N.HttpStatusCode.BAD_GATEWAY,t,r,n,i);static serviceUnavailable=(t,r,n,i)=>this.#e(N.HttpStatusCode.SERVICE_UNAVAILABLE,t,r,n,i);static gatewayTimeout=(t,r,n,i)=>this.#e(N.HttpStatusCode.GATEWAY_TIMEOUT,t,r,n,i);static httpVersionNotSupported=(t,r,n,i)=>this.#e(N.HttpStatusCode.HTTP_VERSION_NOT_SUPPORTED,t,r,n,i);static variantAlsoNegotiates=(t,r,n,i)=>this.#e(N.HttpStatusCode.VARIANT_ALSO_NEGOTIATES,t,r,n,i);static insufficientStorage=(t,r,n,i)=>this.#e(N.HttpStatusCode.INSUFFICIENT_STORAGE,t,r,n,i);static loopDetected=(t,r,n,i)=>this.#e(N.HttpStatusCode.LOOP_DETECTED,t,r,n,i);static notExtended=(t,r,n,i)=>this.#e(N.HttpStatusCode.NOT_EXTENDED,t,r,n,i);static networkAuthenticationRequired=(t,r,n,i)=>this.#e(N.HttpStatusCode.NETWORK_AUTHENTICATION_REQUIRED,t,r,n,i)};Br.HttpProblems=Vu});var bt=g(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});M.isErrorLike=M.withUndefinedAsNull=M.withNullAsUndefined=M.validateConstraint=M.validateConstraints=M.areFunctions=M.isFunction=M.isEmptyObject=M.assertAllDefined=M.assertIsDefined=M.assertType=M.isUndefinedOrNull=M.isDefined=M.isUndefined=M.isBoolean=M.isIterable=M.isNumber=M.isTypedArray=M.isArray=M.isObject=M.getOwnEnumerableKeys=M.isRegexp=M.isStringArray=M.isNonEmptyString=M.isString=M.toString=void 0;var{toString:Pv}=Object.prototype,{propertyIsEnumerable:Av}=Object.prototype;function of(e){return Pv.call(e)}s(of,"toString");M.toString=of;function Lo(e){return typeof e=="string"}s(Lo,"isString");M.isString=Lo;function Rv(e){return Lo(e)&&e!==""}s(Rv,"isNonEmptyString");M.isNonEmptyString=Rv;function Ov(e){return Array.isArray(e)&&e.every(t=>Lo(t))}s(Ov,"isStringArray");M.isStringArray=Ov;function Nv(e){return of(e)==="[object RegExp]"}s(Nv,"isRegexp");M.isRegexp=Nv;function xv(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e).filter(t=>Av.call(e,t))]}s(xv,"getOwnEnumerableKeys");M.getOwnEnumerableKeys=xv;function Gu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}s(Gu,"isObject");M.isObject=Gu;function Cv(e){return Gu(e)&&Array.isArray(e)}s(Cv,"isArray");M.isArray=Cv;function Lv(e){let t=Object.getPrototypeOf(Uint8Array);return typeof e=="object"&&e instanceof t}s(Lv,"isTypedArray");M.isTypedArray=Lv;function Dv(e){return typeof e=="number"&&!isNaN(e)}s(Dv,"isNumber");M.isNumber=Dv;function Uv(e){return!!e&&typeof e[Symbol.iterator]=="function"}s(Uv,"isIterable");M.isIterable=Uv;function Mv(e){return e===!0||e===!1}s(Mv,"isBoolean");M.isBoolean=Mv;function sf(e){return typeof e>"u"}s(sf,"isUndefined");M.isUndefined=sf;function kv(e){return!ii(e)}s(kv,"isDefined");M.isDefined=kv;function ii(e){return sf(e)||e===null}s(ii,"isUndefinedOrNull");M.isUndefinedOrNull=ii;function Hv(e,t){if(!e)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}s(Hv,"assertType");M.assertType=Hv;function Fv(e){if(ii(e))throw new Error("Assertion Failed: argument is undefined or null");return e}s(Fv,"assertIsDefined");M.assertIsDefined=Fv;function qv(...e){let t=[];for(let r=0;r<e.length;r++){let n=e[r];if(ii(n))throw new Error(`Assertion Failed: argument at index ${r} is undefined or null`);t.push(n)}return t}s(qv,"assertAllDefined");M.assertAllDefined=qv;var $v=Object.prototype.hasOwnProperty;function jv(e){if(!Gu(e))return!1;for(let t in e)if($v.call(e,t))return!1;return!0}s(jv,"isEmptyObject");M.isEmptyObject=jv;function Bu(e){return typeof e=="function"}s(Bu,"isFunction");M.isFunction=Bu;function Vv(...e){return e.length>0&&e.every(Bu)}s(Vv,"areFunctions");M.areFunctions=Vv;function Gv(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++)af(e[n],t[n])}s(Gv,"validateConstraints");M.validateConstraints=Gv;function af(e,t){if(Lo(t)){if(typeof e!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Bu(t)){try{if(e instanceof t)return}catch{}if(!ii(e)&&e.constructor===t||t.length===1&&t.call(void 0,e)===!0)return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}s(af,"validateConstraint");M.validateConstraint=af;function Bv(e){return e===null?void 0:e}s(Bv,"withNullAsUndefined");M.withNullAsUndefined=Bv;function Kv(e){return typeof e>"u"?null:e}s(Kv,"withUndefinedAsNull");M.withUndefinedAsNull=Kv;function Jv(e){return!!e&&typeof e=="object"&&"name"in e&&"message"in e&&"stack"in e}s(Jv,"isErrorLike");M.isErrorLike=Jv});var oi=g(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.parseValueToBoolean=_t.parseValueToStringArray=_t.getValueFromRequestUser=_t.statusCodesStringToNumberArray=void 0;var Kr=C(),Ku=bt(),cf=new Map;function zv(e){if(typeof e!="string")throw new Error("Input must be a string");if(!/^\d+(?:-\d+)?(?:,\s*\d+(?:-\d+)?)*$/.test(e))throw new Error("Malformed input string");let t=cf.get(e);if(t)return t;let r=e.split(","),n=[];for(let i of r){let o=i.split("-");if(o.length===2){let a=parseInt(o[0],10),c=parseInt(o[1],10);for(let u=a;u<=c;u++)n.push(u)}else n.push(parseInt(i,10))}return cf.set(e,n),n}s(zv,"statusCodesStringToNumberArray");_t.statusCodesStringToNumberArray=zv;function Wv(e,t,r){if(!t.startsWith("."))throw new Kr.ConfigurationError(`Invalid ${r} - must start with '.' - '${t}' does not`);let n=t.split(".").splice(1),i=e;return n.forEach(o=>{if(i===void 0)throw new Kr.RuntimeError(`Error applying ${r} '${t}', reading '${o}'`);i=i[o]}),`${i}`}s(Wv,"getValueFromRequestUser");_t.getValueFromRequestUser=Wv;function Qv(e){if(Array.isArray(e)){if(e.includes(r=>typeof r!="string"))throw new Kr.ConfigurationError("Received an array that contains non-string values.");return e}if((0,Ku.isString)(e))return e.includes(",")?e.split(",").map(r=>r.trim()).filter(r=>r!==","&&r!==""):[e];throw new Kr.ConfigurationError(`Expected type of string, received type '${typeof e}'`)}s(Qv,"parseValueToStringArray");_t.parseValueToStringArray=Qv;function Yv(e){if((0,Ku.isBoolean)(e))return e;if((0,Ku.isString)(e)){if(e.toLowerCase()==="true")return!0;if(e.toLowerCase()==="false")return!1;throw new Kr.ConfigurationError(`Attempted to parse string to boolean, but received ${e} which cannot be parsed.`)}throw new Kr.ConfigurationError(`Expected type of boolean, received type '${typeof e}'`)}s(Yv,"parseValueToBoolean");_t.parseValueToBoolean=Yv});var Uo=g(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.generateCorsHeaders=Xt.findMatchingOrigin=Xt.parseCorsPolicies=void 0;var Rr=C(),uf=oi(),Do=bt();function Zv(e){if(e==null)return[];if(!Array.isArray(e))throw new Rr.ConfigurationError(`Invalid corsPolicy configuration. Expected an array of objects, received '${typeof e}'`);return e.map(r=>{if(!(0,Do.isObject)(r))throw new Rr.ConfigurationError(`Invalid custom cors policy is set. Expected an object, received '${typeof r}'`);if(!(0,Do.isNonEmptyString)(r.name))throw new Rr.ConfigurationError("Value of 'name' on custom cors policies must be a non-empty string.");if(r.maxAge!==void 0&&!(0,Do.isNumber)(r.maxAge))throw new Rr.ConfigurationError(`Value of 'maxAge' on custom cors policies must be a non-empty string. Received type '${typeof r.maxAge}'`);if(r.allowCredentials!==void 0&&!(0,Do.isBoolean)(r.allowCredentials))throw new Rr.ConfigurationError("Value of 'allowCredentials' on custom cors policies must be a boolean or not be set. If using an environment variable, check that it is set correctly.");let n=Ju(r,"allowedHeaders"),i=Ju(r,"allowedMethods"),o=Ju(r,"exposeHeaders"),a;try{a=(0,uf.parseValueToStringArray)(r.allowedOrigins)}catch(u){throw new Rr.ConfigurationError(`Value of 'allowedOrigins' on custom cors policies is invalid. ${u.message} If using an environment variable, check that it is set correctly.`)}return{name:r.name,allowCredentials:typeof r.allowCredentials=="boolean"?String(r.allowCredentials):void 0,allowedOrigins:a,allowedHeaders:n?n.join(", "):void 0,allowedMethods:i?i.join(", "):void 0,exposeHeaders:o?o.join(", "):void 0,maxAge:typeof r.maxAge=="number"?r.maxAge.toString():void 0}})}s(Zv,"parseCorsPolicies");Xt.parseCorsPolicies=Zv;function Ju(e,t){let r;if(e[t]!==void 0)try{r=(0,uf.parseValueToStringArray)(e[t])}catch(n){throw new Rr.ConfigurationError(`Value of '${t}' on custom cors policies is invalid. ${n.message} If using an environment variable, check that it is set correctly.`)}return r}s(Ju,"parseOptionalProperty");var Xv=s((e,t)=>{if(t===null)return;if(e.find(a=>a==="*"))return t;let n=e.map(a=>a.trim().toLowerCase()),i=t.toLowerCase();return n.find(a=>a===i)},"findMatchingOrigin");Xt.findMatchingOrigin=Xv;var eT=s((e,t)=>{let r={"access-control-allow-origin":t};e.allowedHeaders&&(r["access-control-allow-headers"]=e.allowedHeaders),e.allowedMethods&&(r["access-control-allow-methods"]=e.allowedMethods),e.exposeHeaders&&(r["access-control-expose-headers"]=e.exposeHeaders);let n=e.allowCredentials;n&&(r["access-control-allow-credentials"]=n);let i=e.maxAge?.toString()??void 0;return i&&(r["access-control-max-age"]=i),r},"generateCorsHeaders");Xt.generateCorsHeaders=eT});var df=g(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.registerCorsRoute=void 0;var tT=C(),rT=Dt(),zu=ae(),nT=Yt(),iT=Ar(),oT=st(),lf=Uo(),sT=s((e,t)=>{let r=t.routeData.corsPolicies,n=s(async(a,c)=>{let u=new URL(a.url.toString()).pathname,l=a.headers.get("access-control-request-method"),d=a.headers.get("access-control-request-headers"),p=a.headers.get("origin");if(p===null||l===null)return zu.HttpProblems.badRequest(a,c,{detail:"Expect headers origin and access-control-request-method"});let m=e.lookup(l,u);if(!m)return zu.HttpProblems.notFound(a,c);let h=m.routeConfiguration,y=aT(l,d,p,h,r);return y.isValid?new Response(void 0,{status:200,statusText:"OK",headers:y.headers}):(y.error&&c.log.warn(y.error),zu.HttpProblems.notFound(a,c))},"optionsHandler"),i=new rT.Pipeline({processors:[nT.metricsProcessor],handler:n,gateway:t}),o=new oT.SystemRouteConfiguration({label:"SYSTEM_CORS_ROUTE",methods:["OPTIONS"],path:"/(.*)",systemRouteName:iT.SystemRouteName.CorsPreflight});e.addRoute(o,i.execute)},"registerCorsRoute");Mo.registerCorsRoute=sT;var aT=s((e,t,r,n,i)=>{let o={isValid:!1,headers:{}};if(n.corsPolicy==="anything-goes")return{isValid:!0,headers:{"access-control-allow-origin":r,"access-control-allow-methods":e,"access-control-allow-headers":t??"*","access-control-expose-headers":"*","access-control-allow-credentials":"true","access-control-max-age":"600"}};if(n.corsPolicy==="none")return{...o,error:`No CORS policy set for the route '${n.pathPattern}'`};let a=i?.find(l=>l.name===n.corsPolicy);if(!a)throw new tT.ConfigurationError(`Invalid Configuration - corsPolicy '${n.corsPolicy}' not found in *.oas.json 'corsPolicies' section.`);let c=(0,lf.findMatchingOrigin)(a.allowedOrigins,r);return c?{isValid:!0,headers:(0,lf.generateCorsHeaders)(a,c)}:{...o,error:`The CORS policy '${a.name}' does not allow the origin '${r}'`}},"validateAndBuildResponseHeaders")});var pf=g(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.registerNoRoutes=void 0;var cT=Dt(),uT=Yt(),lT=Ar(),dT=st(),pT=s((e,t)=>{let r=s(async()=>new Response("You have no routes. Add a route in routes.oas.json to get started",{status:200}),"noRoutesHandler"),n=new cT.Pipeline({processors:[uT.metricsProcessor],handler:r,gateway:t}),i=new dT.SystemRouteConfiguration({label:"SYSTEM_NO_ROUTES",methods:["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"],path:"/(.*)",systemRouteName:lT.SystemRouteName.EmptyGatewayCatchall});e.addRoute(i,n.execute)},"registerNoRoutes");ko.registerNoRoutes=pT});var hf=g(Or=>{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.registerNotMatchedHandler=Or.notFoundRouteConfiguration=void 0;var hT=Ir(),fT=gt(),mT=Dt(),yT=ae(),gT=Yt(),bT=Ar(),_T=st();Or.notFoundRouteConfiguration=new _T.SystemRouteConfiguration({label:"SYSTEM_NOT_FOUND_ROUTE",methods:["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"],path:"/(.*)",systemRouteName:bT.SystemRouteName.UnmatchedPath});var ET=s((e,t)=>{let r=s(async(i,o)=>{let a=fT.runtimeExtensions.value?.notFoundHandler;if(a){let c=hT.ZuploContextExtensions.getContextExtensions(o);return a(i,o,{routesMatchedByPathOnly:c.pathOnlyMatches??[]})}return yT.HttpProblems.notFound(i,o)},"notFoundHandler"),n=new mT.Pipeline({processors:[gT.metricsProcessor],handler:r,gateway:t});e.addRoute(Or.notFoundRouteConfiguration,n.execute)},"registerNotMatchedHandler");Or.registerNotMatchedHandler=ET});var Wu=g(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.corsProcessor=void 0;var yf=C(),ff=Uo(),wT=["access-control-allow-origin","access-control-allow-headers","access-control-expose-headers","access-control-allow-credentials","access-control-max-age"],mf=s(e=>{wT.forEach(t=>e.delete(t))},"stripCorsHeaders"),vT=s(async(e,t,r,n)=>{let i=t.route;if(!i.corsPolicy||i.corsPolicy==="none"){let d=await n(e),p=new Headers(d.headers);return mf(p),new Response(d.body,{status:d.status,statusText:d.statusText,headers:p,webSocket:d.webSocket})}let o=await n(e);if(!(o instanceof Response))throw new yf.SystemError(`The CorsProcessor is in the wrong place in the pipeline. It should only receive HttpResponse type but got '${typeof o}'`);let a=TT(i,r.routeData.corsPolicies),c=ST(e,a),u=new Headers(o.headers);return mf(u),Object.entries(c).forEach(([d,p])=>{u.set(d,p)}),new Response(o.body,{status:o.status,statusText:o.statusText,headers:u,webSocket:o.webSocket})},"corsProcessor");Ho.corsProcessor=vT;var TT=s((e,t)=>{if(e.corsPolicy==="anything-goes")return{name:"anything-goes",allowedHeaders:"*",allowedOrigins:["*"],allowedMethods:e.methods.join(", "),exposeHeaders:"*",allowCredentials:"true",maxAge:"600"};let r=t?.find(n=>n.name===e.corsPolicy);if(r===void 0)throw new yf.ConfigurationError(`Invalid Configuration - no corsPolicy '${e.corsPolicy}' found in *.oas.json`);return r},"getCorsPolicy"),ST=s((e,t)=>{let r=(0,ff.findMatchingOrigin)(t.allowedOrigins,e.headers.get("origin"));return r?(0,ff.generateCorsHeaders)(t,r):{}},"getCorsHeaders")});var gf=g(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.registerPingRoute=void 0;var IT=Dt(),PT=Wu(),AT=Ar(),RT=st(),OT=s((e,t)=>{let r=s(async()=>new Response(null,{status:200}),"pingRouteHandler"),n=new IT.Pipeline({processors:[PT.corsProcessor],handler:r,gateway:t}),i=new RT.SystemRouteConfiguration({corsPolicy:"anything-goes",label:"SYSTEM_PING_ROUTE",methods:["GET"],path:"/__zuplo/ping",systemRouteName:AT.SystemRouteName.Ping});e.addRoute(i,n.execute)},"registerPingRoute");Fo.registerPingRoute=OT});var zr=g(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.createInternalPolicyProcessor=at.policyProcessor=at.toStackedInboundHandler=at.getInboundPolicyHandlerAndOptions=void 0;var NT=Ir(),Jr=C(),bf=He(),xT=Y();function _f(e,t){let r,n;return Array.isArray(e)?r=e:(r=e.policies?.inbound??[],n=e.path),r.map(o=>{let a=t?.find(u=>u.name===o);if(!a)throw new Jr.ConfigurationError(`Invalid state - no Policy with the name '${o}' ${n&&`on route '${n}'`} was found in the policies configuration (check case).`);let c;if(typeof a.handler?.module=="object"&&(c=a.handler?.module[a.handler.export]),typeof c!="function")throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${o}' ${n&&`on route '${n}'`}. Expected a function, received '${typeof c}'`);return{exportName:a.handler.export,handler:c,options:a.handler.options,policyName:a.name}})}s(_f,"getInboundPolicyHandlerAndOptions");at.getInboundPolicyHandlerAndOptions=_f;function CT(e,t){return(e.policies?.outbound??[]).map(i=>{let o=t?.find(c=>c.name===i);if(!o)throw new Jr.ConfigurationError(`Invalid state - no Policy with the name '${i}' on route '${e.path}' was found in the policies configuration (check case).`);let a;if(typeof o.handler?.module=="object"&&(a=o.handler?.module[o.handler.export]),typeof a!="function")throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${i}' on route '${e.path}'`);return{exportName:o.handler.export,handler:a,options:o.handler.options,policyName:o.name}})}s(CT,"getOutboundPolicyHandlerAndOptions");var LT=s(e=>async(t,r)=>{let n=NT.ZuploContextExtensions.getContextExtensions(r),i=[...e],o=t;for(;i.length>0;){let a=i.shift();if(!a)return o;let c=await a.handler(o,r,a.options,a.policyName);if(c instanceof bf.ZuploRequest)o=c;else if(c instanceof Request)o=new bf.ZuploRequest(c);else{if(c instanceof Response)return c;throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${a.policyName}'${a.routeName?` on route '${a.routeName}`:""}. The result of an inbound policy must be a Response or Request.`)}n.latestRequest=o}return o},"toStackedInboundHandler");at.toStackedInboundHandler=LT;var DT=s(e=>async(t,r,n)=>{let i=[...e],o=t;for(;i.length>0;){let a=i.shift();if(!a)return o;let c=await a.handler(o,r,n,a.options,a.policyName);if(!(c instanceof Response))throw new Jr.ConfigurationError(`Invalid state - invalid handler on policy '${a.policyName}'${a.routeName?` on route '${a.routeName}`:""}. The result of an outbound policy must be a Response.`);o=c}return o},"toStackedOutboundHandler"),UT=s(async(e,t,r,n)=>{let i=_f(t.route,r.routeData.policies),o=CT(t.route,r.routeData.policies);return Ef({request:e,context:t,inboundPolicies:i,outboundPolicies:o,gateway:r,next:n})},"policyProcessor");at.policyProcessor=UT;function MT({inboundPolicies:e=[],outboundPolicies:t=[]}){return s(async(n,i,o,a)=>Ef({request:n,context:i,inboundPolicies:e.map(c=>({...c,exportName:"default",policyName:c.handler.name})),outboundPolicies:t.map(c=>({...c,exportName:"default",policyName:c.handler.name})),gateway:o,next:a}),"policyProcessor")}s(MT,"createInternalPolicyProcessor");at.createInternalPolicyProcessor=MT;async function Ef({request:e,context:t,inboundPolicies:r,outboundPolicies:n,gateway:i,next:o}){let a=(0,at.toStackedInboundHandler)(r);try{let c=await a(e,t);if(c instanceof Response)return c;let u=await o(c),l=DT(n),d;return xT.Environment.instance.build.COMPATIBILITY_FLAGS.runOutboundPoliciesOnHandlerOnAllStatuses?d=l(u,e,t):d=u.ok?l(u,e,t):u,d}catch(c){return t.log.error(c),i.errorHandler(e,t,c)}}s(Ef,"executePolicyProcessor")});var wf=g(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.serialize=Wr.parse=void 0;var kT=Object.prototype.toString,qo=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function HT(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");let r={},i=(t||{}).decode||qT,o=0;for(;o<e.length;){let a=e.indexOf("=",o);if(a===-1)break;let c=e.indexOf(";",o);if(c===-1)c=e.length;else if(c<a){o=e.lastIndexOf(";",a-1)+1;continue}let u=e.slice(o,a).trim();if(r[u]===void 0){let l=e.slice(a+1,c).trim();l.charCodeAt(0)===34&&(l=l.slice(1,-1)),r[u]=VT(l,i)}o=c+1}return r}s(HT,"parse");Wr.parse=HT;function FT(e,t,r){let n=r||{},i=n.encode||$T;if(typeof i!="function")throw new TypeError("option encode is invalid");if(!qo.test(e))throw new TypeError("argument name is invalid");let o=i(t);if(o&&!qo.test(o))throw new TypeError("argument val is invalid");let a=e+"="+o;if(n.maxAge!=null){let c=n.maxAge-0;if(isNaN(c)||!isFinite(c))throw new TypeError("option maxAge is invalid");a+="; Max-Age="+Math.floor(c)}if(n.domain){if(!qo.test(n.domain))throw new TypeError("option domain is invalid");a+="; Domain="+n.domain}if(n.path){if(!qo.test(n.path))throw new TypeError("option path is invalid");a+="; Path="+n.path}if(n.expires){let c=n.expires;if(!jT(c)||isNaN(c.valueOf()))throw new TypeError("option expires is invalid");a+="; Expires="+c.toUTCString()}if(n.httpOnly&&(a+="; HttpOnly"),n.secure&&(a+="; Secure"),n.priority)switch(typeof n.priority=="string"?n.priority.toLowerCase():n.priority){case"low":a+="; Priority=Low";break;case"medium":a+="; Priority=Medium";break;case"high":a+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}if(n.sameSite)switch(typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite){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}s(FT,"serialize");Wr.serialize=FT;function qT(e){return e.indexOf("%")!==-1?decodeURIComponent(e):e}s(qT,"decode");function $T(e){return encodeURIComponent(e)}s($T,"encode");function jT(e){return kT.call(e)==="[object Date]"||e instanceof Date}s(jT,"isDate");function VT(e,t){try{return t(e)}catch{return e}}s(VT,"tryDecode")});var vf=g($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.devPortalBaseURL=void 0;var GT=wf();function BT(e,t){try{let r=/v\d+(-\d+)?/g,i=(0,GT.parse)(t.get("Cookie")||"")["zp-dev-portal"];return i!==null&&i&&r.test(i)?`https://dev-portal-${i}.zuplo.com`:e}catch{}return e}s(BT,"devPortalBaseURL");$o.devPortalBaseURL=BT});var Af=g(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.registerDevPortalLegacyRedirectRoute=Qr.registerDevPortalV3Route=void 0;var Qu=Ut(),Sf=Dt(),If=Yt(),KT=zr(),Pf=st(),JT=vf(),er=Y(),Tf="/__zuplo/dev-portal",zT="dev-portal-id",WT="dev-portal-host",QT="zp-account",YT="zp-project",ZT="dev-portal-build",XT=`
36
36
  <!DOCTYPE html>
37
37
  <html lang="en">
38
38
  <head>
@@ -56,12 +56,12 @@
56
56
  `)}s(gS,"messagesToMultilineText");Fe.messagesToMultilineText=gS;function Mf(e){return typeof e=="string"?e:JSON.stringify(e)}s(Mf,"stringifyNonString");Fe.stringifyNonString=Mf;function kf(e){return typeof e=="string"?e:e===null?"null":typeof e>"u"?"undefined":typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"||typeof e=="symbol"?e.toString():typeof e=="function"?`[function ${e.name}]`:typeof e=="object"&&Array.isArray(e)?`[array ${e.length}]`:e instanceof Error?`${e.name??"Error"}: ${e.message??"unknown"}`:typeof e=="object"?(0,Uf.toString)(e):"unknown"}s(kf,"stringifyNonStringToText");Fe.stringifyNonStringToText=kf});var D,ce,Se=I(()=>{D=crypto,ce=s(e=>e instanceof CryptoKey,"isCryptoKey")});var bS,Ko,cl=I(()=>{Se();bS=s(async(e,t)=>{let r=`SHA-${e.slice(-3)}`;return new Uint8Array(await D.subtle.digest(r,t))},"digest"),Ko=bS});function Ie(...e){let t=e.reduce((i,{length:o})=>i+o,0),r=new Uint8Array(t),n=0;return e.forEach(i=>{r.set(i,n),n+=i.length}),r}function Hf(e,t){return Ie(Z.encode(e),new Uint8Array([0]),t)}function ul(e,t,r){if(t<0||t>=Jo)throw new RangeError(`value must be >= 0 and <= ${Jo-1}. Received ${t}`);e.set([t>>>24,t>>>16,t>>>8,t&255],r)}function zo(e){let t=Math.floor(e/Jo),r=e%Jo,n=new Uint8Array(8);return ul(n,t,0),ul(n,r,4),n}function Wo(e){let t=new Uint8Array(4);return ul(t,e),t}function Qo(e){return Ie(Wo(e.length),e)}async function Ff(e,t,r){let n=Math.ceil((t>>3)/32),i=new Uint8Array(n*32);for(let o=0;o<n;o++){let a=new Uint8Array(4+e.length+r.length);a.set(Wo(o+1)),a.set(e,4),a.set(r,4+e.length),i.set(await Ko("sha256",a),o*32)}return i.slice(0,t>>3)}var Z,le,Jo,ge=I(()=>{cl();Z=new TextEncoder,le=new TextDecoder,Jo=2**32;s(Ie,"concat");s(Hf,"p2s");s(ul,"writeUInt32BE");s(zo,"uint64be");s(Wo,"uint32be");s(Qo,"lengthAndInput");s(Ff,"concatKdf")});var Yo,X,ll,ie,Pe=I(()=>{ge();Yo=s(e=>{let t=e;typeof t=="string"&&(t=Z.encode(t));let r=32768,n=[];for(let i=0;i<t.length;i+=r)n.push(String.fromCharCode.apply(null,t.subarray(i,i+r)));return btoa(n.join(""))},"encodeBase64"),X=s(e=>Yo(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),"encode"),ll=s(e=>{let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r},"decodeBase64"),ie=s(e=>{let t=e;t instanceof Uint8Array&&(t=le.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return ll(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}},"decode")});var dl={};ro(dl,{JOSEAlgNotAllowed:()=>rr,JOSEError:()=>fe,JOSENotSupported:()=>k,JWEDecryptionFailed:()=>kt,JWEInvalid:()=>A,JWKInvalid:()=>si,JWKSInvalid:()=>nr,JWKSMultipleMatchingKeys:()=>ai,JWKSNoMatchingKey:()=>xr,JWKSTimeout:()=>ci,JWSInvalid:()=>z,JWSSignatureVerificationFailed:()=>Cr,JWTClaimValidationFailed:()=>be,JWTExpired:()=>Zr,JWTInvalid:()=>de});var fe,be,Zr,rr,k,kt,A,z,de,si,nr,xr,ai,ci,Cr,V=I(()=>{fe=class extends Error{static{s(this,"JOSEError")}static get code(){return"ERR_JOSE_GENERIC"}constructor(t){var r;super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,(r=Error.captureStackTrace)===null||r===void 0||r.call(Error,this,this.constructor)}},be=class extends fe{static{s(this,"JWTClaimValidationFailed")}static get code(){return"ERR_JWT_CLAIM_VALIDATION_FAILED"}constructor(t,r="unspecified",n="unspecified"){super(t),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=r,this.reason=n}},Zr=class extends fe{static{s(this,"JWTExpired")}static get code(){return"ERR_JWT_EXPIRED"}constructor(t,r="unspecified",n="unspecified"){super(t),this.code="ERR_JWT_EXPIRED",this.claim=r,this.reason=n}},rr=class extends fe{static{s(this,"JOSEAlgNotAllowed")}constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}static get code(){return"ERR_JOSE_ALG_NOT_ALLOWED"}},k=class extends fe{static{s(this,"JOSENotSupported")}constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}},kt=class extends fe{static{s(this,"JWEDecryptionFailed")}constructor(){super(...arguments),this.code="ERR_JWE_DECRYPTION_FAILED",this.message="decryption operation failed"}static get code(){return"ERR_JWE_DECRYPTION_FAILED"}},A=class extends fe{static{s(this,"JWEInvalid")}constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}static get code(){return"ERR_JWE_INVALID"}},z=class extends fe{static{s(this,"JWSInvalid")}constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}static get code(){return"ERR_JWS_INVALID"}},de=class extends fe{static{s(this,"JWTInvalid")}constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}static get code(){return"ERR_JWT_INVALID"}},si=class extends fe{static{s(this,"JWKInvalid")}constructor(){super(...arguments),this.code="ERR_JWK_INVALID"}static get code(){return"ERR_JWK_INVALID"}},nr=class extends fe{static{s(this,"JWKSInvalid")}constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}static get code(){return"ERR_JWKS_INVALID"}},xr=class extends fe{static{s(this,"JWKSNoMatchingKey")}constructor(){super(...arguments),this.code="ERR_JWKS_NO_MATCHING_KEY",this.message="no applicable key found in the JSON Web Key Set"}static get code(){return"ERR_JWKS_NO_MATCHING_KEY"}},ai=class extends fe{static{s(this,"JWKSMultipleMatchingKeys")}constructor(){super(...arguments),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS",this.message="multiple matching keys found in the JSON Web Key Set"}static get code(){return"ERR_JWKS_MULTIPLE_MATCHING_KEYS"}},ci=class extends fe{static{s(this,"JWKSTimeout")}constructor(){super(...arguments),this.code="ERR_JWKS_TIMEOUT",this.message="request timed out"}static get code(){return"ERR_JWKS_TIMEOUT"}},Cr=class extends fe{static{s(this,"JWSSignatureVerificationFailed")}constructor(){super(...arguments),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED",this.message="signature verification failed"}static get code(){return"ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}});var ir,ui=I(()=>{Se();ir=D.getRandomValues.bind(D)});function pl(e){switch(e){case"A128GCM":case"A128GCMKW":case"A192GCM":case"A192GCMKW":case"A256GCM":case"A256GCMKW":return 96;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return 128;default:throw new k(`Unsupported JWE Algorithm: ${e}`)}}var Zo,Xo=I(()=>{V();ui();s(pl,"bitLength");Zo=s(e=>ir(new Uint8Array(pl(e)>>3)),"default")});var _S,es,hl=I(()=>{V();Xo();_S=s((e,t)=>{if(t.length<<3!==pl(e))throw new A("Invalid Initialization Vector length")},"checkIvLength"),es=_S});var ES,Xr,fl=I(()=>{V();ES=s((e,t)=>{let r=e.byteLength<<3;if(r!==t)throw new A(`Invalid Content Encryption Key length. Expected ${t} bits, got ${r} bits`)},"checkCekLength"),Xr=ES});var wS,$f,jf=I(()=>{wS=s((e,t)=>{if(!(e instanceof Uint8Array))throw new TypeError("First argument must be a buffer");if(!(t instanceof Uint8Array))throw new TypeError("Second argument must be a buffer");if(e.length!==t.length)throw new TypeError("Input buffers must have the same length");let r=e.length,n=0,i=-1;for(;++i<r;)n|=e[i]^t[i];return n===0},"timingSafeEqual"),$f=wS});function Ae(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function or(e,t){return e.name===t}function ts(e){return parseInt(e.name.slice(4),10)}function vS(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function Vf(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 Gf(e,t,...r){switch(t){case"HS256":case"HS384":case"HS512":{if(!or(e.algorithm,"HMAC"))throw Ae("HMAC");let n=parseInt(t.slice(2),10);if(ts(e.algorithm.hash)!==n)throw Ae(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!or(e.algorithm,"RSASSA-PKCS1-v1_5"))throw Ae("RSASSA-PKCS1-v1_5");let n=parseInt(t.slice(2),10);if(ts(e.algorithm.hash)!==n)throw Ae(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!or(e.algorithm,"RSA-PSS"))throw Ae("RSA-PSS");let n=parseInt(t.slice(2),10);if(ts(e.algorithm.hash)!==n)throw Ae(`SHA-${n}`,"algorithm.hash");break}case"EdDSA":{if(e.algorithm.name!=="Ed25519"&&e.algorithm.name!=="Ed448")throw Ae("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!or(e.algorithm,"ECDSA"))throw Ae("ECDSA");let n=vS(t);if(e.algorithm.namedCurve!==n)throw Ae(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}Vf(e,r)}function qe(e,t,...r){switch(t){case"A128GCM":case"A192GCM":case"A256GCM":{if(!or(e.algorithm,"AES-GCM"))throw Ae("AES-GCM");let n=parseInt(t.slice(1,4),10);if(e.algorithm.length!==n)throw Ae(n,"algorithm.length");break}case"A128KW":case"A192KW":case"A256KW":{if(!or(e.algorithm,"AES-KW"))throw Ae("AES-KW");let n=parseInt(t.slice(1,4),10);if(e.algorithm.length!==n)throw Ae(n,"algorithm.length");break}case"ECDH":{switch(e.algorithm.name){case"ECDH":case"X25519":case"X448":break;default:throw Ae("ECDH, X25519, or X448")}break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":if(!or(e.algorithm,"PBKDF2"))throw Ae("PBKDF2");break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{if(!or(e.algorithm,"RSA-OAEP"))throw Ae("RSA-OAEP");let n=parseInt(t.slice(9),10)||1;if(ts(e.algorithm.hash)!==n)throw Ae(`SHA-${n}`,"algorithm.hash");break}default:throw new TypeError("CryptoKey does not support this operation")}Vf(e,r)}var sr=I(()=>{s(Ae,"unusable");s(or,"isAlgorithm");s(ts,"getHashLength");s(vS,"getNamedCurve");s(Vf,"checkUsage");s(Gf,"checkSigCryptoKey");s(qe,"checkEncCryptoKey")});function Bf(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}function ml(e,t,...r){return Bf(`Key for the ${e} algorithm must be `,t,...r)}var oe,ct=I(()=>{s(Bf,"message");oe=s((e,...t)=>Bf("Key must be ",e,...t),"default");s(ml,"withAlg")});var yl,W,ut=I(()=>{Se();yl=s(e=>ce(e),"default"),W=["CryptoKey"]});async function TS(e,t,r,n,i,o){if(!(t instanceof Uint8Array))throw new TypeError(oe(t,"Uint8Array"));let a=parseInt(e.slice(1,4),10),c=await D.subtle.importKey("raw",t.subarray(a>>3),"AES-CBC",!1,["decrypt"]),u=await D.subtle.importKey("raw",t.subarray(0,a>>3),{hash:`SHA-${a<<1}`,name:"HMAC"},!1,["sign"]),l=Ie(o,n,r,zo(o.length<<3)),d=new Uint8Array((await D.subtle.sign("HMAC",u,l)).slice(0,a>>3)),p;try{p=$f(i,d)}catch{}if(!p)throw new kt;let m;try{m=new Uint8Array(await D.subtle.decrypt({iv:n,name:"AES-CBC"},c,r))}catch{}if(!m)throw new kt;return m}async function SS(e,t,r,n,i,o){let a;t instanceof Uint8Array?a=await D.subtle.importKey("raw",t,"AES-GCM",!1,["decrypt"]):(qe(t,e,"decrypt"),a=t);try{return new Uint8Array(await D.subtle.decrypt({additionalData:o,iv:n,name:"AES-GCM",tagLength:128},a,Ie(r,i)))}catch{throw new kt}}var IS,rs,gl=I(()=>{ge();hl();fl();jf();V();Se();sr();ct();ut();s(TS,"cbcDecrypt");s(SS,"gcmDecrypt");IS=s(async(e,t,r,n,i,o)=>{if(!ce(t)&&!(t instanceof Uint8Array))throw new TypeError(oe(t,...W,"Uint8Array"));switch(es(e,n),e){case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return t instanceof Uint8Array&&Xr(t,parseInt(e.slice(-3),10)),TS(e,t,r,n,i,o);case"A128GCM":case"A192GCM":case"A256GCM":return t instanceof Uint8Array&&Xr(t,parseInt(e.slice(1,4),10)),SS(e,t,r,n,i,o);default:throw new k("Unsupported JWE Content Encryption Algorithm")}},"decrypt"),rs=IS});var Kf,Jf,bl=I(()=>{V();Kf=s(async()=>{throw new k('JWE "zip" (Compression Algorithm) Header Parameter is not supported by your javascript runtime. You need to use the `inflateRaw` decrypt option to provide Inflate Raw implementation.')},"inflate"),Jf=s(async()=>{throw new k('JWE "zip" (Compression Algorithm) Header Parameter is not supported by your javascript runtime. You need to use the `deflateRaw` encrypt option to provide Deflate Raw implementation.')},"deflate")});var PS,wt,en=I(()=>{PS=s((...e)=>{let t=e.filter(Boolean);if(t.length===0||t.length===1)return!0;let r;for(let n of t){let i=Object.keys(n);if(!r||r.size===0){r=new Set(i);continue}for(let o of i){if(r.has(o))return!1;r.add(o)}}return!0},"isDisjoint"),wt=PS});function AS(e){return typeof e=="object"&&e!==null}function Q(e){if(!AS(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 $e=I(()=>{s(AS,"isObjectLike");s(Q,"isObject")});var RS,tn,_l=I(()=>{RS=[{hash:"SHA-256",name:"HMAC"},!0,["sign"]],tn=RS});function zf(e,t){if(e.algorithm.length!==parseInt(t.slice(1,4),10))throw new TypeError(`Invalid key size for alg: ${t}`)}function Wf(e,t,r){if(ce(e))return qe(e,t,r),e;if(e instanceof Uint8Array)return D.subtle.importKey("raw",e,"AES-KW",!0,[r]);throw new TypeError(oe(e,...W,"Uint8Array"))}var li,di,ns=I(()=>{_l();Se();sr();ct();ut();s(zf,"checkKeySize");s(Wf,"getCryptoKey");li=s(async(e,t,r)=>{let n=await Wf(t,e,"wrapKey");zf(n,e);let i=await D.subtle.importKey("raw",r,...tn);return new Uint8Array(await D.subtle.wrapKey("raw",i,n,"AES-KW"))},"wrap"),di=s(async(e,t,r)=>{let n=await Wf(t,e,"unwrapKey");zf(n,e);let i=await D.subtle.unwrapKey("raw",r,n,"AES-KW",...tn);return new Uint8Array(await D.subtle.exportKey("raw",i))},"unwrap")});async function is(e,t,r,n,i=new Uint8Array(0),o=new Uint8Array(0)){if(!ce(e))throw new TypeError(oe(e,...W));if(qe(e,"ECDH"),!ce(t))throw new TypeError(oe(t,...W));qe(t,"ECDH","deriveBits");let a=Ie(Qo(Z.encode(r)),Qo(i),Qo(o),Wo(n)),c;e.algorithm.name==="X25519"?c=256:e.algorithm.name==="X448"?c=448:c=Math.ceil(parseInt(e.algorithm.namedCurve.substr(-3),10)/8)<<3;let u=new Uint8Array(await D.subtle.deriveBits({name:e.algorithm.name,public:e},t,c));return Ff(u,n,a)}async function Qf(e){if(!ce(e))throw new TypeError(oe(e,...W));return D.subtle.generateKey(e.algorithm,!0,["deriveBits"])}function os(e){if(!ce(e))throw new TypeError(oe(e,...W));return["P-256","P-384","P-521"].includes(e.algorithm.namedCurve)||e.algorithm.name==="X25519"||e.algorithm.name==="X448"}var El=I(()=>{ge();Se();sr();ct();ut();s(is,"deriveKey");s(Qf,"generateEpk");s(os,"ecdhAllowed")});function wl(e){if(!(e instanceof Uint8Array)||e.length<8)throw new A("PBES2 Salt Input must be 8 or more octets")}var Zf=I(()=>{V();s(wl,"checkP2s")});function OS(e,t){if(e instanceof Uint8Array)return D.subtle.importKey("raw",e,"PBKDF2",!1,["deriveBits"]);if(ce(e))return qe(e,t,"deriveBits","deriveKey"),e;throw new TypeError(oe(e,...W,"Uint8Array"))}async function Xf(e,t,r,n){wl(e);let i=Hf(t,e),o=parseInt(t.slice(13,16),10),a={hash:`SHA-${t.slice(8,11)}`,iterations:r,name:"PBKDF2",salt:i},c={length:o,name:"AES-KW"},u=await OS(n,t);if(u.usages.includes("deriveBits"))return new Uint8Array(await D.subtle.deriveBits(a,u,o));if(u.usages.includes("deriveKey"))return D.subtle.deriveKey(a,u,c,!1,["wrapKey","unwrapKey"]);throw new TypeError('PBKDF2 key "usages" must include "deriveBits" or "deriveKey"')}var em,tm,vl=I(()=>{ui();ge();Pe();ns();Zf();Se();sr();ct();ut();s(OS,"getCryptoKey");s(Xf,"deriveKey");em=s(async(e,t,r,n=2048,i=ir(new Uint8Array(16)))=>{let o=await Xf(i,e,n,t);return{encryptedKey:await li(e.slice(-6),o,r),p2c:n,p2s:X(i)}},"encrypt"),tm=s(async(e,t,r,n,i)=>{let o=await Xf(i,e,n,t);return di(e.slice(-6),o,r)},"decrypt")});function rn(e){switch(e){case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":return"RSA-OAEP";default:throw new k(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}var rm=I(()=>{V();s(rn,"subtleRsaEs")});var Lr,ss=I(()=>{Lr=s((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`)}},"default")});var nm,im,Tl=I(()=>{rm();_l();Se();sr();ss();ct();ut();nm=s(async(e,t,r)=>{if(!ce(t))throw new TypeError(oe(t,...W));if(qe(t,e,"encrypt","wrapKey"),Lr(e,t),t.usages.includes("encrypt"))return new Uint8Array(await D.subtle.encrypt(rn(e),t,r));if(t.usages.includes("wrapKey")){let n=await D.subtle.importKey("raw",r,...tn);return new Uint8Array(await D.subtle.wrapKey("raw",n,t,rn(e)))}throw new TypeError('RSA-OAEP key "usages" must include "encrypt" or "wrapKey" for this operation')},"encrypt"),im=s(async(e,t,r)=>{if(!ce(t))throw new TypeError(oe(t,...W));if(qe(t,e,"decrypt","unwrapKey"),Lr(e,t),t.usages.includes("decrypt"))return new Uint8Array(await D.subtle.decrypt(rn(e),t,r));if(t.usages.includes("unwrapKey")){let n=await D.subtle.unwrapKey("raw",r,t,rn(e),...tn);return new Uint8Array(await D.subtle.exportKey("raw",n))}throw new TypeError('RSA-OAEP key "usages" must include "decrypt" or "unwrapKey" for this operation')},"decrypt")});function pi(e){switch(e){case"A128GCM":return 128;case"A192GCM":return 192;case"A256GCM":case"A128CBC-HS256":return 256;case"A192CBC-HS384":return 384;case"A256CBC-HS512":return 512;default:throw new k(`Unsupported JWE Algorithm: ${e}`)}}var vt,hi=I(()=>{V();ui();s(pi,"bitLength");vt=s(e=>ir(new Uint8Array(pi(e)>>3)),"default")});var Sl,om=I(()=>{Sl=s((e,t)=>{let r=(e.match(/.{1,64}/g)||[]).join(`
57
57
  `);return`-----BEGIN ${t}-----
58
58
  ${r}
59
- -----END ${t}-----`},"default")});function am(e){let t=[],r=0;for(;r<e.length;){let n=hm(e.subarray(r));t.push(n),r+=n.byteLength}return t}function hm(e){let t=0,r=e[0]&31;if(t++,r===31){for(r=0;e[t]>=128;)r=r*128+e[t]-128,t++;r=r*128+e[t]-128,t++}let n=0;if(e[t]<128)n=e[t],t++;else if(n===128){for(n=0;e[t+n]!==0||e[t+n+1]!==0;){if(n>e.byteLength)throw new TypeError("invalid indefinite form length");n++}let o=t+n+2;return{byteLength:o,contents:e.subarray(t,t+n),raw:e.subarray(0,o)}}else{let o=e[t]&127;t++,n=0;for(let a=0;a<o;a++)n=n*256+e[t],t++}let i=t+n;return{byteLength:i,contents:e.subarray(t,i),raw:e.subarray(0,i)}}function NS(e){let t=am(am(hm(e).contents)[0].contents);return Yo(t[t[0].raw[0]===160?6:5].raw)}function xS(e){let t=e.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g,""),r=ll(t);return Sl(NS(r),"PUBLIC KEY")}var cm,um,lm,ar,sm,dm,pm,Il,fm,as=I(()=>{Se();ct();Pe();om();V();ut();cm=s(async(e,t,r)=>{if(!ce(r))throw new TypeError(oe(r,...W));if(!r.extractable)throw new TypeError("CryptoKey is not extractable");if(r.type!==e)throw new TypeError(`key is not a ${e} key`);return Sl(Yo(new Uint8Array(await D.subtle.exportKey(t,r))),`${e.toUpperCase()} KEY`)},"genericExport"),um=s(e=>cm("public","spki",e),"toSPKI"),lm=s(e=>cm("private","pkcs8",e),"toPKCS8"),ar=s((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 i=e.subarray(n,n+t.length);return i.length!==t.length?!1:i.every((o,a)=>o===t[a])||ar(e,t,n+1)},"findOid"),sm=s(e=>{switch(!0){case ar(e,[42,134,72,206,61,3,1,7]):return"P-256";case ar(e,[43,129,4,0,34]):return"P-384";case ar(e,[43,129,4,0,35]):return"P-521";case ar(e,[43,101,110]):return"X25519";case ar(e,[43,101,111]):return"X448";case ar(e,[43,101,112]):return"Ed25519";case ar(e,[43,101,113]):return"Ed448";default:throw new k("Invalid or unsupported EC Key Curve or OKP Key Sub Type")}},"getNamedCurve"),dm=s(async(e,t,r,n,i)=>{var o;let a,c,u=new Uint8Array(atob(r.replace(e,"")).split("").map(d=>d.charCodeAt(0))),l=t==="spki";switch(n){case"PS256":case"PS384":case"PS512":a={name:"RSA-PSS",hash:`SHA-${n.slice(-3)}`},c=l?["verify"]:["sign"];break;case"RS256":case"RS384":case"RS512":a={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${n.slice(-3)}`},c=l?["verify"]:["sign"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":a={name:"RSA-OAEP",hash:`SHA-${parseInt(n.slice(-3),10)||1}`},c=l?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":a={name:"ECDSA",namedCurve:"P-256"},c=l?["verify"]:["sign"];break;case"ES384":a={name:"ECDSA",namedCurve:"P-384"},c=l?["verify"]:["sign"];break;case"ES512":a={name:"ECDSA",namedCurve:"P-521"},c=l?["verify"]:["sign"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{let d=sm(u);a=d.startsWith("P-")?{name:"ECDH",namedCurve:d}:{name:d},c=l?[]:["deriveBits"];break}case"EdDSA":a={name:sm(u)},c=l?["verify"]:["sign"];break;default:throw new k('Invalid or unsupported "alg" (Algorithm) value')}return D.subtle.importKey(t,u,a,(o=i?.extractable)!==null&&o!==void 0?o:!1,c)},"genericImport"),pm=s((e,t,r)=>dm(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r),"fromPKCS8"),Il=s((e,t,r)=>dm(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g,"spki",e,t,r),"fromSPKI");s(am,"getElement");s(hm,"parseElement");s(NS,"spkiFromX509");s(xS,"getSPKI");fm=s((e,t,r)=>{let n;try{n=xS(e)}catch(i){throw new TypeError("failed to parse the X.509 certificate",{cause:i})}return Il(n,t,r)},"fromX509")});function CS(e){let t,r;switch(e.kty){case"oct":{switch(e.alg){case"HS256":case"HS384":case"HS512":t={name:"HMAC",hash:`SHA-${e.alg.slice(-3)}`},r=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":throw new k(`${e.alg} keys cannot be imported as CryptoKey instances`);case"A128GCM":case"A192GCM":case"A256GCM":case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":t={name:"AES-GCM"},r=["encrypt","decrypt"];break;case"A128KW":case"A192KW":case"A256KW":t={name:"AES-KW"},r=["wrapKey","unwrapKey"];break;case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":t={name:"PBKDF2"},r=["deriveBits"];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"RSA":{switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},r=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"EC":{switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},r=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},r=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"OKP":{switch(e.alg){case"EdDSA":t={name:e.crv},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new k('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:r}}var LS,Pl,mm=I(()=>{Se();V();Pe();s(CS,"subtleMapping");LS=s(async e=>{var t,r;if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');let{algorithm:n,keyUsages:i}=CS(e),o=[n,(t=e.ext)!==null&&t!==void 0?t:!1,(r=e.key_ops)!==null&&r!==void 0?r:i];if(n.name==="PBKDF2")return D.subtle.importKey("raw",ie(e.k),...o);let a={...e};return delete a.alg,delete a.use,D.subtle.importKey("jwk",a,...o)},"parse"),Pl=LS});async function ym(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PUBLIC KEY-----")!==0)throw new TypeError('"spki" must be SPKI formatted string');return Il(e,t,r)}async function gm(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN CERTIFICATE-----")!==0)throw new TypeError('"x509" must be X.509 formatted string');return fm(e,t,r)}async function bm(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return pm(e,t,r)}async function cr(e,t,r){var n;if(!Q(e))throw new TypeError("JWK must be an object");switch(t||(t=e.alg),e.kty){case"oct":if(typeof e.k!="string"||!e.k)throw new TypeError('missing "k" (Key Value) Parameter value');return r??(r=e.ext!==!0),r?Pl({...e,alg:t,ext:(n=e.ext)!==null&&n!==void 0?n:!1}):ie(e.k);case"RSA":if(e.oth!==void 0)throw new k('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return Pl({...e,alg:t});default:throw new k('Unsupported "kty" (Key Type) Parameter value')}}var fi=I(()=>{Pe();as();mm();V();$e();s(ym,"importSPKI");s(gm,"importX509");s(bm,"importPKCS8");s(cr,"importJWK")});var DS,US,MS,ur,mi=I(()=>{ct();ut();DS=s((e,t)=>{if(!(t instanceof Uint8Array)){if(!yl(t))throw new TypeError(ml(e,t,...W,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${W.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},"symmetricTypeCheck"),US=s((e,t,r)=>{if(!yl(t))throw new TypeError(ml(e,t,...W));if(t.type==="secret")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&t.type==="public")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&t.type==="public")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm decryption must be of type "private"`);if(t.algorithm&&r==="verify"&&t.type==="private")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);if(t.algorithm&&r==="encrypt"&&t.type==="private")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm encryption must be of type "public"`)},"asymmetricTypeCheck"),MS=s((e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?DS(e,t):US(e,t,r)},"checkKeyType"),ur=MS});async function kS(e,t,r,n,i){if(!(r instanceof Uint8Array))throw new TypeError(oe(r,"Uint8Array"));let o=parseInt(e.slice(1,4),10),a=await D.subtle.importKey("raw",r.subarray(o>>3),"AES-CBC",!1,["encrypt"]),c=await D.subtle.importKey("raw",r.subarray(0,o>>3),{hash:`SHA-${o<<1}`,name:"HMAC"},!1,["sign"]),u=new Uint8Array(await D.subtle.encrypt({iv:n,name:"AES-CBC"},a,t)),l=Ie(i,n,u,zo(i.length<<3)),d=new Uint8Array((await D.subtle.sign("HMAC",c,l)).slice(0,o>>3));return{ciphertext:u,tag:d}}async function HS(e,t,r,n,i){let o;r instanceof Uint8Array?o=await D.subtle.importKey("raw",r,"AES-GCM",!1,["encrypt"]):(qe(r,e,"encrypt"),o=r);let a=new Uint8Array(await D.subtle.encrypt({additionalData:i,iv:n,name:"AES-GCM",tagLength:128},o,t)),c=a.slice(-16);return{ciphertext:a.slice(0,-16),tag:c}}var FS,yi,Al=I(()=>{ge();hl();fl();Se();sr();ct();V();ut();s(kS,"cbcEncrypt");s(HS,"gcmEncrypt");FS=s(async(e,t,r,n,i)=>{if(!ce(r)&&!(r instanceof Uint8Array))throw new TypeError(oe(r,...W,"Uint8Array"));switch(es(e,n),e){case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return r instanceof Uint8Array&&Xr(r,parseInt(e.slice(-3),10)),kS(e,t,r,n,i);case"A128GCM":case"A192GCM":case"A256GCM":return r instanceof Uint8Array&&Xr(r,parseInt(e.slice(1,4),10)),HS(e,t,r,n,i);default:throw new k("Unsupported JWE Content Encryption Algorithm")}},"encrypt"),yi=FS});async function _m(e,t,r,n){let i=e.slice(0,7);n||(n=Zo(i));let{ciphertext:o,tag:a}=await yi(i,r,t,n,new Uint8Array(0));return{encryptedKey:o,iv:X(n),tag:X(a)}}async function Em(e,t,r,n,i){let o=e.slice(0,7);return rs(o,t,r,n,i,new Uint8Array(0))}var Rl=I(()=>{Al();gl();Xo();Pe();s(_m,"wrap");s(Em,"unwrap")});async function qS(e,t,r,n,i){switch(ur(e,t,"decrypt"),e){case"dir":{if(r!==void 0)throw new A("Encountered unexpected JWE Encrypted Key");return t}case"ECDH-ES":if(r!==void 0)throw new A("Encountered unexpected JWE Encrypted Key");case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{if(!Q(n.epk))throw new A('JOSE Header "epk" (Ephemeral Public Key) missing or invalid');if(!os(t))throw new k("ECDH with the provided key is not allowed or not supported by your javascript runtime");let o=await cr(n.epk,e),a,c;if(n.apu!==void 0){if(typeof n.apu!="string")throw new A('JOSE Header "apu" (Agreement PartyUInfo) invalid');a=ie(n.apu)}if(n.apv!==void 0){if(typeof n.apv!="string")throw new A('JOSE Header "apv" (Agreement PartyVInfo) invalid');c=ie(n.apv)}let u=await is(o,t,e==="ECDH-ES"?n.enc:e,e==="ECDH-ES"?pi(n.enc):parseInt(e.slice(-5,-2),10),a,c);if(e==="ECDH-ES")return u;if(r===void 0)throw new A("JWE Encrypted Key missing");return di(e.slice(-6),u,r)}case"RSA1_5":case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{if(r===void 0)throw new A("JWE Encrypted Key missing");return im(e,t,r)}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":{if(r===void 0)throw new A("JWE Encrypted Key missing");if(typeof n.p2c!="number")throw new A('JOSE Header "p2c" (PBES2 Count) missing or invalid');let o=i?.maxPBES2Count||1e4;if(n.p2c>o)throw new A('JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds');if(typeof n.p2s!="string")throw new A('JOSE Header "p2s" (PBES2 Salt) missing or invalid');return tm(e,t,r,n.p2c,ie(n.p2s))}case"A128KW":case"A192KW":case"A256KW":{if(r===void 0)throw new A("JWE Encrypted Key missing");return di(e,t,r)}case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":{if(r===void 0)throw new A("JWE Encrypted Key missing");if(typeof n.iv!="string")throw new A('JOSE Header "iv" (Initialization Vector) missing or invalid');if(typeof n.tag!="string")throw new A('JOSE Header "tag" (Authentication Tag) missing or invalid');let o=ie(n.iv),a=ie(n.tag);return Em(e,t,r,o,a)}default:throw new k('Invalid or unsupported "alg" (JWE Algorithm) header value')}}var wm,vm=I(()=>{ns();El();vl();Tl();Pe();V();hi();fi();mi();$e();Rl();s(qS,"decryptKeyManagement");wm=qS});function $S(e,t,r,n,i){if(i.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 o;r!==void 0?o=new Map([...Object.entries(r),...t.entries()]):o=t;for(let a of n.crit){if(!o.has(a))throw new k(`Extension Header Parameter "${a}" is not recognized`);if(i[a]===void 0)throw new e(`Extension Header Parameter "${a}" is missing`);if(o.get(a)&&n[a]===void 0)throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`)}return new Set(n.crit)}var Tt,nn=I(()=>{V();s($S,"validateCrit");Tt=$S});var jS,gi,Ol=I(()=>{jS=s((e,t)=>{if(t!==void 0&&(!Array.isArray(t)||t.some(r=>typeof r!="string")))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)},"validateAlgorithms"),gi=jS});async function on(e,t,r){var n;if(!Q(e))throw new A("Flattened JWE must be an object");if(e.protected===void 0&&e.header===void 0&&e.unprotected===void 0)throw new A("JOSE Header missing");if(typeof e.iv!="string")throw new A("JWE Initialization Vector missing or incorrect type");if(typeof e.ciphertext!="string")throw new A("JWE Ciphertext missing or incorrect type");if(typeof e.tag!="string")throw new A("JWE Authentication Tag missing or incorrect type");if(e.protected!==void 0&&typeof e.protected!="string")throw new A("JWE Protected Header incorrect type");if(e.encrypted_key!==void 0&&typeof e.encrypted_key!="string")throw new A("JWE Encrypted Key incorrect type");if(e.aad!==void 0&&typeof e.aad!="string")throw new A("JWE AAD incorrect type");if(e.header!==void 0&&!Q(e.header))throw new A("JWE Shared Unprotected Header incorrect type");if(e.unprotected!==void 0&&!Q(e.unprotected))throw new A("JWE Per-Recipient Unprotected Header incorrect type");let i;if(e.protected)try{let $=ie(e.protected);i=JSON.parse(le.decode($))}catch{throw new A("JWE Protected Header is invalid")}if(!wt(i,e.header,e.unprotected))throw new A("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");let o={...i,...e.header,...e.unprotected};if(Tt(A,new Map,r?.crit,i,o),o.zip!==void 0){if(!i||!i.zip)throw new A('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');if(o.zip!=="DEF")throw new k('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value')}let{alg:a,enc:c}=o;if(typeof a!="string"||!a)throw new A("missing JWE Algorithm (alg) in JWE Header");if(typeof c!="string"||!c)throw new A("missing JWE Encryption Algorithm (enc) in JWE Header");let u=r&&gi("keyManagementAlgorithms",r.keyManagementAlgorithms),l=r&&gi("contentEncryptionAlgorithms",r.contentEncryptionAlgorithms);if(u&&!u.has(a))throw new rr('"alg" (Algorithm) Header Parameter not allowed');if(l&&!l.has(c))throw new rr('"enc" (Encryption Algorithm) Header Parameter not allowed');let d;e.encrypted_key!==void 0&&(d=ie(e.encrypted_key));let p=!1;typeof t=="function"&&(t=await t(i,e),p=!0);let m;try{m=await wm(a,t,d,o,r)}catch($){if($ instanceof TypeError||$ instanceof A||$ instanceof k)throw $;m=vt(c)}let h=ie(e.iv),y=ie(e.tag),E=Z.encode((n=e.protected)!==null&&n!==void 0?n:""),T;e.aad!==void 0?T=Ie(E,Z.encode("."),Z.encode(e.aad)):T=E;let S=await rs(c,m,ie(e.ciphertext),h,y,T);o.zip==="DEF"&&(S=await(r?.inflateRaw||Kf)(S));let U={plaintext:S};return e.protected!==void 0&&(U.protectedHeader=i),e.aad!==void 0&&(U.additionalAuthenticatedData=ie(e.aad)),e.unprotected!==void 0&&(U.sharedUnprotectedHeader=e.unprotected),e.header!==void 0&&(U.unprotectedHeader=e.header),p?{...U,key:t}:U}var cs=I(()=>{Pe();gl();bl();V();en();$e();vm();ge();hi();nn();Ol();s(on,"flattenedDecrypt")});async function us(e,t,r){if(e instanceof Uint8Array&&(e=le.decode(e)),typeof e!="string")throw new A("Compact JWE must be a string or Uint8Array");let{0:n,1:i,2:o,3:a,4:c,length:u}=e.split(".");if(u!==5)throw new A("Invalid Compact JWE");let l=await on({ciphertext:a,iv:o||void 0,protected:n||void 0,tag:c||void 0,encrypted_key:i||void 0},t,r),d={plaintext:l.plaintext,protectedHeader:l.protectedHeader};return typeof t=="function"?{...d,key:l.key}:d}var Nl=I(()=>{cs();V();ge();s(us,"compactDecrypt")});async function Tm(e,t,r){if(!Q(e))throw new A("General JWE must be an object");if(!Array.isArray(e.recipients)||!e.recipients.every(Q))throw new A("JWE Recipients missing or incorrect type");if(!e.recipients.length)throw new A("JWE Recipients has no members");for(let n of e.recipients)try{return await on({aad:e.aad,ciphertext:e.ciphertext,encrypted_key:n.encrypted_key,header:n.header,iv:e.iv,protected:e.protected,tag:e.tag,unprotected:e.unprotected},t,r)}catch{}throw new kt}var Sm=I(()=>{cs();V();$e();s(Tm,"generalDecrypt")});var VS,Im,Pm=I(()=>{Se();ct();Pe();ut();VS=s(async e=>{if(e instanceof Uint8Array)return{kty:"oct",k:X(e)};if(!ce(e))throw new TypeError(oe(e,...W,"Uint8Array"));if(!e.extractable)throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");let{ext:t,key_ops:r,alg:n,use:i,...o}=await D.subtle.exportKey("jwk",e);return o},"keyToJWK"),Im=VS});async function Am(e){return um(e)}async function Rm(e){return lm(e)}async function ls(e){return Im(e)}var xl=I(()=>{as();as();Pm();s(Am,"exportSPKI");s(Rm,"exportPKCS8");s(ls,"exportJWK")});async function GS(e,t,r,n,i={}){let o,a,c;switch(ur(e,r,"encrypt"),e){case"dir":{c=r;break}case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{if(!os(r))throw new k("ECDH with the provided key is not allowed or not supported by your javascript runtime");let{apu:u,apv:l}=i,{epk:d}=i;d||(d=(await Qf(r)).privateKey);let{x:p,y:m,crv:h,kty:y}=await ls(d),E=await is(r,d,e==="ECDH-ES"?t:e,e==="ECDH-ES"?pi(t):parseInt(e.slice(-5,-2),10),u,l);if(a={epk:{x:p,crv:h,kty:y}},y==="EC"&&(a.epk.y=m),u&&(a.apu=X(u)),l&&(a.apv=X(l)),e==="ECDH-ES"){c=E;break}c=n||vt(t);let T=e.slice(-6);o=await li(T,E,c);break}case"RSA1_5":case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{c=n||vt(t),o=await nm(e,r,c);break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":{c=n||vt(t);let{p2c:u,p2s:l}=i;({encryptedKey:o,...a}=await em(e,r,c,u,l));break}case"A128KW":case"A192KW":case"A256KW":{c=n||vt(t),o=await li(e,r,c);break}case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":{c=n||vt(t);let{iv:u}=i;({encryptedKey:o,...a}=await _m(e,r,c,u));break}default:throw new k('Invalid or unsupported "alg" (JWE Algorithm) header value')}return{cek:c,encryptedKey:o,parameters:a}}var ds,Cl=I(()=>{ns();El();vl();Tl();Pe();hi();V();xl();mi();Rl();s(GS,"encryptKeyManagement");ds=GS});var Ll,Ht,ps=I(()=>{Pe();Al();bl();Xo();Cl();V();en();ge();nn();Ll=Symbol(),Ht=class{static{s(this,"FlattenedEncrypt")}constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("plaintext must be an instance of Uint8Array");this._plaintext=t}setKeyManagementParameters(t){if(this._keyManagementParameters)throw new TypeError("setKeyManagementParameters can only be called once");return this._keyManagementParameters=t,this}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setSharedUnprotectedHeader(t){if(this._sharedUnprotectedHeader)throw new TypeError("setSharedUnprotectedHeader can only be called once");return this._sharedUnprotectedHeader=t,this}setUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}setAdditionalAuthenticatedData(t){return this._aad=t,this}setContentEncryptionKey(t){if(this._cek)throw new TypeError("setContentEncryptionKey can only be called once");return this._cek=t,this}setInitializationVector(t){if(this._iv)throw new TypeError("setInitializationVector can only be called once");return this._iv=t,this}async encrypt(t,r){if(!this._protectedHeader&&!this._unprotectedHeader&&!this._sharedUnprotectedHeader)throw new A("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");if(!wt(this._protectedHeader,this._unprotectedHeader,this._sharedUnprotectedHeader))throw new A("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader,...this._sharedUnprotectedHeader};if(Tt(A,new Map,r?.crit,this._protectedHeader,n),n.zip!==void 0){if(!this._protectedHeader||!this._protectedHeader.zip)throw new A('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');if(n.zip!=="DEF")throw new k('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value')}let{alg:i,enc:o}=n;if(typeof i!="string"||!i)throw new A('JWE "alg" (Algorithm) Header Parameter missing or invalid');if(typeof o!="string"||!o)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');let a;if(i==="dir"){if(this._cek)throw new TypeError("setContentEncryptionKey cannot be called when using Direct Encryption")}else if(i==="ECDH-ES"&&this._cek)throw new TypeError("setContentEncryptionKey cannot be called when using Direct Key Agreement");let c;{let y;({cek:c,encryptedKey:a,parameters:y}=await ds(i,o,t,this._cek,this._keyManagementParameters)),y&&(r&&Ll in r?this._unprotectedHeader?this._unprotectedHeader={...this._unprotectedHeader,...y}:this.setUnprotectedHeader(y):this._protectedHeader?this._protectedHeader={...this._protectedHeader,...y}:this.setProtectedHeader(y))}this._iv||(this._iv=Zo(o));let u,l,d;this._protectedHeader?l=Z.encode(X(JSON.stringify(this._protectedHeader))):l=Z.encode(""),this._aad?(d=X(this._aad),u=Ie(l,Z.encode("."),Z.encode(d))):u=l;let p,m;if(n.zip==="DEF"){let y=await(r?.deflateRaw||Jf)(this._plaintext);({ciphertext:p,tag:m}=await yi(o,y,c,this._iv,u))}else({ciphertext:p,tag:m}=await yi(o,this._plaintext,c,this._iv,u));let h={ciphertext:X(p),iv:X(this._iv),tag:X(m)};return a&&(h.encrypted_key=X(a)),d&&(h.aad=d),this._protectedHeader&&(h.protected=le.decode(l)),this._sharedUnprotectedHeader&&(h.unprotected=this._sharedUnprotectedHeader),this._unprotectedHeader&&(h.header=this._unprotectedHeader),h}}});var Dl,hs,Om=I(()=>{ps();V();hi();en();Cl();Pe();nn();Dl=class{static{s(this,"IndividualRecipient")}constructor(t,r,n){this.parent=t,this.key=r,this.options=n}setUnprotectedHeader(t){if(this.unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this.unprotectedHeader=t,this}addRecipient(...t){return this.parent.addRecipient(...t)}encrypt(...t){return this.parent.encrypt(...t)}done(){return this.parent}},hs=class{static{s(this,"GeneralEncrypt")}constructor(t){this._recipients=[],this._plaintext=t}addRecipient(t,r){let n=new Dl(this,t,{crit:r?.crit});return this._recipients.push(n),n}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setSharedUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setSharedUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}setAdditionalAuthenticatedData(t){return this._aad=t,this}async encrypt(t){var r,n,i;if(!this._recipients.length)throw new A("at least one recipient must be added");if(t={deflateRaw:t?.deflateRaw},this._recipients.length===1){let[u]=this._recipients,l=await new Ht(this._plaintext).setAdditionalAuthenticatedData(this._aad).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(u.unprotectedHeader).encrypt(u.key,{...u.options,...t}),d={ciphertext:l.ciphertext,iv:l.iv,recipients:[{}],tag:l.tag};return l.aad&&(d.aad=l.aad),l.protected&&(d.protected=l.protected),l.unprotected&&(d.unprotected=l.unprotected),l.encrypted_key&&(d.recipients[0].encrypted_key=l.encrypted_key),l.header&&(d.recipients[0].header=l.header),d}let o;for(let u=0;u<this._recipients.length;u++){let l=this._recipients[u];if(!wt(this._protectedHeader,this._unprotectedHeader,l.unprotectedHeader))throw new A("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");let d={...this._protectedHeader,...this._unprotectedHeader,...l.unprotectedHeader},{alg:p}=d;if(typeof p!="string"||!p)throw new A('JWE "alg" (Algorithm) Header Parameter missing or invalid');if(p==="dir"||p==="ECDH-ES")throw new A('"dir" and "ECDH-ES" alg may only be used with a single recipient');if(typeof d.enc!="string"||!d.enc)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');if(!o)o=d.enc;else if(o!==d.enc)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients');if(Tt(A,new Map,l.options.crit,this._protectedHeader,d),d.zip!==void 0&&(!this._protectedHeader||!this._protectedHeader.zip))throw new A('JWE "zip" (Compression Algorithm) Header MUST be integrity protected')}let a=vt(o),c={ciphertext:"",iv:"",recipients:[],tag:""};for(let u=0;u<this._recipients.length;u++){let l=this._recipients[u],d={};c.recipients.push(d);let m={...this._protectedHeader,...this._unprotectedHeader,...l.unprotectedHeader}.alg.startsWith("PBES2")?2048+u:void 0;if(u===0){let E=await new Ht(this._plaintext).setAdditionalAuthenticatedData(this._aad).setContentEncryptionKey(a).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(l.unprotectedHeader).setKeyManagementParameters({p2c:m}).encrypt(l.key,{...l.options,...t,[Ll]:!0});c.ciphertext=E.ciphertext,c.iv=E.iv,c.tag=E.tag,E.aad&&(c.aad=E.aad),E.protected&&(c.protected=E.protected),E.unprotected&&(c.unprotected=E.unprotected),d.encrypted_key=E.encrypted_key,E.header&&(d.header=E.header);continue}let{encryptedKey:h,parameters:y}=await ds(((r=l.unprotectedHeader)===null||r===void 0?void 0:r.alg)||((n=this._protectedHeader)===null||n===void 0?void 0:n.alg)||((i=this._unprotectedHeader)===null||i===void 0?void 0:i.alg),o,l.key,a,{p2c:m});d.encrypted_key=X(h),(l.unprotectedHeader||y)&&(d.header={...l.unprotectedHeader,...y})}return c}}});function bi(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 k(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}var Ul=I(()=>{V();s(bi,"subtleDsa")});function _i(e,t,r){if(ce(t))return Gf(t,e,r),t;if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(oe(t,...W));return D.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[r])}throw new TypeError(oe(t,...W,"Uint8Array"))}var Ml=I(()=>{Se();sr();ct();ut();s(_i,"getCryptoKey")});var BS,Nm,xm=I(()=>{Ul();Se();ss();Ml();BS=s(async(e,t,r,n)=>{let i=await _i(e,t,"verify");Lr(e,i);let o=bi(e,i.algorithm);try{return await D.subtle.verify(o,i,r,n)}catch{return!1}},"verify"),Nm=BS});async function sn(e,t,r){var n;if(!Q(e))throw new z("Flattened JWS must be an object");if(e.protected===void 0&&e.header===void 0)throw new z('Flattened JWS must have either of the "protected" or "header" members');if(e.protected!==void 0&&typeof e.protected!="string")throw new z("JWS Protected Header incorrect type");if(e.payload===void 0)throw new z("JWS Payload missing");if(typeof e.signature!="string")throw new z("JWS Signature missing or incorrect type");if(e.header!==void 0&&!Q(e.header))throw new z("JWS Unprotected Header incorrect type");let i={};if(e.protected)try{let T=ie(e.protected);i=JSON.parse(le.decode(T))}catch{throw new z("JWS Protected Header is invalid")}if(!wt(i,e.header))throw new z("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...i,...e.header},a=Tt(z,new Map([["b64",!0]]),r?.crit,i,o),c=!0;if(a.has("b64")&&(c=i.b64,typeof c!="boolean"))throw new z('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:u}=o;if(typeof u!="string"||!u)throw new z('JWS "alg" (Algorithm) Header Parameter missing or invalid');let l=r&&gi("algorithms",r.algorithms);if(l&&!l.has(u))throw new rr('"alg" (Algorithm) Header Parameter not allowed');if(c){if(typeof e.payload!="string")throw new z("JWS Payload must be a string")}else if(typeof e.payload!="string"&&!(e.payload instanceof Uint8Array))throw new z("JWS Payload must be a string or an Uint8Array instance");let d=!1;typeof t=="function"&&(t=await t(i,e),d=!0),ur(u,t,"verify");let p=Ie(Z.encode((n=e.protected)!==null&&n!==void 0?n:""),Z.encode("."),typeof e.payload=="string"?Z.encode(e.payload):e.payload),m=ie(e.signature);if(!await Nm(u,t,m,p))throw new Cr;let y;c?y=ie(e.payload):typeof e.payload=="string"?y=Z.encode(e.payload):y=e.payload;let E={payload:y};return e.protected!==void 0&&(E.protectedHeader=i),e.header!==void 0&&(E.unprotectedHeader=e.header),d?{...E,key:t}:E}var fs=I(()=>{Pe();xm();V();ge();en();$e();mi();nn();Ol();s(sn,"flattenedVerify")});async function ms(e,t,r){if(e instanceof Uint8Array&&(e=le.decode(e)),typeof e!="string")throw new z("Compact JWS must be a string or Uint8Array");let{0:n,1:i,2:o,length:a}=e.split(".");if(a!==3)throw new z("Invalid Compact JWS");let c=await sn({payload:i,protected:n,signature:o},t,r),u={payload:c.payload,protectedHeader:c.protectedHeader};return typeof t=="function"?{...u,key:c.key}:u}var kl=I(()=>{fs();V();ge();s(ms,"compactVerify")});async function Cm(e,t,r){if(!Q(e))throw new z("General JWS must be an object");if(!Array.isArray(e.signatures)||!e.signatures.every(Q))throw new z("JWS Signatures missing or incorrect type");for(let n of e.signatures)try{return await sn({header:n.header,payload:e.payload,protected:n.protected,signature:n.signature},t,r)}catch{}throw new Cr}var Lm=I(()=>{fs();V();$e();s(Cm,"generalVerify")});var an,Hl=I(()=>{an=s(e=>Math.floor(e.getTime()/1e3),"default")});var KS,cn,Fl=I(()=>{KS=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,cn=s(e=>{let t=KS.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)}},"default")});var Dm,JS,un,ys=I(()=>{V();ge();Hl();Fl();$e();Dm=s(e=>e.toLowerCase().replace(/^application\//,""),"normalizeTyp"),JS=s((e,t)=>typeof e=="string"?t.includes(e):Array.isArray(e)?t.some(Set.prototype.has.bind(new Set(e))):!1,"checkAudiencePresence"),un=s((e,t,r={})=>{let{typ:n}=r;if(n&&(typeof e.typ!="string"||Dm(e.typ)!==Dm(n)))throw new be('unexpected "typ" JWT header value',"typ","check_failed");let i;try{i=JSON.parse(le.decode(t))}catch{}if(!Q(i))throw new de("JWT Claims Set must be a top-level JSON object");let{requiredClaims:o=[],issuer:a,subject:c,audience:u,maxTokenAge:l}=r;l!==void 0&&o.push("iat"),u!==void 0&&o.push("aud"),c!==void 0&&o.push("sub"),a!==void 0&&o.push("iss");for(let h of new Set(o.reverse()))if(!(h in i))throw new be(`missing required "${h}" claim`,h,"missing");if(a&&!(Array.isArray(a)?a:[a]).includes(i.iss))throw new be('unexpected "iss" claim value',"iss","check_failed");if(c&&i.sub!==c)throw new be('unexpected "sub" claim value',"sub","check_failed");if(u&&!JS(i.aud,typeof u=="string"?[u]:u))throw new be('unexpected "aud" claim value',"aud","check_failed");let d;switch(typeof r.clockTolerance){case"string":d=cn(r.clockTolerance);break;case"number":d=r.clockTolerance;break;case"undefined":d=0;break;default:throw new TypeError("Invalid clockTolerance option type")}let{currentDate:p}=r,m=an(p||new Date);if((i.iat!==void 0||l)&&typeof i.iat!="number")throw new be('"iat" claim must be a number',"iat","invalid");if(i.nbf!==void 0){if(typeof i.nbf!="number")throw new be('"nbf" claim must be a number',"nbf","invalid");if(i.nbf>m+d)throw new be('"nbf" claim timestamp check failed',"nbf","check_failed")}if(i.exp!==void 0){if(typeof i.exp!="number")throw new be('"exp" claim must be a number',"exp","invalid");if(i.exp<=m-d)throw new Zr('"exp" claim timestamp check failed',"exp","check_failed")}if(l){let h=m-i.iat,y=typeof l=="number"?l:cn(l);if(h-d>y)throw new Zr('"iat" claim timestamp check failed (too far in the past)',"iat","check_failed");if(h<0-d)throw new be('"iat" claim timestamp check failed (it should be in the past)',"iat","check_failed")}return i},"default")});async function Um(e,t,r){var n;let i=await ms(e,t,r);if(!((n=i.protectedHeader.crit)===null||n===void 0)&&n.includes("b64")&&i.protectedHeader.b64===!1)throw new de("JWTs MUST NOT use unencoded payload");let a={payload:un(i.protectedHeader,i.payload,r),protectedHeader:i.protectedHeader};return typeof t=="function"?{...a,key:i.key}:a}var Mm=I(()=>{kl();ys();V();s(Um,"jwtVerify")});async function km(e,t,r){let n=await us(e,t,r),i=un(n.protectedHeader,n.plaintext,r),{protectedHeader:o}=n;if(o.iss!==void 0&&o.iss!==i.iss)throw new be('replicated "iss" claim header parameter mismatch',"iss","mismatch");if(o.sub!==void 0&&o.sub!==i.sub)throw new be('replicated "sub" claim header parameter mismatch',"sub","mismatch");if(o.aud!==void 0&&JSON.stringify(o.aud)!==JSON.stringify(i.aud))throw new be('replicated "aud" claim header parameter mismatch',"aud","mismatch");let a={payload:i,protectedHeader:o};return typeof t=="function"?{...a,key:n.key}:a}var Hm=I(()=>{Nl();ys();V();s(km,"jwtDecrypt")});var ln,ql=I(()=>{ps();ln=class{static{s(this,"CompactEncrypt")}constructor(t){this._flattened=new Ht(t)}setContentEncryptionKey(t){return this._flattened.setContentEncryptionKey(t),this}setInitializationVector(t){return this._flattened.setInitializationVector(t),this}setProtectedHeader(t){return this._flattened.setProtectedHeader(t),this}setKeyManagementParameters(t){return this._flattened.setKeyManagementParameters(t),this}async encrypt(t,r){let n=await this._flattened.encrypt(t,r);return[n.protected,n.encrypted_key,n.iv,n.ciphertext,n.tag].join(".")}}});var zS,Fm,qm=I(()=>{Ul();Se();ss();Ml();zS=s(async(e,t,r)=>{let n=await _i(e,t,"sign");Lr(e,n);let i=await D.subtle.sign(bi(e,n.algorithm),n,r);return new Uint8Array(i)},"sign"),Fm=zS});var lr,gs=I(()=>{Pe();qm();en();V();ge();mi();nn();lr=class{static{s(this,"FlattenedSign")}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 z("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!wt(this._protectedHeader,this._unprotectedHeader))throw new z("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader},i=Tt(z,new Map([["b64",!0]]),r?.crit,this._protectedHeader,n),o=!0;if(i.has("b64")&&(o=this._protectedHeader.b64,typeof o!="boolean"))throw new z('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:a}=n;if(typeof a!="string"||!a)throw new z('JWS "alg" (Algorithm) Header Parameter missing or invalid');ur(a,t,"sign");let c=this._payload;o&&(c=Z.encode(X(c)));let u;this._protectedHeader?u=Z.encode(X(JSON.stringify(this._protectedHeader))):u=Z.encode("");let l=Ie(u,Z.encode("."),c),d=await Fm(a,t,l),p={signature:X(d),payload:""};return o&&(p.payload=le.decode(c)),this._unprotectedHeader&&(p.header=this._unprotectedHeader),this._protectedHeader&&(p.protected=le.decode(u)),p}}});var dn,$l=I(()=>{gs();dn=class{static{s(this,"CompactSign")}constructor(t){this._flattened=new lr(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}`}}});var jl,bs,$m=I(()=>{gs();V();jl=class{static{s(this,"IndividualSignature")}constructor(t,r,n){this.parent=t,this.key=r,this.options=n}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}addSignature(...t){return this.parent.addSignature(...t)}sign(...t){return this.parent.sign(...t)}done(){return this.parent}},bs=class{static{s(this,"GeneralSign")}constructor(t){this._signatures=[],this._payload=t}addSignature(t,r){let n=new jl(this,t,r);return this._signatures.push(n),n}async sign(){if(!this._signatures.length)throw new z("at least one signature must be added");let t={signatures:[],payload:""};for(let r=0;r<this._signatures.length;r++){let n=this._signatures[r],i=new lr(this._payload);i.setProtectedHeader(n.protectedHeader),i.setUnprotectedHeader(n.unprotectedHeader);let{payload:o,...a}=await i.sign(n.key,n.options);if(r===0)t.payload=o;else if(t.payload!==o)throw new z("inconsistent use of JWS Unencoded Payload (RFC7797)");t.signatures.push(a)}return t}}});var dr,_s=I(()=>{Hl();$e();Fl();dr=class{static{s(this,"ProduceJWT")}constructor(t){if(!Q(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:t}:this._payload={...this._payload,nbf:an(new Date)+cn(t)},this}setExpirationTime(t){return typeof t=="number"?this._payload={...this._payload,exp:t}:this._payload={...this._payload,exp:an(new Date)+cn(t)},this}setIssuedAt(t){return typeof t>"u"?this._payload={...this._payload,iat:an(new Date)}:this._payload={...this._payload,iat:t},this}}});var Es,jm=I(()=>{$l();V();ge();_s();Es=class extends dr{static{s(this,"SignJWT")}setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){var n;let i=new dn(Z.encode(JSON.stringify(this._payload)));if(i.setProtectedHeader(this._protectedHeader),Array.isArray((n=this._protectedHeader)===null||n===void 0?void 0:n.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new de("JWTs MUST NOT use unencoded payload");return i.sign(t,r)}}});var ws,Vm=I(()=>{ql();ge();_s();ws=class extends dr{static{s(this,"EncryptJWT")}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setKeyManagementParameters(t){if(this._keyManagementParameters)throw new TypeError("setKeyManagementParameters can only be called once");return this._keyManagementParameters=t,this}setContentEncryptionKey(t){if(this._cek)throw new TypeError("setContentEncryptionKey can only be called once");return this._cek=t,this}setInitializationVector(t){if(this._iv)throw new TypeError("setInitializationVector can only be called once");return this._iv=t,this}replicateIssuerAsHeader(){return this._replicateIssuerAsHeader=!0,this}replicateSubjectAsHeader(){return this._replicateSubjectAsHeader=!0,this}replicateAudienceAsHeader(){return this._replicateAudienceAsHeader=!0,this}async encrypt(t,r){let n=new ln(Z.encode(JSON.stringify(this._payload)));return this._replicateIssuerAsHeader&&(this._protectedHeader={...this._protectedHeader,iss:this._payload.iss}),this._replicateSubjectAsHeader&&(this._protectedHeader={...this._protectedHeader,sub:this._payload.sub}),this._replicateAudienceAsHeader&&(this._protectedHeader={...this._protectedHeader,aud:this._payload.aud}),n.setProtectedHeader(this._protectedHeader),this._iv&&n.setInitializationVector(this._iv),this._cek&&n.setContentEncryptionKey(this._cek),this._keyManagementParameters&&n.setKeyManagementParameters(this._keyManagementParameters),n.encrypt(t,r)}}});async function Vl(e,t){if(!Q(e))throw new TypeError("JWK must be an object");if(t??(t="sha256"),t!=="sha256"&&t!=="sha384"&&t!=="sha512")throw new TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');let r;switch(e.kty){case"EC":pr(e.crv,'"crv" (Curve) Parameter'),pr(e.x,'"x" (X Coordinate) Parameter'),pr(e.y,'"y" (Y Coordinate) Parameter'),r={crv:e.crv,kty:e.kty,x:e.x,y:e.y};break;case"OKP":pr(e.crv,'"crv" (Subtype of Key Pair) Parameter'),pr(e.x,'"x" (Public Key) Parameter'),r={crv:e.crv,kty:e.kty,x:e.x};break;case"RSA":pr(e.e,'"e" (Exponent) Parameter'),pr(e.n,'"n" (Modulus) Parameter'),r={e:e.e,kty:e.kty,n:e.n};break;case"oct":pr(e.k,'"k" (Key Value) Parameter'),r={k:e.k,kty:e.kty};break;default:throw new k('"kty" (Key Type) Parameter missing or unsupported')}let n=Z.encode(JSON.stringify(r));return X(await Ko(t,n))}async function Gm(e,t){t??(t="sha256");let r=await Vl(e,t);return`urn:ietf:params:oauth:jwk-thumbprint:sha-${t.slice(-3)}:${r}`}var pr,Bm=I(()=>{cl();Pe();V();ge();$e();pr=s((e,t)=>{if(typeof e!="string"||!e)throw new si(`${t} missing or invalid`)},"check");s(Vl,"calculateJwkThumbprint");s(Gm,"calculateJwkThumbprintUri")});async function Km(e,t){let r={...e,...t?.header};if(!Q(r.jwk))throw new z('"jwk" (JSON Web Key) Header Parameter must be a JSON object');let n=await cr({...r.jwk,ext:!0},r.alg,!0);if(n instanceof Uint8Array||n.type!=="public")throw new z('"jwk" (JSON Web Key) Header Parameter must be a public key');return n}var Jm=I(()=>{fi();$e();V();s(Km,"EmbeddedJWK")});function WS(e){switch(typeof e=="string"&&e.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";default:throw new k('Unsupported "alg" value for a JSON Web Key Set')}}function Gl(e){return e&&typeof e=="object"&&Array.isArray(e.keys)&&e.keys.every(QS)}function QS(e){return Q(e)}function YS(e){return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}async function zm(e,t,r){let n=e.get(t)||e.set(t,{}).get(t);if(n[r]===void 0){let i=await cr({...t,ext:!0},r);if(i instanceof Uint8Array||i.type!=="public")throw new nr("JSON Web Key Set members must be public keys");n[r]=i}return n[r]}function Wm(e){let t=new Ei(e);return async function(r,n){return t.getKey(r,n)}}var Ei,Bl=I(()=>{fi();V();$e();s(WS,"getKtyFromAlg");s(Gl,"isJWKSLike");s(QS,"isJWKLike");s(YS,"clone");Ei=class{static{s(this,"LocalJWKSet")}constructor(t){if(this._cached=new WeakMap,!Gl(t))throw new nr("JSON Web Key Set malformed");this._jwks=YS(t)}async getKey(t,r){let{alg:n,kid:i}={...t,...r?.header},o=WS(n),a=this._jwks.keys.filter(l=>{let d=o===l.kty;if(d&&typeof i=="string"&&(d=i===l.kid),d&&typeof l.alg=="string"&&(d=n===l.alg),d&&typeof l.use=="string"&&(d=l.use==="sig"),d&&Array.isArray(l.key_ops)&&(d=l.key_ops.includes("verify")),d&&n==="EdDSA"&&(d=l.crv==="Ed25519"||l.crv==="Ed448"),d)switch(n){case"ES256":d=l.crv==="P-256";break;case"ES256K":d=l.crv==="secp256k1";break;case"ES384":d=l.crv==="P-384";break;case"ES512":d=l.crv==="P-521";break}return d}),{0:c,length:u}=a;if(u===0)throw new xr;if(u!==1){let l=new ai,{_cached:d}=this;throw l[Symbol.asyncIterator]=async function*(){for(let p of a)try{yield await zm(d,p,n)}catch{continue}},l}return zm(this._cached,c,n)}};s(zm,"importWithAlgCache");s(Wm,"createLocalJWKSet")});var ZS,Qm,Ym=I(()=>{V();ZS=s(async(e,t,r)=>{let n,i,o=!1;typeof AbortController=="function"&&(n=new AbortController,i=setTimeout(()=>{o=!0,n.abort()},t));let a=await fetch(e.href,{signal:n?n.signal:void 0,redirect:"manual",headers:r.headers}).catch(c=>{throw o?new ci:c});if(i!==void 0&&clearTimeout(i),a.status!==200)throw new fe("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await a.json()}catch{throw new fe("Failed to parse the JSON Web Key Set HTTP response as JSON")}},"fetchJwks"),Qm=ZS});function XS(){return typeof WebSocketPair<"u"||typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"||typeof EdgeRuntime<"u"&&EdgeRuntime==="vercel"}function Zm(e,t){let r=new Kl(e,t);return async function(n,i){return r.getKey(n,i)}}var Kl,Xm=I(()=>{Ym();V();Bl();s(XS,"isCloudflareWorkers");Kl=class extends Ei{static{s(this,"RemoteJWKSet")}constructor(t,r){if(super({keys:[]}),this._jwks=void 0,!(t instanceof URL))throw new TypeError("url must be an instance of URL");this._url=new URL(t.href),this._options={agent:r?.agent,headers:r?.headers},this._timeoutDuration=typeof r?.timeoutDuration=="number"?r?.timeoutDuration:5e3,this._cooldownDuration=typeof r?.cooldownDuration=="number"?r?.cooldownDuration:3e4,this._cacheMaxAge=typeof r?.cacheMaxAge=="number"?r?.cacheMaxAge:6e5}coolingDown(){return typeof this._jwksTimestamp=="number"?Date.now()<this._jwksTimestamp+this._cooldownDuration:!1}fresh(){return typeof this._jwksTimestamp=="number"?Date.now()<this._jwksTimestamp+this._cacheMaxAge:!1}async getKey(t,r){(!this._jwks||!this.fresh())&&await this.reload();try{return await super.getKey(t,r)}catch(n){if(n instanceof xr&&this.coolingDown()===!1)return await this.reload(),super.getKey(t,r);throw n}}async reload(){this._pendingFetch&&XS()&&(this._pendingFetch=void 0),this._pendingFetch||(this._pendingFetch=Qm(this._url,this._timeoutDuration,this._options).then(t=>{if(!Gl(t))throw new nr("JSON Web Key Set malformed");this._jwks={keys:t.keys},this._jwksTimestamp=Date.now(),this._pendingFetch=void 0}).catch(t=>{throw this._pendingFetch=void 0,t})),await this._pendingFetch}};s(Zm,"createRemoteJWKSet")});var vs,ey=I(()=>{Pe();ge();V();ys();_s();vs=class extends dr{static{s(this,"UnsecuredJWT")}encode(){let t=X(JSON.stringify({alg:"none"})),r=X(JSON.stringify(this._payload));return`${t}.${r}.`}static decode(t,r){if(typeof t!="string")throw new de("Unsecured JWT must be a string");let{0:n,1:i,2:o,length:a}=t.split(".");if(a!==3||o!=="")throw new de("Invalid Unsecured JWT");let c;try{if(c=JSON.parse(le.decode(ie(n))),c.alg!=="none")throw new Error}catch{throw new de("Invalid Unsecured JWT")}return{payload:un(c,ie(i),r),header:c}}}});var Jl={};ro(Jl,{decode:()=>wi,encode:()=>eI});var eI,wi,Ts=I(()=>{Pe();eI=X,wi=ie});function ty(e){let t;if(typeof e=="string"){let r=e.split(".");(r.length===3||r.length===5)&&([t]=r)}else if(typeof e=="object"&&e)if("protected"in e)t=e.protected;else throw new TypeError("Token does not contain a Protected Header");try{if(typeof t!="string"||!t)throw new Error;let r=JSON.parse(le.decode(wi(t)));if(!Q(r))throw new Error;return r}catch{throw new TypeError("Invalid Token or Protected Header formatting")}}var ry=I(()=>{Ts();ge();$e();s(ty,"decodeProtectedHeader")});function ny(e){if(typeof e!="string")throw new de("JWTs must use Compact JWS serialization, JWT must be a string");let{1:t,length:r}=e.split(".");if(r===5)throw new de("Only JWTs using Compact JWS serialization can be decoded");if(r!==3)throw new de("Invalid JWT");if(!t)throw new de("JWTs must contain a payload");let n;try{n=wi(t)}catch{throw new de("Failed to parse the base64url encoded payload")}let i;try{i=JSON.parse(le.decode(n))}catch{throw new de("Failed to parse the decoded payload as JSON")}if(!Q(i))throw new de("Invalid JWT Claims Set");return i}var iy=I(()=>{Ts();ge();$e();V();s(ny,"decodeJwt")});async function oy(e,t){var r;let n,i,o;switch(e){case"HS256":case"HS384":case"HS512":n=parseInt(e.slice(-3),10),i={name:"HMAC",hash:`SHA-${n}`,length:n},o=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return n=parseInt(e.slice(-3),10),ir(new Uint8Array(n>>3));case"A128KW":case"A192KW":case"A256KW":n=parseInt(e.slice(1,4),10),i={name:"AES-KW",length:n},o=["wrapKey","unwrapKey"];break;case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":case"A128GCM":case"A192GCM":case"A256GCM":n=parseInt(e.slice(1,4),10),i={name:"AES-GCM",length:n},o=["encrypt","decrypt"];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}return D.subtle.generateKey(i,(r=t?.extractable)!==null&&r!==void 0?r:!1,o)}function zl(e){var t;let r=(t=e?.modulusLength)!==null&&t!==void 0?t:2048;if(typeof r!="number"||r<2048)throw new k("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");return r}async function sy(e,t){var r,n,i;let o,a;switch(e){case"PS256":case"PS384":case"PS512":o={name:"RSA-PSS",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:zl(t)},a=["sign","verify"];break;case"RS256":case"RS384":case"RS512":o={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:zl(t)},a=["sign","verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":o={name:"RSA-OAEP",hash:`SHA-${parseInt(e.slice(-3),10)||1}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:zl(t)},a=["decrypt","unwrapKey","encrypt","wrapKey"];break;case"ES256":o={name:"ECDSA",namedCurve:"P-256"},a=["sign","verify"];break;case"ES384":o={name:"ECDSA",namedCurve:"P-384"},a=["sign","verify"];break;case"ES512":o={name:"ECDSA",namedCurve:"P-521"},a=["sign","verify"];break;case"EdDSA":a=["sign","verify"];let c=(r=t?.crv)!==null&&r!==void 0?r:"Ed25519";switch(c){case"Ed25519":case"Ed448":o={name:c};break;default:throw new k("Invalid or unsupported crv option provided")}break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{a=["deriveKey","deriveBits"];let u=(n=t?.crv)!==null&&n!==void 0?n:"P-256";switch(u){case"P-256":case"P-384":case"P-521":{o={name:"ECDH",namedCurve:u};break}case"X25519":case"X448":o={name:u};break;default:throw new k("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448")}break}default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}return D.subtle.generateKey(o,(i=t?.extractable)!==null&&i!==void 0?i:!1,a)}var Wl=I(()=>{Se();V();ui();s(oy,"generateSecret");s(zl,"getModulusLengthOption");s(sy,"generateKeyPair")});async function ay(e,t){return sy(e,t)}var cy=I(()=>{Wl();s(ay,"generateKeyPair")});async function uy(e,t){return oy(e,t)}var ly=I(()=>{Wl();s(uy,"generateSecret")});var Ss={};ro(Ss,{CompactEncrypt:()=>ln,CompactSign:()=>dn,EmbeddedJWK:()=>Km,EncryptJWT:()=>ws,FlattenedEncrypt:()=>Ht,FlattenedSign:()=>lr,GeneralEncrypt:()=>hs,GeneralSign:()=>bs,SignJWT:()=>Es,UnsecuredJWT:()=>vs,base64url:()=>Jl,calculateJwkThumbprint:()=>Vl,calculateJwkThumbprintUri:()=>Gm,compactDecrypt:()=>us,compactVerify:()=>ms,createLocalJWKSet:()=>Wm,createRemoteJWKSet:()=>Zm,decodeJwt:()=>ny,decodeProtectedHeader:()=>ty,errors:()=>dl,exportJWK:()=>ls,exportPKCS8:()=>Rm,exportSPKI:()=>Am,flattenedDecrypt:()=>on,flattenedVerify:()=>sn,generalDecrypt:()=>Tm,generalVerify:()=>Cm,generateKeyPair:()=>ay,generateSecret:()=>uy,importJWK:()=>cr,importPKCS8:()=>bm,importSPKI:()=>ym,importX509:()=>gm,jwtDecrypt:()=>km,jwtVerify:()=>Um});var Is=I(()=>{Nl();cs();Sm();Om();kl();fs();Lm();Mm();Hm();ql();ps();$l();gs();$m();jm();Vm();Bm();Jm();Bl();Xm();ey();xl();fi();ry();iy();V();cy();ly();Ts()});var vi=g(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.fetchRetry=void 0;var tI=C();async function rI(e,t,r){for(let n=0;n<=e.retries;n++){let i=fetch(t,r);if(n===e.retries)return i;let o=await i;if(o.status<500&&o.status!==429)return o;e?.logger?.error("Request failed, retrying",{method:typeof t=="string"?"GET":t.method,url:typeof t=="string"?t:t.url,status:o.status}),await new Promise(a=>setTimeout(a,e.retryDelayMs*Math.pow(2,n)))}throw new tI.ConfigurationError("An unknown error occurred, ensure retries is not negative")}s(rI,"fetchRetry");Ps.fetchRetry=rI});var pn=g(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.GcpServiceAccount=Xe.fetchToken=Xe.exchangeGgpJwtForIdToken=Xe.exchangeFirebaseJwtForIdToken=Xe.getTokenFromGcpServiceAccount=void 0;var dy=(Is(),no(Ss)),nI=C(),iI=vi();async function oI({serviceAccount:e,audience:t,expirationTime:r="1h",payload:n={}}){let{clientEmail:i,privateKeyId:o,privateKey:a}=e;return await new dy.SignJWT(n).setProtectedHeader({alg:"RS256",kid:o}).setIssuer(i).setSubject(i).setAudience(t).setIssuedAt().setExpirationTime(r).sign(a)}s(oI,"getTokenFromGcpServiceAccount");Xe.getTokenFromGcpServiceAccount=oI;async function sI(e,t,r){return Yl(e,{token:t,returnSecureToken:!0},r)}s(sI,"exchangeFirebaseJwtForIdToken");Xe.exchangeFirebaseJwtForIdToken=sI;async function aI(e,t,r){return Yl(e,{grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:t},r)}s(aI,"exchangeGgpJwtForIdToken");Xe.exchangeGgpJwtForIdToken=aI;async function Yl(e,t,r){let n=await(0,iI.fetchRetry)(r,e,{method:"POST",headers:{"Content-Type":"application/json"},redirect:"follow",body:JSON.stringify(t)});if(n.status!==200){let o;try{let a=await n.text(),c=JSON.parse(a);o={cause:c.error??c}}catch{}throw new nI.RuntimeError({message:"Could not get token from Google Identity",extensionMembers:o})}return await n.json()}s(Yl,"fetchToken");Xe.fetchToken=Yl;var Ql=class e{static{s(this,"GcpServiceAccount")}#e;#t;constructor({serviceAccount:t,privateKey:r}){this.#t=t,this.#e=r}static async init(t){let r=JSON.parse(t),n=await(0,dy.importPKCS8)(r.private_key.trim(),"RS256");return new e({serviceAccount:r,privateKey:n})}get type(){return this.#t.type}get projectId(){return this.#t.project_id}get privateKeyId(){return this.#t.private_key_id}get privateKey(){return this.#e}get clientEmail(){return this.#t.client_email}get clientId(){return this.#t.client_id}get authUri(){return this.#t.auth_uri}get tokenUrl(){return this.#t.token_url}get authProviderX509CertUrl(){return this.#t.auth_provider_x509_cert_url}get clientX509CertUrl(){return this.#t.client_x509_cert_url}get universalDomain(){return this.#t.universe_domain}};Xe.GcpServiceAccount=Ql});var Rs=g(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.GoogleLogTransport=Ft.ZuploToGCPMap=Ft.GoogleCloudLoggingPlugin=void 0;var cI=C(),uI=Te(),Zl=Y(),Xl=pn(),lI=Mt(),py=Et(),ed=class extends lI.LogPlugin{static{s(this,"GoogleCloudLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new As(this.options)}};Ft.GoogleCloudLoggingPlugin=ed;var dI="https://logging.googleapis.com/v2/entries:write?alt=json";Ft.ZuploToGCPMap={error:"ERROR",warn:"WARNING",info:"INFO",debug:"DEBUG"};var As=class{static{s(this,"GoogleLogTransport")}constructor(t){this.#r=t.logName,this.#e=t.serviceAccountJson,this.#i=Zl.Environment.instance.loggingEnvironmentType,this.#o=Zl.Environment.instance.loggingEnvironmentStage,this.#n=Zl.Environment.instance.deploymentName}#e;#t;#r;#n;#i;#o;async init(){this.#t=await Xl.GcpServiceAccount.init(this.#e)}log(t,r){if(!this.#t)throw new cI.SystemError("Invalid state - Google log transport is not initialized");if(t.messages.length===0)return;let n={allMessages:(0,py.makeErrorsSerializable)(t.messages)},i=this.#t.projectId??"zuplo-production",o={logName:this.#r,resource:{type:"global"},severity:Ft.ZuploToGCPMap[t.level],timestamp:t.timestamp,trace:`projects/${i}/traces/${t.requestId}`,labels:{requestId:t.requestId,buildId:t.buildId,source:t.logSource,loggingId:t.loggingId,logOwner:t.logOwner,environment:this.#n,environmentType:this.#i,environmentStage:this.#o}};t.rayId&&(o.labels.rayId=t.rayId);let a=(0,py.extractBestMessage)(n.allMessages);o.jsonPayload={...n,message:a},this.batcher.enqueue(o),r.waitUntil(this.batcher.waitUntilFlushed())}dispatchFunction=async t=>{if(t.length===0)return;this.#t||(this.#t=await Xl.GcpServiceAccount.init(this.#e));let r=await(0,Xl.getTokenFromGcpServiceAccount)({serviceAccount:this.#t,audience:"https://logging.googleapis.com/google.logging.v2.LoggingServiceV2"}),n=await fetch(dI,{method:"POST",body:JSON.stringify({entries:t}),headers:{Authorization:`Bearer ${r}`,"content-type":"application/json;charset=UTF-8"}});n.ok||console.error(n.status,n.statusText,await n.text())};batcher=new uI.BatchDispatch("google-log-transport",1,this.dispatchFunction)};Ft.GoogleLogTransport=As});var td=g(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.gcpLogFormat=hn.GCP_LOG_FORMAT=void 0;var hy=Et(),pI=Rs();hn.GCP_LOG_FORMAT="gcp";function hI(e){let t={allMessages:(0,hy.makeErrorsSerializable)(e.messages)},r="zuplo-production",n=(0,hy.extractBestMessage)(t.allMessages),i={logName:`projects/${r}/logs/runtime-user`,message:n,severity:pI.ZuploToGCPMap[e.level],timestamp:e.timestamp,"logging.googleapis.com/labels":{buildId:e.buildId,source:e.logSource,loggingId:e.loggingId,logOwner:e.logOwner},"logging.googleapis.com/trace":`projects/${r}/traces/${e.requestId}`,allMessages:t.allMessages};return e.rayId&&(i["logging.googleapis.com/labels"].rayId=e.rayId),i}s(hI,"gcpLogFormat");hn.gcpLogFormat=hI});var my=g(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.ConsoleTransport=void 0;var fy=td(),rd=class{static{s(this,"ConsoleTransport")}constructor(t,r){this.#e=t??console,this.#t=r}#e;#t;log(t){if(this.#t===fy.GCP_LOG_FORMAT){if(t.messages.length===0)return;this.#e[t.level].apply(null,[(0,fy.gcpLogFormat)(t)])}else this.#e[t.level].apply(null,[...t.messages,{logOwner:t.logOwner,logSource:t.logSource,level:t.level,timestamp:t.timestamp,loggingId:t.loggingId,rayId:t.rayId,requestId:t.requestId,buildId:t.buildId}])}};Os.ConsoleTransport=rd});var cd=g(fn=>{"use strict";Object.defineProperty(fn,"__esModule",{value:!0});fn.DataDogTransport=fn.DataDogLoggingPlugin=void 0;var fI=Te(),nd=Y(),mI=Mt(),yy=Et(),ad=class extends mI.LogPlugin{static{s(this,"DataDogLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new Ns(this.options)}};fn.DataDogLoggingPlugin=ad;var id="__ddtags",od="__ddattr",sd=s(e=>e.replaceAll(",","_").replaceAll(":","_"),"cleanTagText"),yI=s(e=>{let t=Object.keys(e),r=[];return t.forEach(n=>{let i=e[n];i==null?r.push(sd(n)):r.push(`${sd(n)}:${sd(i.toString())}`)}),r.join(",")},"formatTags"),Ns=class{static{s(this,"DataDogTransport")}constructor(t){this.#e=t.apiKey,this.#t=t.url??"https://http-intake.logs.datadoghq.com/api/v2/logs",this.#n=nd.Environment.instance.loggingEnvironmentType,this.#i=nd.Environment.instance.loggingEnvironmentStage,this.#r=nd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;log(t,r){let n={},i=r.custom[id];i&&typeof i=="object"&&Object.assign(n,i);let o=[...t.messages],a=t.messages.findIndex(h=>h[id]!==void 0);a>-1&&(Object.assign(n,o[a][id]),o.splice(a,1));let c={},u=r.custom[od];u&&typeof u=="object"&&Object.assign(c,u);let l=t.messages.findIndex(h=>h[od]!==void 0);l>-1&&(Object.assign(c,o[l][od]),o.splice(l,1));let d=(0,yy.makeErrorsSerializable)(o),m={message:{...{...t,activityId:t.requestId,trace:t.requestId},messages:d},ddsource:"Zuplo",hostname:new URL(r.originalRequest.url).hostname,msg:(0,yy.extractBestMessage)(d),service:t.loggingId,ddtags:yI(n),environment:this.#r,environment_type:this.#n,environment_stage:this.#i};Object.assign(m,c),this.batcher.enqueue(m),r.waitUntil(this.batcher.waitUntilFlushed())}dispatchFunction=async t=>{t.length!==0&&await fetch(this.#t,{method:"POST",body:JSON.stringify([...t]),headers:{"content-type":"application/json","DD-API-KEY":this.#e}})};batcher=new fI.BatchDispatch("data-dog-transport",10,this.dispatchFunction)};fn.DataDogTransport=Ns});var by=g(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.ProcessTransport=void 0;var gy=td(),ud=class{static{s(this,"ProcessTransport")}constructor(t,r){this.#e=t,this.#t=r}#e;#t;log(t){if(this.#t===gy.GCP_LOG_FORMAT){if(t.messages.length===0)return;this.#e[t.level].apply(null,[(0,gy.gcpLogFormat)(t)])}else this.#e[t.level].apply(null,[...t.messages,{logOwner:t.logOwner,logSource:t.logSource,timestamp:t.timestamp,loggingId:t.loggingId,rayId:t.rayId,requestId:t.requestId,buildId:t.buildId,vectorClock:t.vectorClock}])}};xs.ProcessTransport=ud});var Ey=g(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});Ls.RemoteLogTransport=void 0;var gI=Te(),_y=Y(),bI=Et(),_I=s(({url:e,remoteLogToken:t,loggingId:r,sendOnlyErrors:n})=>async i=>{let o;if(n===!0?o=i.filter(a=>a.level==="error"):o=i,o.length!==0)try{await fetch(`${e}/publish/${r}`,{method:"POST",body:JSON.stringify({timestamp:Date.now(),type:"log",message:o.map(a=>({...a,messages:(0,bI.makeErrorsSerializable)(a.messages)}))}),headers:{"content-type":"application/json",authentication:`Bearer ${t}`,"user-agent":_y.Environment.instance.systemUserAgent,"zp-dn":_y.Environment.instance.deploymentName??"unknown"}})}catch(a){console.error(a)}},"dispatchFunction"),Cs,ld=class{static{s(this,"RemoteLogTransport")}constructor(t){Cs||(Cs=new gI.BatchDispatch("remote-log-transport",1,_I(t)))}log(t,r){Cs.enqueue(t),r.waitUntil(Cs.waitUntilFlushed())}};Ls.RemoteLogTransport=ld});var wy=g(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.unifiedFormatter=Dr.SeverityNumberOpenTelemetryMap=void 0;Dr.SeverityNumberOpenTelemetryMap={internal:1,trace:2,debug:5,info:9,warn:13,error:17,fatal:21};var EI=s((e,t)=>r=>{let n={};return n.deploymentName=e,n.labels={requestId:r.requestId,source:r.logSource,loggingId:r.loggingId,logOwner:r.logOwner},n.rayId=r.rayId??"",n.runtime={buildId:t.BUILD_ID,buildTimestamp:t.TIMESTAMP,gitSHA:t.GIT_SHA,version:t.ZUPLO_VERSION},n.atomicCounter=r.vectorClock,{timestamp:r.timestamp,observerdTimestamp:r.timestamp,traceId:r.requestId,severityText:r.level,severityNumber:Dr.SeverityNumberOpenTelemetryMap[r.level],body:r.messages,attributes:n}},"unifiedFormatter");Dr.unifiedFormatter=EI});var Ty=g(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});Us.UnifiedLogTransport=void 0;var wI=Te(),vy=Y(),vI=wy(),TI=s(({url:e,remoteLogToken:t,deploymentName:r,build:n})=>async i=>{if(i.length===0)return;let o=(0,vI.unifiedFormatter)(r,n);try{await fetch(`${e}/v1/runtime-logs`,{method:"POST",body:JSON.stringify({entries:i.map(o)}),headers:{"content-type":"application/json",authentication:`Bearer ${t}`,"user-agent":vy.Environment.instance.systemUserAgent,"zp-dn":vy.Environment.instance.deploymentName??"unknown"}})}catch(a){console.error(a)}},"dispatchFunction"),Ds,dd=class{static{s(this,"UnifiedLogTransport")}constructor(t){Ds||(Ds=new wI.BatchDispatch("unified-log-transport",1,TI(t)))}async log(t,r){Ds.enqueue(t),r.waitUntil(Ds.waitUntilFlushed())}};Us.UnifiedLogTransport=dd});var Ny=g(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});Ms.LogInitializer=void 0;var SI=Sr(),II=gt(),Sy=Yu(),Iy=Y(),Py=Rf(),PI=Mt(),AI=Of(),Ay=Nf(),Ry=my(),RI=cd(),OI=Rs(),Oy=by(),NI=Ey(),xI=Ty(),pd=(0,SI.debug)("zuplo:logging"),hd=class e{static{s(this,"LogInitializer")}systemCoreLogger;userCoreLogger;constructor({systemCoreLogger:t,userCoreLogger:r}){this.systemCoreLogger=t,this.userCoreLogger=r}static async init(t){let r=await e.setupSystemCoreLogger(Iy.Environment.instance,t),n=await e.setupUserCoreLogger(Iy.Environment.instance,t);return new e({systemCoreLogger:r,userCoreLogger:n})}static async setupSystemCoreLogger(t,r){let{build:n}=t;pd("Gateway.setupSystemCoreLogger");let i=[],o=r.getService(Sy.SYSTEM_LOGGER);return o?i.push(new Oy.ProcessTransport(o.logger,t.logFormat)):t.isDeno&&i.push(new Ry.ConsoleTransport(console,t.logFormat)),t.isCloudflare&&t.deploymentName&&t.remoteLogToken&&i.push(new xI.UnifiedLogTransport({url:t.remoteLogURL,deploymentName:t.deploymentName,remoteLogToken:t.remoteLogToken,build:t.build})),await Promise.all(i.map(async a=>{a.init&&await a.init()})),new Py.CoreLogger(t.systemLogLevel,"system",t.loggingId,n.BUILD_ID,i)}static async setupUserCoreLogger(t,r){pd("Gateway.setupUserCoreLogger");let n=[],{runtime:i,build:o}=t,a=r.getService(Sy.SYSTEM_LOGGER);if(a&&a.captureUserLogs===!0?n.push(new Oy.ProcessTransport(a.logger,t.logFormat)):t.isDeno&&n.push(new Ry.ConsoleTransport(console,t.logFormat)),t.remoteLogToken&&t.loggingId&&n.push(new NI.RemoteLogTransport({loggingId:t.loggingId,url:t.remoteLogURL,remoteLogToken:t.remoteLogToken,sendOnlyErrors:t.isCloudflare})),i.GCP_USER_LOG_NAME&&i.GCP_USER_LOG_SVC_ACCT_JSON&&n.push(new OI.GoogleLogTransport({serviceAccountJson:i.GCP_USER_LOG_SVC_ACCT_JSON,logName:i.GCP_USER_LOG_NAME})),i.ZUPLO_USER_LOGGER_DATA_DOG_API_KEY){let c=i.ZUPLO_USER_LOGGER_DATA_DOG_URL;n.push(new RI.DataDogTransport({apiKey:i.ZUPLO_USER_LOGGER_DATA_DOG_API_KEY,url:c}))}return II.plugins.forEach(c=>{c instanceof PI.LogPlugin&&n.push(c.getTransport())}),await Promise.all(n.map(async c=>{c.init&&await c.init()})),new Py.CoreLogger(t.userLogLevel,"user",t.loggingId,o.BUILD_ID,n)}createRequestLoggers(t,r,n,i,o){pd("Gateway.createRequestLoggers");let a=new AI.LoggingContext(n,i,o),c=new Ay.RequestLogger(t,r,this.systemCoreLogger,a);return{userRequestLogger:new Ay.RequestLogger(t,r,this.userCoreLogger,a),systemRequestLogger:c}}};Ms.LogInitializer=hd});var md=g(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.UserRouteConfiguration=void 0;var fd=class{static{s(this,"UserRouteConfiguration")}constructor(t){this.path=t.path,this.methods=t.methods,this.label=t.label,this.key=t.key,this.handler=t.handler,this.corsPolicy=t.corsPolicy,this.custom=t.custom,this.version=t.version,this.policies=t.policies,this.excludeFromOpenApi=t.excludeFromOpenApi,this.pathPattern=t.pathPattern,t.raw?(this.#e=t.raw(),this.operationId=this.raw()?.operationId,this.summary=this.raw()?.summary,this.tags=this.raw()?.tags,this.parameters=this.raw()?.parameters,this.responses=this.raw()?.responses):(this.operationId=t.operationId,this.summary=t.summary,this.tags=t.tags,this.parameters=t.parameters,this.responses=t.responses)}raw(){return this.#e}#e;label;key;path;summary;operationId;tags;parameters;responses;excludeFromOpenApi;pathPattern;custom;methods;handler;corsPolicy;version;policies};ks.UserRouteConfiguration=fd});var gd=g(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.Router=St.RouterError=St.LookupResult=St.RouterEntry=void 0;var xy=C(),CI=st(),LI=md(),Hs=class{static{s(this,"RouterEntry")}constructor(t,r,n,i){this.fullPath=t,this.urlPattern=r,this.config=n,this.executableHandler=i}fullPath;urlPattern;config;executableHandler};St.RouterEntry=Hs;var Ti=class{static{s(this,"LookupResult")}constructor(t,r,n){this.routeConfiguration=t,this.params=n??{},this.executableHandler=r}executableHandler;routeConfiguration;params};St.LookupResult=Ti;var Fs=class extends Error{static{s(this,"RouterError")}constructor(t,r){super(t,r)}};St.RouterError=Fs;var yd=class{static{s(this,"Router")}constructor(t){this.routeEntries=[],this.versions=t}versions;routeEntries;addRoute(t,r){if(!(t instanceof LI.UserRouteConfiguration||t instanceof CI.SystemRouteConfiguration))throw new xy.SystemError("Config must be a UserRouteConfiguration or SystemRouteConfiguration");let n=this.versions.find(o=>o.name===t.version)?.pathPrefix,i;"pathPattern"in t&&t.pathPattern?i=`${n??""}${t.pathPattern}`:i=`${n??""}${t.path}`;try{let o=new URLPattern({pathname:i}),a=new Hs(i,o,t,r);Object.freeze(a.config),this.routeEntries.push(a)}catch(o){throw new Fs(`addRoute-error: Invalid path '${i}'. '${o.message}'`,{cause:o})}}lookup(t,r){if(typeof t>"u")throw new xy.ConfigurationError(`Invalid request - Method was undefined. Path: '${r}'`);let n=this.routeEntries.filter(i=>i.config.methods.includes(t));if(n.length!==0)for(let i=0;i<n.length;i++){let o=n[i],c=o.urlPattern.exec({pathname:r});if(c!==null)return new Ti(o.config,o.executableHandler,c.pathname.groups)}}lookupByPathOnly(t){let r=[];for(let n=0;n<this.routeEntries.length;n++){let i=this.routeEntries[n],a=i.urlPattern.exec({pathname:t});if(a!==null){let c=new Ti(i.config,i.executableHandler,a.pathname.groups);r.push(c)}}return r}};St.Router=yd});var mn=g($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});$s.Gateway=void 0;var DI=Sr(),Cy=rf(),Ly=df(),UI=pf(),Dy=hf(),Uy=gf(),qt=ri(),qs=Ir(),My=Af(),Pt=C(),Si=gt(),MI=Ny(),kI=Dt(),HI=ae(),FI=Wu(),qI=Yt(),$I=zr(),jI=He(),VI=gd(),bd=st(),ky=md(),GI=Ke(),BI=Uo(),Hy=Y(),Fy=Nr(),KI=["/__zuplo/ping","/__zuplo/open-api","/__zuplo/docs","/__zuplo/consumers","/__zuplo/external-users","/__zuplo/assets","/__zuplo/config","/__zuplo/build","/favicon.ico"],It=(0,DI.debug)("zuplo:runtime"),JI=s(e=>{let t=e.findIndex(r=>r.name===bd.systemNoVersion.name);return t>-1?[...e.splice(t),bd.systemNoVersion]:[...e,bd.systemNoVersion]},"setupSystemNoVersion"),_d=class e{static{s(this,"Gateway")}routeData;runtimeSettings;schemaValidator;static#e;constructor(t,r,n,i){this.routeData=t,this.runtimeSettings=r,this.schemaValidator=i,It("Gateway.constructor"),this.#r=this.setupRoutes(),this.#i=this.setupErrorHandler(),this.#t=n}static async initialize(t,r,n,i,o){if(It("Gateway.initialize"),!e.#e){await(0,Si.initializeRuntime)(o);let a=await MI.LogInitializer.init(n),c=t(),u={...c,corsPolicies:(0,BI.parseCorsPolicies)(c.corsPolicies)},l=new e(u,r,a,i);e.#e=l}return e.#e}static purgeGatewayCache(){It("Gateway.purgeGatewayCache"),e.#e=void 0}static get instance(){if(!e.#e)throw new Pt.SystemError("Gateway cannot be used before it is initialized");return e.#e}instanceId=crypto.randomUUID();#t;#r;#n=[$I.policyProcessor,FI.corsProcessor,qI.metricsProcessor];#i;setupRoutes=()=>{It("Gateway.setupRoutes");let t=this.routeData,r=JI(t.versions),n=new VI.Router(r);if(t.routes.length===0)return(0,Cy.registerBuildRoute)(n,this),(0,Uy.registerPingRoute)(n,this),(0,Ly.registerCorsRoute)(n,this),(0,UI.registerNoRoutes)(n,this),n;let{enabled:i}=this.runtimeSettings.developerPortal;i&&((0,My.registerDevPortalLegacyRedirectRoute)(n,this),(0,My.registerDevPortalV3Route)(n,this)),(0,Cy.registerBuildRoute)(n,this),(0,Uy.registerPingRoute)(n,this),(0,Ly.registerCorsRoute)(n,this);for(let o of Si.plugins)o instanceof Si.SystemRuntimePlugin&&o.registerRoutes(n,this);return t.routes.forEach(o=>{let a;if(typeof o.handler?.module=="object"&&(a=o.handler?.module[o.handler.export]),typeof a!="function")throw new Pt.ConfigurationError(`Invalid state - No handler on route for path '${o.path}'`);let c=new kI.Pipeline({processors:this.#n,handler:a,gateway:this}),u=new ky.UserRouteConfiguration(o);n.addRoute(u,c.execute)}),(0,Dy.registerNotMatchedHandler)(n,this),n};setupErrorHandler=()=>{let t;if(typeof this.routeData.requestErrorHandler?.module=="object"){if(t=this.routeData.requestErrorHandler.module[this.routeData.requestErrorHandler.export],typeof t!="function")throw new Pt.ConfigurationError("Invalid state - Module and export set for 'errorHandler' is not a function")}else t=s((r,n,i)=>this.#o(r,n,i),"errorHandler");return t};errorHandler(t,r,n){try{return this.#i(t,r,n)}catch(i){return It("An error occurred in the user's errorHandler",i),this.#o(t,r,i)}}#o(t,r,n){It("Gateway.internalErrorResponse");let i={};if(Hy.Environment.instance.isDeno){if(n instanceof Pt.RuntimeError&&n.extensionMembers)i=n.extensionMembers;else if(n.cause){let o=(0,Fy.serializeError)(n.cause);"stack"in o&&(o.stack=(0,Fy.cleanStack)(o.stack)),i={cause:o}}}return HI.HttpProblems.internalServerError(t,r,{detail:n.message,...i})}#s(t){let r=new Headers(t.headers);return qt.DISPATCH_HEADERS_TO_REMOVE.forEach(n=>{r.delete(n)}),Hy.Environment.instance.isDeno&&qt.INTERNAL_HEADERS_TO_REMOVE.forEach(n=>{r.delete(n)}),new Request(t,{headers:r})}async handleRequest(t,r){let n=t.headers.get(qt.REQUEST_ID_HEADER)??t.headers.get(qt.LEGACY_REQUEST_ID_HEADER),i=t.headers.get(qt.RAY_ID_HEADER);if(!n){n=crypto.randomUUID();let T=new Headers(t.headers);T.set(qt.REQUEST_ID_HEADER,n),t=new Request(t,{headers:T})}if(["GET","HEAD"].includes(t.method)&&t.body){let T=new Headers(t.headers);T.set(qt.BODY_REMOVED_HEADER,"true"),t=new Request(t,{headers:T,body:null})}let o={},{userRequestLogger:a,systemRequestLogger:c}=this.#t.createRequestLoggers(n,i,r,o,t),u=new URL(t.url),l=u.pathname,d=this.#r.lookup(t.method,l);if(!d)throw new Pt.SystemError(`Invalid state - no route match - should have been picked up by the not found handler, path: '${l}'`);let p=new qs.HeaderIncomingRequestProperties(t.headers),m=this.#s(t),h=new jI.ZuploRequest(m,{params:d.params}),y=new qs.SystemZuploContext({logger:a,route:d.routeConfiguration,requestId:n,fetchEvent:r,custom:o,incomingRequestProperties:p}),E=qs.ZuploContextExtensions.initialize(y,h);if(d.routeConfiguration===Dy.notFoundRouteConfiguration&&Si.runtimeExtensions.value?.notFoundHandler!==void 0){let T=this.#r.lookupByPathOnly(l);E.pathOnlyMatches=T.map(S=>S.routeConfiguration).filter(S=>S instanceof ky.UserRouteConfiguration)}try{if(GI.SystemLogMap.addLogger(y,c),!u.pathname.startsWith("/__zuplo")){let $=await(0,Si.invokeOnRequestExtensions)(h,y);if($ instanceof Response)return $;{let O=qs.ZuploContextExtensions.getContextExtensions(y);h=$,O.latestRequest=h}}[...KI,...this.runtimeSettings.developerPortal.enabled?[this.runtimeSettings.developerPortal.sitePathname]:[]].filter($=>new RegExp($).test(u.pathname)).length===0&&a.debug(`Request received '${u.pathname}'`,{method:t.method,url:u.pathname,hostname:u.hostname,route:d.routeConfiguration.path});let S=d.executableHandler;zI(S,d,t),It("Gateway.handleRequest - call user handler");let U=await S(h,y);if(It("Gateway.handleRequest - user handler"),!(U instanceof Response))throw new Pt.RuntimeError(`Invalid Response type from the request handler: ${typeof U}`);if(U.bodyUsed)throw new Pt.RuntimeError("The response object has already been used. Return a new response instead.");if(U.headers.get(qt.REQUEST_ID_HEADER)===null&&!U.webSocket){let $=new Headers(U.headers);return $.set(qt.REQUEST_ID_HEADER,n),new Response(U.body,{status:U.status,statusText:U.statusText,headers:$,cf:U.cf})}else return U}catch(T){return It("Gateway - error executing handler",T),T instanceof Pt.RuntimeError?(a.error(T),c.warn(T)):c.error(T),await this.#o(h,y,T)}}};$s.Gateway=_d;function zI(e,t,r){if(It("Gateway.checkHandler"),!e)throw typeof t.routeConfiguration>"u"?new Pt.ConfigurationError(`Invalid state - no routeConfiguration for '${r.method}:${r.url}`):new Pt.ConfigurationError(`Invalid state. No handler for request '${r.method}':'${t.routeConfiguration.path}'`)}s(zI,"checkHandler")});var qy=g(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.invokeInboundPolicy=void 0;var WI=C(),QI=mn(),YI=zr(),ZI=s(async(e,t,r)=>{let n=QI.Gateway.instance.routeData.policies,i=(0,YI.getInboundPolicyHandlerAndOptions)([e],n);if(i.length===0)throw new WI.RuntimeError(`Invalid 'invokeInboundPolicy call' - no policy '${e}' found.`);let o=i[0];return o.handler(t,r,o.options,e)},"invokeInboundPolicy");js.invokeInboundPolicy=ZI});var Ir=g(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.SystemZuploContext=et.ZuploContextExtensions=et.ResponseSentEvent=et.ResponseSendingEvent=et.HeaderIncomingRequestProperties=void 0;var _e=ri(),XI=C(),eP=qy(),Ed=class{static{s(this,"HeaderIncomingRequestProperties")}#e;constructor(t){this.#e=t}get asn(){try{let t=this.#e.get(_e.ZP_ASN_HEADER);if(typeof t=="string")return parseInt(t)}catch{}}get asOrganization(){return this.#e.get(_e.ZP_AS_ORG_HEADER)??void 0}get city(){return this.#e.get(_e.CF_IP_CITY_HEADER)??this.#e.get(_e.ZP_IP_CITY_HEADER)??void 0}get continent(){return this.#e.get(_e.CF_IP_CONTINENT_HEADER)??this.#e.get(_e.ZP_IP_CONTINENT_HEADER)??void 0}get country(){return this.#e.get(_e.CF_IP_COUNTRY_HEADER)??this.#e.get(_e.ZP_IP_COUNTRY_HEADER)??void 0}get latitude(){return this.#e.get(_e.CF_IP_LATITUDE_HEADER)??this.#e.get(_e.ZP_IP_LATITUDE_HEADER)??void 0}get longitude(){return this.#e.get(_e.CF_IP_LONGITUDE_HEADER)??this.#e.get(_e.ZP_IP_LONGITUDE_HEADER)??void 0}get colo(){return this.#e.get(_e.ZP_COLO_HEADER)??void 0}get postalCode(){return this.#e.get(_e.ZP_POSTAL_CODE_HEADER)??void 0}get metroCode(){return this.#e.get(_e.ZP_METRO_CODE_HEADER)??void 0}get region(){return this.#e.get(_e.ZP_REGION_HEADER)??void 0}get regionCode(){return this.#e.get(_e.ZP_REGION_CODE_HEADER)??void 0}get timezone(){return this.#e.get(_e.ZP_TIMEZONE_HEADER)??void 0}toJSON(){return{asn:this.asn,asOrganization:this.asOrganization,city:this.city,continent:this.continent,country:this.country,latitude:this.latitude,longitude:this.longitude,colo:this.colo,postalCode:this.postalCode,metroCode:this.metroCode,region:this.region,regionCode:this.regionCode,timezone:this.timezone}}};et.HeaderIncomingRequestProperties=Ed;var wd=class extends Event{static{s(this,"ResponseSendingEvent")}constructor(t,r){super("responseSending"),this.request=t,this.mutableResponse=r}request;mutableResponse};et.ResponseSendingEvent=wd;var vd=class extends Event{static{s(this,"ResponseSentEvent")}constructor(t,r){super("responseSent"),this.request=t,this.response=r}request;response};et.ResponseSentEvent=vd;var Ii=class e{static{s(this,"ZuploContextExtensions")}static#e=new WeakMap;static initialize(t,r){if(!e.#e.has(t)){let n=new e(r);return e.#e.set(t,n),n}throw new Error(`ZuploContextExtensions already initialized for context with requestId '${t.requestId}'`)}static getContextExtensions(t){let r=e.#e.get(t);if(!r)throw new XI.RuntimeError(`Invalid state, could not get ZuploContext extensions for context with requestId '${t.requestId}'`);return r}latestRequest;pathOnlyMatches;#t;#r;constructor(t){this.latestRequest=t,this.#t=[],this.#r=[]}addResponseSendingHook(t){this.#r.push(t)}addResponseSendingFinalHook(t){this.#t.push(t)}onResponseSendingFinal=async(t,r,n)=>{for(let i of this.#t)await i(t,r,n)};onResponseSending=async(t,r,n)=>{let i=t;for(let o of this.#r)i=await o(t,r,n);return i}};et.ZuploContextExtensions=Ii;var Td=class extends EventTarget{static{s(this,"SystemZuploContext")}constructor({logger:t,route:r,requestId:n,fetchEvent:i,custom:o,incomingRequestProperties:a}){super(),this.log=Object.freeze(t),this.route=r,this.requestId=n,this.custom=o,this.incomingRequestProperties=a,this.#e=i,this.invokeInboundPolicy=(c,u)=>(0,eP.invokeInboundPolicy)(c,u,this),this.waitUntil=c=>{this.#e.waitUntil(c)},this.addResponseSendingHook=c=>{Ii.getContextExtensions(this).addResponseSendingHook(c)},this.addResponseSendingFinalHook=c=>{Ii.getContextExtensions(this).addResponseSendingFinalHook(c)},Object.freeze(this)}#e;requestId;log;route;custom;incomingRequestProperties;invokeInboundPolicy;waitUntil;addResponseSendingHook;addResponseSendingFinalHook;addEventListener(t,r,n){let i=s(o=>{try{typeof r=="function"?r(o):r.handleEvent(o)}catch(a){throw this.log.error(`Error invoking event ${t}. See following logs for details.`),a}},"wrapped");super.addEventListener(t,i,n)}};et.SystemZuploContext=Td});var Gs=g(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});Vs.ContextData=void 0;var Sd=class e{static{s(this,"ContextData")}static#e;#t;constructor(t){this.#t=t}set(t,r){e.set(t,this.#t,r)}get(t){return e.get(t,this.#t)}static set(t,r,n){e.#e||(e.#e=new WeakMap);let i=e.#e.get(t);i||(i=new Map),i.set(r,n),e.#e.set(t,i)}static get(t,r){return e.#e||(e.#e=new WeakMap),e.#e.get(t)?.get(r)}};Vs.ContextData=Sd});var yn=g(hr=>{"use strict";Object.defineProperty(hr,"__esModule",{value:!0});hr.environment=hr.isZuploReadableEnvVariableName=hr.isRestrictedEnvVariableName=void 0;var tP=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function $y(e){return e.startsWith("__ZUPLO")||e.startsWith("ZUPLO_")?!tP.includes(e)&&!e.startsWith("ZUPLO_PUBLIC_"):!1}s($y,"isRestrictedEnvVariableName");hr.isRestrictedEnvVariableName=$y;function jy(e){return!!e.startsWith("ZUPLO_")}s(jy,"isZuploReadableEnvVariableName");hr.isZuploReadableEnvVariableName=jy;var rP=new Proxy({},{get(e,t){if($y(String(t))&&!jy(String(t)))return;let r=globalThis,n;return r.process?n=r.process.env[t]:n=r[t],n}});hr.environment=rP});var Id=g(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.externalServiceHandler=gn.externalServiceTunnelConfig=void 0;var nP=Sr(),Ur=C(),iP=Pd(),Pi=Y(),lt=(0,nP.debug)("zuplo:runtime:external-service");function Gy(){let e,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:t}=Pi.Environment.instance.runtime;if(t&&t!=="undefined")try{let r=atob(t);e=JSON.parse(r)}catch{}return e}s(Gy,"getServiceAuth");async function oP(e){let t=Gy();if(!t)throw lt("There is no external service auth configured for this zup."),new Ur.RuntimeError("There are no external services configured for this zup.");if(typeof e!="string")throw lt("Cannot call external service with Request object"),new Ur.RuntimeError("Currently, we only support fetch(<some_string>, ...).");let n=new URL(e).hostname,i={};i["CF-Access-Client-Id"]=t.clientId,i["CF-Access-Client-Secret"]=t.clientSecret;let o;if(t.customServiceMapping&&t.customServiceMapping[n])o=`https://${t.customServiceMapping[n]}`;else if(Pi.Environment.instance.useSha256ServiceRouting){lt("Using sha256 service routing");let a=Pi.Environment.instance.build;if(a.ACCOUNT_NAME&&a.PROJECT_NAME&&a.ENVIRONMENT_TYPE)o=`https://${await By(n,a.ACCOUNT_NAME,a.PROJECT_NAME,a.ENVIRONMENT_TYPE)}.zuptunnel.com`;else throw lt("Cannot use sha256 service routing, missing build variables"),new Ur.RuntimeError("Failed to generate fully qualified tunnel url.")}else o=`https://${n}.zuptunnel.com`;return{serviceBaseUrl:o,tunnelHeaders:i}}s(oP,"externalServiceTunnelConfig");gn.externalServiceTunnelConfig=oP;async function sP(e,t){let r=Gy();if(r)if(lt(`Using external service auth. ClientId: ${r.clientId})`),typeof e=="string"){let n=new URL(e),i=n.hostname,o=t??{},a=new Headers(o.headers||{});a.set("CF-Access-Client-Id",r.clientId),a.set("CF-Access-Client-Secret",r.clientSecret),o.headers=a;let c;if(r.customServiceMapping&&r.customServiceMapping[i])c=`https://${r.customServiceMapping[i]}`;else if(Pi.Environment.instance.useSha256ServiceRouting){lt("Using sha256 service routing");let d=Pi.Environment.instance.build;if(d.ACCOUNT_NAME&&d.PROJECT_NAME&&d.ENVIRONMENT_TYPE)c=`https://${await By(i,d.ACCOUNT_NAME,d.PROJECT_NAME,d.ENVIRONMENT_TYPE)}.zuptunnel.com`;else throw lt("Cannot use sha256 service routing, missing build variables"),new Ur.RuntimeError("Failed to generate fully qualified tunnel url.")}else c=`https://${i}.zuptunnel.com`;let u=new URL(`${c}${n.pathname}${n.search}`);lt(`Calling external service: ${u.toString()}`);let l=await(0,iP.originalFetch)(u.toString(),o);if(l.status===403&&l.headers.get("cf-access-domain")!==null)throw console.error("403 Forbidden when calling external service.",{clientId:r.clientId,tunnelHost:c}),new Ur.RuntimeError("Could not connect to secure tunnel.");return l}else throw lt("Cannot call external service with Request object"),new Ur.RuntimeError("Currently, we only support fetch(<some_string>, ...).");else throw lt("There is no external service auth configured for this zup."),new Ur.RuntimeError("There are no external services configured for this zup.")}s(sP,"externalServiceHandler");gn.externalServiceHandler=sP;async function By(e,t,r,n){let i=e.toLowerCase(),o=t.toLowerCase(),a=r.toLowerCase(),c=aP(n);lt(`Hashing service name: ${o}-${i}.${o}-${a}-${c}`);let u=await Vy(`${o}-${i}`),l=await Vy(`${o}-${a}-${c}`);return`${u}.${l}`}s(By,"hashServiceName");async function Vy(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("").slice(0,-1)}s(Vy,"hashSegment");function aP(e){let t=e.toLowerCase();switch(t){case"production":case"preview":return t;default:return"working-copy"}}s(aP,"sanitizeEnvironmentType")});var Pd=g(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.originalFetch=void 0;var cP=Id(),Ky=new Map;Ky.set("service:",cP.externalServiceHandler);bn.originalFetch=globalThis.fetch;globalThis.fetch=function(e,t){let r=uP(t);if(typeof e=="string"){let n=new URL(e),i=Ky.get(n.protocol);return i?i(e,r):(0,bn.originalFetch)(e,r)}else return(0,bn.originalFetch)(e,r)};var uP=s(e=>{if(!e||e instanceof Request)return e;let t=e;if(!t.zuplo)return e;let r=e;return r.cf={cacheEverything:t.zuplo?.cacheEverything,cacheTtl:t.zuplo?.cacheTtlSeconds},delete e.zuplo,e},"transformInit")});var Wy=g(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});_n.Handler=_n.purgeGatewayCache=void 0;var lP=C(),zy=mn(),Jy=Y(),dP=s(()=>{zy.Gateway.purgeGatewayCache()},"purgeGatewayCache");_n.purgeGatewayCache=dP;var Ad=class{static{s(this,"Handler")}routeLoader;buildEnvironment;runtimeEnvironment;runtimeSettings;serviceProvider;schemaValidations;runtimeInit;constructor(t,r,n,i,o,a,c){this.routeLoader=t,this.buildEnvironment=r,this.runtimeEnvironment=n,this.runtimeSettings=i,this.serviceProvider=o,this.schemaValidations=a,this.runtimeInit=c}requestHandler=async(t,r)=>{Jy.Environment.initialize(this.buildEnvironment,this.runtimeEnvironment);let n;try{n=await zy.Gateway.initialize(this.routeLoader,this.runtimeSettings,this.serviceProvider,this.schemaValidations,this.runtimeInit)}catch(i){console.error("Error initializing gateway.",i);let o="Error initializing gateway. Check your 'zuplo.runtime.ts' for errors or contact support.";i instanceof lP.ConfigurationError&&(o=i.message);let a={status:500,title:"Gateway Initialization Error",type:"https://httpproblems.com/http-status/500",detail:o,instance:t.url,trace:{timestamp:Date.now(),rayId:t.headers.get("cf-ray")??void 0,buildId:this.buildEnvironment.BUILD_ID},message:Jy.Environment.instance.isDeno?i.message:void 0};return new Response(JSON.stringify(a,null,2),{status:500,headers:{"content-type":"application/json"}})}return n.handleRequest(t,r)}};_n.Handler=Ad});var Xy=g(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.pathToRegexp=Oe.tokensToRegexp=Oe.regexpToFunction=Oe.match=Oe.tokensToFunction=Oe.compile=Oe.parse=void 0;function pP(e){for(var t=[],r=0;r<e.length;){var n=e[r];if(n==="*"||n==="+"||n==="?"){t.push({type:"MODIFIER",index:r,value:e[r++]});continue}if(n==="\\"){t.push({type:"ESCAPED_CHAR",index:r++,value:e[r++]});continue}if(n==="{"){t.push({type:"OPEN",index:r,value:e[r++]});continue}if(n==="}"){t.push({type:"CLOSE",index:r,value:e[r++]});continue}if(n===":"){for(var i="",o=r+1;o<e.length;){var a=e.charCodeAt(o);if(a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||a===95){i+=e[o++];continue}break}if(!i)throw new TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:i}),r=o;continue}if(n==="("){var c=1,u="",o=r+1;if(e[o]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(o));for(;o<e.length;){if(e[o]==="\\"){u+=e[o++]+e[o++];continue}if(e[o]===")"){if(c--,c===0){o++;break}}else if(e[o]==="("&&(c++,e[o+1]!=="?"))throw new TypeError("Capturing groups are not allowed at ".concat(o));u+=e[o++]}if(c)throw new TypeError("Unbalanced pattern at ".concat(r));if(!u)throw new TypeError("Missing pattern at ".concat(r));t.push({type:"PATTERN",index:r,value:u}),r=o;continue}t.push({type:"CHAR",index:r,value:e[r++]})}return t.push({type:"END",index:r,value:""}),t}s(pP,"lexer");function Rd(e,t){t===void 0&&(t={});for(var r=pP(e),n=t.prefixes,i=n===void 0?"./":n,o="[^".concat(En(t.delimiter||"/#?"),"]+?"),a=[],c=0,u=0,l="",d=s(function(re){if(u<r.length&&r[u].type===re)return r[u++].value},"tryConsume"),p=s(function(re){var ne=d(re);if(ne!==void 0)return ne;var ve=r[u],w=ve.type,H=ve.index;throw new TypeError("Unexpected ".concat(w," at ").concat(H,", expected ").concat(re))},"mustConsume"),m=s(function(){for(var re="",ne;ne=d("CHAR")||d("ESCAPED_CHAR");)re+=ne;return re},"consumeText");u<r.length;){var h=d("CHAR"),y=d("NAME"),E=d("PATTERN");if(y||E){var T=h||"";i.indexOf(T)===-1&&(l+=T,T=""),l&&(a.push(l),l=""),a.push({name:y||c++,prefix:T,suffix:"",pattern:E||o,modifier:d("MODIFIER")||""});continue}var S=h||d("ESCAPED_CHAR");if(S){l+=S;continue}l&&(a.push(l),l="");var U=d("OPEN");if(U){var T=m(),$=d("NAME")||"",O=d("PATTERN")||"",te=m();p("CLOSE"),a.push({name:$||(O?c++:""),pattern:$&&!O?o:O,prefix:T,suffix:te,modifier:d("MODIFIER")||""});continue}p("END")}return a}s(Rd,"parse");Oe.parse=Rd;function hP(e,t){return Qy(Rd(e,t),t)}s(hP,"compile");Oe.compile=hP;function Qy(e,t){t===void 0&&(t={});var r=Od(t),n=t.encode,i=n===void 0?function(u){return u}:n,o=t.validate,a=o===void 0?!0:o,c=e.map(function(u){if(typeof u=="object")return new RegExp("^(?:".concat(u.pattern,")$"),r)});return function(u){for(var l="",d=0;d<e.length;d++){var p=e[d];if(typeof p=="string"){l+=p;continue}var m=u?u[p.name]:void 0,h=p.modifier==="?"||p.modifier==="*",y=p.modifier==="*"||p.modifier==="+";if(Array.isArray(m)){if(!y)throw new TypeError('Expected "'.concat(p.name,'" to not repeat, but got an array'));if(m.length===0){if(h)continue;throw new TypeError('Expected "'.concat(p.name,'" to not be empty'))}for(var E=0;E<m.length;E++){var T=i(m[E],p);if(a&&!c[d].test(T))throw new TypeError('Expected all "'.concat(p.name,'" to match "').concat(p.pattern,'", but got "').concat(T,'"'));l+=p.prefix+T+p.suffix}continue}if(typeof m=="string"||typeof m=="number"){var T=i(String(m),p);if(a&&!c[d].test(T))throw new TypeError('Expected "'.concat(p.name,'" to match "').concat(p.pattern,'", but got "').concat(T,'"'));l+=p.prefix+T+p.suffix;continue}if(!h){var S=y?"an array":"a string";throw new TypeError('Expected "'.concat(p.name,'" to be ').concat(S))}}return l}}s(Qy,"tokensToFunction");Oe.tokensToFunction=Qy;function fP(e,t){var r=[],n=Nd(e,r,t);return Yy(n,r,t)}s(fP,"match");Oe.match=fP;function Yy(e,t,r){r===void 0&&(r={});var n=r.decode,i=n===void 0?function(o){return o}:n;return function(o){var a=e.exec(o);if(!a)return!1;for(var c=a[0],u=a.index,l=Object.create(null),d=s(function(m){if(a[m]===void 0)return"continue";var h=t[m-1];h.modifier==="*"||h.modifier==="+"?l[h.name]=a[m].split(h.prefix+h.suffix).map(function(y){return i(y,h)}):l[h.name]=i(a[m],h)},"_loop_1"),p=1;p<a.length;p++)d(p);return{path:c,index:u,params:l}}}s(Yy,"regexpToFunction");Oe.regexpToFunction=Yy;function En(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}s(En,"escapeString");function Od(e){return e&&e.sensitive?"":"i"}s(Od,"flags");function mP(e,t){if(!t)return e;for(var r=/\((?:\?<(.*?)>)?(?!\?)/g,n=0,i=r.exec(e.source);i;)t.push({name:i[1]||n++,prefix:"",suffix:"",modifier:"",pattern:""}),i=r.exec(e.source);return e}s(mP,"regexpToRegexp");function yP(e,t,r){var n=e.map(function(i){return Nd(i,t,r).source});return new RegExp("(?:".concat(n.join("|"),")"),Od(r))}s(yP,"arrayToRegexp");function gP(e,t,r){return Zy(Rd(e,r),t,r)}s(gP,"stringToRegexp");function Zy(e,t,r){r===void 0&&(r={});for(var n=r.strict,i=n===void 0?!1:n,o=r.start,a=o===void 0?!0:o,c=r.end,u=c===void 0?!0:c,l=r.encode,d=l===void 0?function(H){return H}:l,p=r.delimiter,m=p===void 0?"/#?":p,h=r.endsWith,y=h===void 0?"":h,E="[".concat(En(y),"]|$"),T="[".concat(En(m),"]"),S=a?"^":"",U=0,$=e;U<$.length;U++){var O=$[U];if(typeof O=="string")S+=En(d(O));else{var te=En(d(O.prefix)),re=En(d(O.suffix));if(O.pattern)if(t&&t.push(O),te||re)if(O.modifier==="+"||O.modifier==="*"){var ne=O.modifier==="*"?"?":"";S+="(?:".concat(te,"((?:").concat(O.pattern,")(?:").concat(re).concat(te,"(?:").concat(O.pattern,"))*)").concat(re,")").concat(ne)}else S+="(?:".concat(te,"(").concat(O.pattern,")").concat(re,")").concat(O.modifier);else O.modifier==="+"||O.modifier==="*"?S+="((?:".concat(O.pattern,")").concat(O.modifier,")"):S+="(".concat(O.pattern,")").concat(O.modifier);else S+="(?:".concat(te).concat(re,")").concat(O.modifier)}}if(u)i||(S+="".concat(T,"?")),S+=r.endsWith?"(?=".concat(E,")"):"$";else{var ve=e[e.length-1],w=typeof ve=="string"?T.indexOf(ve[ve.length-1])>-1:ve===void 0;i||(S+="(?:".concat(T,"(?=").concat(E,"))?")),w||(S+="(?=".concat(T,"|").concat(E,")"))}return new RegExp(S,Od(r))}s(Zy,"tokensToRegexp");Oe.tokensToRegexp=Zy;function Nd(e,t,r){return e instanceof RegExp?mP(e,t):Array.isArray(e)?yP(e,t,r):gP(e,t,r)}s(Nd,"pathToRegexp");Oe.pathToRegexp=Nd});var Dd=g(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});wn.AwsV4Signer=wn.AwsClient=void 0;var bP=Sr(),ng=C(),_P=(0,bP.debug)("zuplo:runtime"),Cd=new TextEncoder,eg={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"},EP=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"],Ld=class{static{s(this,"AwsClient")}accessKeyId;secretAccessKey;sessionToken;service;region;cache;retries;initRetryMs;constructor({accessKeyId:t,secretAccessKey:r,sessionToken:n,service:i,region:o,cache:a,retries:c,initRetryMs:u}){if(t==null)throw new TypeError("accessKeyId is a required option");if(r==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=t,this.secretAccessKey=r,this.sessionToken=n,this.service=i,this.region=o,this.cache=a||new Map,this.retries=c??0,this.initRetryMs=u||50}async sign(t,r){let n=new Bs(Object.assign({url:t},r,this,r&&r.aws)),i=Object.assign({},r,await n.sign());return delete i.aws,{url:i.url.toString(),request:i}}async fetch(t,r){_P("AWS fetch",t);for(let n=0;n<=this.retries;n++){let{url:i,request:o}=await this.sign(t,r),a=fetch(i,o);if(n===this.retries)return a;let c=await a;if(c.status<500&&c.status!==429)return c;await new Promise(u=>setTimeout(u,Math.random()*this.initRetryMs*Math.pow(2,n)))}throw new ng.ConfigurationError("An unknown error occurred, ensure retries is not negative")}};wn.AwsClient=Ld;var Bs=class{static{s(this,"AwsV4Signer")}method;url;headers;body;accessKeyId;secretAccessKey;sessionToken;service;region;cache;datetime;signQuery;appendSessionToken;signableHeaders;signedHeaders;canonicalHeaders;credentialString;encodedPath;encodedSearch;constructor({method:t,url:r,headers:n,body:i,accessKeyId:o,secretAccessKey:a,sessionToken:c,service:u,region:l,cache:d,datetime:p,signQuery:m,appendSessionToken:h,allHeaders:y,singleEncode:E}){if(r==null)throw new TypeError("url is a required option");if(o==null)throw new TypeError("accessKeyId is a required option");if(a==null)throw new TypeError("secretAccessKey is a required option");this.method=t||(i?"POST":"GET"),this.url=new URL(r),this.headers=new Headers(n||{}),this.body=i,this.accessKeyId=o,this.secretAccessKey=a,this.sessionToken=c;let T,S;(!u||!l)&&([T,S]=wP(this.url,this.headers)),this.service=u||T||"",this.region=l||S||"us-east-1",this.cache=d||new Map,this.datetime=p||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=m,this.appendSessionToken=h||this.service==="iotdevicegateway",this.headers.delete("Host");let U=this.signQuery?this.url.searchParams:this.headers;if(this.service==="s3"&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),U.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&U.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(O=>y||!EP.includes(O)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(O=>O+":"+(O==="host"?this.url.host:(this.headers.get(O)||"").replace(/\s+/g," "))).join(`
59
+ -----END ${t}-----`},"default")});function am(e){let t=[],r=0;for(;r<e.length;){let n=hm(e.subarray(r));t.push(n),r+=n.byteLength}return t}function hm(e){let t=0,r=e[0]&31;if(t++,r===31){for(r=0;e[t]>=128;)r=r*128+e[t]-128,t++;r=r*128+e[t]-128,t++}let n=0;if(e[t]<128)n=e[t],t++;else if(n===128){for(n=0;e[t+n]!==0||e[t+n+1]!==0;){if(n>e.byteLength)throw new TypeError("invalid indefinite form length");n++}let o=t+n+2;return{byteLength:o,contents:e.subarray(t,t+n),raw:e.subarray(0,o)}}else{let o=e[t]&127;t++,n=0;for(let a=0;a<o;a++)n=n*256+e[t],t++}let i=t+n;return{byteLength:i,contents:e.subarray(t,i),raw:e.subarray(0,i)}}function NS(e){let t=am(am(hm(e).contents)[0].contents);return Yo(t[t[0].raw[0]===160?6:5].raw)}function xS(e){let t=e.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g,""),r=ll(t);return Sl(NS(r),"PUBLIC KEY")}var cm,um,lm,ar,sm,dm,pm,Il,fm,as=I(()=>{Se();ct();Pe();om();V();ut();cm=s(async(e,t,r)=>{if(!ce(r))throw new TypeError(oe(r,...W));if(!r.extractable)throw new TypeError("CryptoKey is not extractable");if(r.type!==e)throw new TypeError(`key is not a ${e} key`);return Sl(Yo(new Uint8Array(await D.subtle.exportKey(t,r))),`${e.toUpperCase()} KEY`)},"genericExport"),um=s(e=>cm("public","spki",e),"toSPKI"),lm=s(e=>cm("private","pkcs8",e),"toPKCS8"),ar=s((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 i=e.subarray(n,n+t.length);return i.length!==t.length?!1:i.every((o,a)=>o===t[a])||ar(e,t,n+1)},"findOid"),sm=s(e=>{switch(!0){case ar(e,[42,134,72,206,61,3,1,7]):return"P-256";case ar(e,[43,129,4,0,34]):return"P-384";case ar(e,[43,129,4,0,35]):return"P-521";case ar(e,[43,101,110]):return"X25519";case ar(e,[43,101,111]):return"X448";case ar(e,[43,101,112]):return"Ed25519";case ar(e,[43,101,113]):return"Ed448";default:throw new k("Invalid or unsupported EC Key Curve or OKP Key Sub Type")}},"getNamedCurve"),dm=s(async(e,t,r,n,i)=>{var o;let a,c,u=new Uint8Array(atob(r.replace(e,"")).split("").map(d=>d.charCodeAt(0))),l=t==="spki";switch(n){case"PS256":case"PS384":case"PS512":a={name:"RSA-PSS",hash:`SHA-${n.slice(-3)}`},c=l?["verify"]:["sign"];break;case"RS256":case"RS384":case"RS512":a={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${n.slice(-3)}`},c=l?["verify"]:["sign"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":a={name:"RSA-OAEP",hash:`SHA-${parseInt(n.slice(-3),10)||1}`},c=l?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":a={name:"ECDSA",namedCurve:"P-256"},c=l?["verify"]:["sign"];break;case"ES384":a={name:"ECDSA",namedCurve:"P-384"},c=l?["verify"]:["sign"];break;case"ES512":a={name:"ECDSA",namedCurve:"P-521"},c=l?["verify"]:["sign"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{let d=sm(u);a=d.startsWith("P-")?{name:"ECDH",namedCurve:d}:{name:d},c=l?[]:["deriveBits"];break}case"EdDSA":a={name:sm(u)},c=l?["verify"]:["sign"];break;default:throw new k('Invalid or unsupported "alg" (Algorithm) value')}return D.subtle.importKey(t,u,a,(o=i?.extractable)!==null&&o!==void 0?o:!1,c)},"genericImport"),pm=s((e,t,r)=>dm(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,"pkcs8",e,t,r),"fromPKCS8"),Il=s((e,t,r)=>dm(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g,"spki",e,t,r),"fromSPKI");s(am,"getElement");s(hm,"parseElement");s(NS,"spkiFromX509");s(xS,"getSPKI");fm=s((e,t,r)=>{let n;try{n=xS(e)}catch(i){throw new TypeError("failed to parse the X.509 certificate",{cause:i})}return Il(n,t,r)},"fromX509")});function CS(e){let t,r;switch(e.kty){case"oct":{switch(e.alg){case"HS256":case"HS384":case"HS512":t={name:"HMAC",hash:`SHA-${e.alg.slice(-3)}`},r=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":throw new k(`${e.alg} keys cannot be imported as CryptoKey instances`);case"A128GCM":case"A192GCM":case"A256GCM":case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":t={name:"AES-GCM"},r=["encrypt","decrypt"];break;case"A128KW":case"A192KW":case"A256KW":t={name:"AES-KW"},r=["wrapKey","unwrapKey"];break;case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":t={name:"PBKDF2"},r=["deriveBits"];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"RSA":{switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},r=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},r=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"EC":{switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},r=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},r=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}case"OKP":{switch(e.alg){case"EdDSA":t={name:e.crv},r=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},r=e.d?["deriveBits"]:[];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break}default:throw new k('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:r}}var LS,Pl,mm=I(()=>{Se();V();Pe();s(CS,"subtleMapping");LS=s(async e=>{var t,r;if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');let{algorithm:n,keyUsages:i}=CS(e),o=[n,(t=e.ext)!==null&&t!==void 0?t:!1,(r=e.key_ops)!==null&&r!==void 0?r:i];if(n.name==="PBKDF2")return D.subtle.importKey("raw",ie(e.k),...o);let a={...e};return delete a.alg,delete a.use,D.subtle.importKey("jwk",a,...o)},"parse"),Pl=LS});async function ym(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PUBLIC KEY-----")!==0)throw new TypeError('"spki" must be SPKI formatted string');return Il(e,t,r)}async function gm(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN CERTIFICATE-----")!==0)throw new TypeError('"x509" must be X.509 formatted string');return fm(e,t,r)}async function bm(e,t,r){if(typeof e!="string"||e.indexOf("-----BEGIN PRIVATE KEY-----")!==0)throw new TypeError('"pkcs8" must be PKCS#8 formatted string');return pm(e,t,r)}async function cr(e,t,r){var n;if(!Q(e))throw new TypeError("JWK must be an object");switch(t||(t=e.alg),e.kty){case"oct":if(typeof e.k!="string"||!e.k)throw new TypeError('missing "k" (Key Value) Parameter value');return r??(r=e.ext!==!0),r?Pl({...e,alg:t,ext:(n=e.ext)!==null&&n!==void 0?n:!1}):ie(e.k);case"RSA":if(e.oth!==void 0)throw new k('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return Pl({...e,alg:t});default:throw new k('Unsupported "kty" (Key Type) Parameter value')}}var fi=I(()=>{Pe();as();mm();V();$e();s(ym,"importSPKI");s(gm,"importX509");s(bm,"importPKCS8");s(cr,"importJWK")});var DS,US,MS,ur,mi=I(()=>{ct();ut();DS=s((e,t)=>{if(!(t instanceof Uint8Array)){if(!yl(t))throw new TypeError(ml(e,t,...W,"Uint8Array"));if(t.type!=="secret")throw new TypeError(`${W.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}},"symmetricTypeCheck"),US=s((e,t,r)=>{if(!yl(t))throw new TypeError(ml(e,t,...W));if(t.type==="secret")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&t.type==="public")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&t.type==="public")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm decryption must be of type "private"`);if(t.algorithm&&r==="verify"&&t.type==="private")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);if(t.algorithm&&r==="encrypt"&&t.type==="private")throw new TypeError(`${W.join(" or ")} instances for asymmetric algorithm encryption must be of type "public"`)},"asymmetricTypeCheck"),MS=s((e,t,r)=>{e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?DS(e,t):US(e,t,r)},"checkKeyType"),ur=MS});async function kS(e,t,r,n,i){if(!(r instanceof Uint8Array))throw new TypeError(oe(r,"Uint8Array"));let o=parseInt(e.slice(1,4),10),a=await D.subtle.importKey("raw",r.subarray(o>>3),"AES-CBC",!1,["encrypt"]),c=await D.subtle.importKey("raw",r.subarray(0,o>>3),{hash:`SHA-${o<<1}`,name:"HMAC"},!1,["sign"]),u=new Uint8Array(await D.subtle.encrypt({iv:n,name:"AES-CBC"},a,t)),l=Ie(i,n,u,zo(i.length<<3)),d=new Uint8Array((await D.subtle.sign("HMAC",c,l)).slice(0,o>>3));return{ciphertext:u,tag:d}}async function HS(e,t,r,n,i){let o;r instanceof Uint8Array?o=await D.subtle.importKey("raw",r,"AES-GCM",!1,["encrypt"]):(qe(r,e,"encrypt"),o=r);let a=new Uint8Array(await D.subtle.encrypt({additionalData:i,iv:n,name:"AES-GCM",tagLength:128},o,t)),c=a.slice(-16);return{ciphertext:a.slice(0,-16),tag:c}}var FS,yi,Al=I(()=>{ge();hl();fl();Se();sr();ct();V();ut();s(kS,"cbcEncrypt");s(HS,"gcmEncrypt");FS=s(async(e,t,r,n,i)=>{if(!ce(r)&&!(r instanceof Uint8Array))throw new TypeError(oe(r,...W,"Uint8Array"));switch(es(e,n),e){case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return r instanceof Uint8Array&&Xr(r,parseInt(e.slice(-3),10)),kS(e,t,r,n,i);case"A128GCM":case"A192GCM":case"A256GCM":return r instanceof Uint8Array&&Xr(r,parseInt(e.slice(1,4),10)),HS(e,t,r,n,i);default:throw new k("Unsupported JWE Content Encryption Algorithm")}},"encrypt"),yi=FS});async function _m(e,t,r,n){let i=e.slice(0,7);n||(n=Zo(i));let{ciphertext:o,tag:a}=await yi(i,r,t,n,new Uint8Array(0));return{encryptedKey:o,iv:X(n),tag:X(a)}}async function Em(e,t,r,n,i){let o=e.slice(0,7);return rs(o,t,r,n,i,new Uint8Array(0))}var Rl=I(()=>{Al();gl();Xo();Pe();s(_m,"wrap");s(Em,"unwrap")});async function qS(e,t,r,n,i){switch(ur(e,t,"decrypt"),e){case"dir":{if(r!==void 0)throw new A("Encountered unexpected JWE Encrypted Key");return t}case"ECDH-ES":if(r!==void 0)throw new A("Encountered unexpected JWE Encrypted Key");case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{if(!Q(n.epk))throw new A('JOSE Header "epk" (Ephemeral Public Key) missing or invalid');if(!os(t))throw new k("ECDH with the provided key is not allowed or not supported by your javascript runtime");let o=await cr(n.epk,e),a,c;if(n.apu!==void 0){if(typeof n.apu!="string")throw new A('JOSE Header "apu" (Agreement PartyUInfo) invalid');a=ie(n.apu)}if(n.apv!==void 0){if(typeof n.apv!="string")throw new A('JOSE Header "apv" (Agreement PartyVInfo) invalid');c=ie(n.apv)}let u=await is(o,t,e==="ECDH-ES"?n.enc:e,e==="ECDH-ES"?pi(n.enc):parseInt(e.slice(-5,-2),10),a,c);if(e==="ECDH-ES")return u;if(r===void 0)throw new A("JWE Encrypted Key missing");return di(e.slice(-6),u,r)}case"RSA1_5":case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{if(r===void 0)throw new A("JWE Encrypted Key missing");return im(e,t,r)}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":{if(r===void 0)throw new A("JWE Encrypted Key missing");if(typeof n.p2c!="number")throw new A('JOSE Header "p2c" (PBES2 Count) missing or invalid');let o=i?.maxPBES2Count||1e4;if(n.p2c>o)throw new A('JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds');if(typeof n.p2s!="string")throw new A('JOSE Header "p2s" (PBES2 Salt) missing or invalid');return tm(e,t,r,n.p2c,ie(n.p2s))}case"A128KW":case"A192KW":case"A256KW":{if(r===void 0)throw new A("JWE Encrypted Key missing");return di(e,t,r)}case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":{if(r===void 0)throw new A("JWE Encrypted Key missing");if(typeof n.iv!="string")throw new A('JOSE Header "iv" (Initialization Vector) missing or invalid');if(typeof n.tag!="string")throw new A('JOSE Header "tag" (Authentication Tag) missing or invalid');let o=ie(n.iv),a=ie(n.tag);return Em(e,t,r,o,a)}default:throw new k('Invalid or unsupported "alg" (JWE Algorithm) header value')}}var wm,vm=I(()=>{ns();El();vl();Tl();Pe();V();hi();fi();mi();$e();Rl();s(qS,"decryptKeyManagement");wm=qS});function $S(e,t,r,n,i){if(i.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 o;r!==void 0?o=new Map([...Object.entries(r),...t.entries()]):o=t;for(let a of n.crit){if(!o.has(a))throw new k(`Extension Header Parameter "${a}" is not recognized`);if(i[a]===void 0)throw new e(`Extension Header Parameter "${a}" is missing`);if(o.get(a)&&n[a]===void 0)throw new e(`Extension Header Parameter "${a}" MUST be integrity protected`)}return new Set(n.crit)}var Tt,nn=I(()=>{V();s($S,"validateCrit");Tt=$S});var jS,gi,Ol=I(()=>{jS=s((e,t)=>{if(t!==void 0&&(!Array.isArray(t)||t.some(r=>typeof r!="string")))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)},"validateAlgorithms"),gi=jS});async function on(e,t,r){var n;if(!Q(e))throw new A("Flattened JWE must be an object");if(e.protected===void 0&&e.header===void 0&&e.unprotected===void 0)throw new A("JOSE Header missing");if(typeof e.iv!="string")throw new A("JWE Initialization Vector missing or incorrect type");if(typeof e.ciphertext!="string")throw new A("JWE Ciphertext missing or incorrect type");if(typeof e.tag!="string")throw new A("JWE Authentication Tag missing or incorrect type");if(e.protected!==void 0&&typeof e.protected!="string")throw new A("JWE Protected Header incorrect type");if(e.encrypted_key!==void 0&&typeof e.encrypted_key!="string")throw new A("JWE Encrypted Key incorrect type");if(e.aad!==void 0&&typeof e.aad!="string")throw new A("JWE AAD incorrect type");if(e.header!==void 0&&!Q(e.header))throw new A("JWE Shared Unprotected Header incorrect type");if(e.unprotected!==void 0&&!Q(e.unprotected))throw new A("JWE Per-Recipient Unprotected Header incorrect type");let i;if(e.protected)try{let $=ie(e.protected);i=JSON.parse(le.decode($))}catch{throw new A("JWE Protected Header is invalid")}if(!wt(i,e.header,e.unprotected))throw new A("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");let o={...i,...e.header,...e.unprotected};if(Tt(A,new Map,r?.crit,i,o),o.zip!==void 0){if(!i||!i.zip)throw new A('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');if(o.zip!=="DEF")throw new k('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value')}let{alg:a,enc:c}=o;if(typeof a!="string"||!a)throw new A("missing JWE Algorithm (alg) in JWE Header");if(typeof c!="string"||!c)throw new A("missing JWE Encryption Algorithm (enc) in JWE Header");let u=r&&gi("keyManagementAlgorithms",r.keyManagementAlgorithms),l=r&&gi("contentEncryptionAlgorithms",r.contentEncryptionAlgorithms);if(u&&!u.has(a))throw new rr('"alg" (Algorithm) Header Parameter not allowed');if(l&&!l.has(c))throw new rr('"enc" (Encryption Algorithm) Header Parameter not allowed');let d;e.encrypted_key!==void 0&&(d=ie(e.encrypted_key));let p=!1;typeof t=="function"&&(t=await t(i,e),p=!0);let m;try{m=await wm(a,t,d,o,r)}catch($){if($ instanceof TypeError||$ instanceof A||$ instanceof k)throw $;m=vt(c)}let h=ie(e.iv),y=ie(e.tag),E=Z.encode((n=e.protected)!==null&&n!==void 0?n:""),T;e.aad!==void 0?T=Ie(E,Z.encode("."),Z.encode(e.aad)):T=E;let S=await rs(c,m,ie(e.ciphertext),h,y,T);o.zip==="DEF"&&(S=await(r?.inflateRaw||Kf)(S));let U={plaintext:S};return e.protected!==void 0&&(U.protectedHeader=i),e.aad!==void 0&&(U.additionalAuthenticatedData=ie(e.aad)),e.unprotected!==void 0&&(U.sharedUnprotectedHeader=e.unprotected),e.header!==void 0&&(U.unprotectedHeader=e.header),p?{...U,key:t}:U}var cs=I(()=>{Pe();gl();bl();V();en();$e();vm();ge();hi();nn();Ol();s(on,"flattenedDecrypt")});async function us(e,t,r){if(e instanceof Uint8Array&&(e=le.decode(e)),typeof e!="string")throw new A("Compact JWE must be a string or Uint8Array");let{0:n,1:i,2:o,3:a,4:c,length:u}=e.split(".");if(u!==5)throw new A("Invalid Compact JWE");let l=await on({ciphertext:a,iv:o||void 0,protected:n||void 0,tag:c||void 0,encrypted_key:i||void 0},t,r),d={plaintext:l.plaintext,protectedHeader:l.protectedHeader};return typeof t=="function"?{...d,key:l.key}:d}var Nl=I(()=>{cs();V();ge();s(us,"compactDecrypt")});async function Tm(e,t,r){if(!Q(e))throw new A("General JWE must be an object");if(!Array.isArray(e.recipients)||!e.recipients.every(Q))throw new A("JWE Recipients missing or incorrect type");if(!e.recipients.length)throw new A("JWE Recipients has no members");for(let n of e.recipients)try{return await on({aad:e.aad,ciphertext:e.ciphertext,encrypted_key:n.encrypted_key,header:n.header,iv:e.iv,protected:e.protected,tag:e.tag,unprotected:e.unprotected},t,r)}catch{}throw new kt}var Sm=I(()=>{cs();V();$e();s(Tm,"generalDecrypt")});var VS,Im,Pm=I(()=>{Se();ct();Pe();ut();VS=s(async e=>{if(e instanceof Uint8Array)return{kty:"oct",k:X(e)};if(!ce(e))throw new TypeError(oe(e,...W,"Uint8Array"));if(!e.extractable)throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");let{ext:t,key_ops:r,alg:n,use:i,...o}=await D.subtle.exportKey("jwk",e);return o},"keyToJWK"),Im=VS});async function Am(e){return um(e)}async function Rm(e){return lm(e)}async function ls(e){return Im(e)}var xl=I(()=>{as();as();Pm();s(Am,"exportSPKI");s(Rm,"exportPKCS8");s(ls,"exportJWK")});async function GS(e,t,r,n,i={}){let o,a,c;switch(ur(e,r,"encrypt"),e){case"dir":{c=r;break}case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{if(!os(r))throw new k("ECDH with the provided key is not allowed or not supported by your javascript runtime");let{apu:u,apv:l}=i,{epk:d}=i;d||(d=(await Qf(r)).privateKey);let{x:p,y:m,crv:h,kty:y}=await ls(d),E=await is(r,d,e==="ECDH-ES"?t:e,e==="ECDH-ES"?pi(t):parseInt(e.slice(-5,-2),10),u,l);if(a={epk:{x:p,crv:h,kty:y}},y==="EC"&&(a.epk.y=m),u&&(a.apu=X(u)),l&&(a.apv=X(l)),e==="ECDH-ES"){c=E;break}c=n||vt(t);let T=e.slice(-6);o=await li(T,E,c);break}case"RSA1_5":case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":{c=n||vt(t),o=await nm(e,r,c);break}case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":{c=n||vt(t);let{p2c:u,p2s:l}=i;({encryptedKey:o,...a}=await em(e,r,c,u,l));break}case"A128KW":case"A192KW":case"A256KW":{c=n||vt(t),o=await li(e,r,c);break}case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":{c=n||vt(t);let{iv:u}=i;({encryptedKey:o,...a}=await _m(e,r,c,u));break}default:throw new k('Invalid or unsupported "alg" (JWE Algorithm) header value')}return{cek:c,encryptedKey:o,parameters:a}}var ds,Cl=I(()=>{ns();El();vl();Tl();Pe();hi();V();xl();mi();Rl();s(GS,"encryptKeyManagement");ds=GS});var Ll,Ht,ps=I(()=>{Pe();Al();bl();Xo();Cl();V();en();ge();nn();Ll=Symbol(),Ht=class{static{s(this,"FlattenedEncrypt")}constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("plaintext must be an instance of Uint8Array");this._plaintext=t}setKeyManagementParameters(t){if(this._keyManagementParameters)throw new TypeError("setKeyManagementParameters can only be called once");return this._keyManagementParameters=t,this}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setSharedUnprotectedHeader(t){if(this._sharedUnprotectedHeader)throw new TypeError("setSharedUnprotectedHeader can only be called once");return this._sharedUnprotectedHeader=t,this}setUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}setAdditionalAuthenticatedData(t){return this._aad=t,this}setContentEncryptionKey(t){if(this._cek)throw new TypeError("setContentEncryptionKey can only be called once");return this._cek=t,this}setInitializationVector(t){if(this._iv)throw new TypeError("setInitializationVector can only be called once");return this._iv=t,this}async encrypt(t,r){if(!this._protectedHeader&&!this._unprotectedHeader&&!this._sharedUnprotectedHeader)throw new A("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");if(!wt(this._protectedHeader,this._unprotectedHeader,this._sharedUnprotectedHeader))throw new A("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader,...this._sharedUnprotectedHeader};if(Tt(A,new Map,r?.crit,this._protectedHeader,n),n.zip!==void 0){if(!this._protectedHeader||!this._protectedHeader.zip)throw new A('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');if(n.zip!=="DEF")throw new k('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value')}let{alg:i,enc:o}=n;if(typeof i!="string"||!i)throw new A('JWE "alg" (Algorithm) Header Parameter missing or invalid');if(typeof o!="string"||!o)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');let a;if(i==="dir"){if(this._cek)throw new TypeError("setContentEncryptionKey cannot be called when using Direct Encryption")}else if(i==="ECDH-ES"&&this._cek)throw new TypeError("setContentEncryptionKey cannot be called when using Direct Key Agreement");let c;{let y;({cek:c,encryptedKey:a,parameters:y}=await ds(i,o,t,this._cek,this._keyManagementParameters)),y&&(r&&Ll in r?this._unprotectedHeader?this._unprotectedHeader={...this._unprotectedHeader,...y}:this.setUnprotectedHeader(y):this._protectedHeader?this._protectedHeader={...this._protectedHeader,...y}:this.setProtectedHeader(y))}this._iv||(this._iv=Zo(o));let u,l,d;this._protectedHeader?l=Z.encode(X(JSON.stringify(this._protectedHeader))):l=Z.encode(""),this._aad?(d=X(this._aad),u=Ie(l,Z.encode("."),Z.encode(d))):u=l;let p,m;if(n.zip==="DEF"){let y=await(r?.deflateRaw||Jf)(this._plaintext);({ciphertext:p,tag:m}=await yi(o,y,c,this._iv,u))}else({ciphertext:p,tag:m}=await yi(o,this._plaintext,c,this._iv,u));let h={ciphertext:X(p),iv:X(this._iv),tag:X(m)};return a&&(h.encrypted_key=X(a)),d&&(h.aad=d),this._protectedHeader&&(h.protected=le.decode(l)),this._sharedUnprotectedHeader&&(h.unprotected=this._sharedUnprotectedHeader),this._unprotectedHeader&&(h.header=this._unprotectedHeader),h}}});var Dl,hs,Om=I(()=>{ps();V();hi();en();Cl();Pe();nn();Dl=class{static{s(this,"IndividualRecipient")}constructor(t,r,n){this.parent=t,this.key=r,this.options=n}setUnprotectedHeader(t){if(this.unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this.unprotectedHeader=t,this}addRecipient(...t){return this.parent.addRecipient(...t)}encrypt(...t){return this.parent.encrypt(...t)}done(){return this.parent}},hs=class{static{s(this,"GeneralEncrypt")}constructor(t){this._recipients=[],this._plaintext=t}addRecipient(t,r){let n=new Dl(this,t,{crit:r?.crit});return this._recipients.push(n),n}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setSharedUnprotectedHeader(t){if(this._unprotectedHeader)throw new TypeError("setSharedUnprotectedHeader can only be called once");return this._unprotectedHeader=t,this}setAdditionalAuthenticatedData(t){return this._aad=t,this}async encrypt(t){var r,n,i;if(!this._recipients.length)throw new A("at least one recipient must be added");if(t={deflateRaw:t?.deflateRaw},this._recipients.length===1){let[u]=this._recipients,l=await new Ht(this._plaintext).setAdditionalAuthenticatedData(this._aad).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(u.unprotectedHeader).encrypt(u.key,{...u.options,...t}),d={ciphertext:l.ciphertext,iv:l.iv,recipients:[{}],tag:l.tag};return l.aad&&(d.aad=l.aad),l.protected&&(d.protected=l.protected),l.unprotected&&(d.unprotected=l.unprotected),l.encrypted_key&&(d.recipients[0].encrypted_key=l.encrypted_key),l.header&&(d.recipients[0].header=l.header),d}let o;for(let u=0;u<this._recipients.length;u++){let l=this._recipients[u];if(!wt(this._protectedHeader,this._unprotectedHeader,l.unprotectedHeader))throw new A("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");let d={...this._protectedHeader,...this._unprotectedHeader,...l.unprotectedHeader},{alg:p}=d;if(typeof p!="string"||!p)throw new A('JWE "alg" (Algorithm) Header Parameter missing or invalid');if(p==="dir"||p==="ECDH-ES")throw new A('"dir" and "ECDH-ES" alg may only be used with a single recipient');if(typeof d.enc!="string"||!d.enc)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');if(!o)o=d.enc;else if(o!==d.enc)throw new A('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients');if(Tt(A,new Map,l.options.crit,this._protectedHeader,d),d.zip!==void 0&&(!this._protectedHeader||!this._protectedHeader.zip))throw new A('JWE "zip" (Compression Algorithm) Header MUST be integrity protected')}let a=vt(o),c={ciphertext:"",iv:"",recipients:[],tag:""};for(let u=0;u<this._recipients.length;u++){let l=this._recipients[u],d={};c.recipients.push(d);let m={...this._protectedHeader,...this._unprotectedHeader,...l.unprotectedHeader}.alg.startsWith("PBES2")?2048+u:void 0;if(u===0){let E=await new Ht(this._plaintext).setAdditionalAuthenticatedData(this._aad).setContentEncryptionKey(a).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(l.unprotectedHeader).setKeyManagementParameters({p2c:m}).encrypt(l.key,{...l.options,...t,[Ll]:!0});c.ciphertext=E.ciphertext,c.iv=E.iv,c.tag=E.tag,E.aad&&(c.aad=E.aad),E.protected&&(c.protected=E.protected),E.unprotected&&(c.unprotected=E.unprotected),d.encrypted_key=E.encrypted_key,E.header&&(d.header=E.header);continue}let{encryptedKey:h,parameters:y}=await ds(((r=l.unprotectedHeader)===null||r===void 0?void 0:r.alg)||((n=this._protectedHeader)===null||n===void 0?void 0:n.alg)||((i=this._unprotectedHeader)===null||i===void 0?void 0:i.alg),o,l.key,a,{p2c:m});d.encrypted_key=X(h),(l.unprotectedHeader||y)&&(d.header={...l.unprotectedHeader,...y})}return c}}});function bi(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 k(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}var Ul=I(()=>{V();s(bi,"subtleDsa")});function _i(e,t,r){if(ce(t))return Gf(t,e,r),t;if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(oe(t,...W));return D.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[r])}throw new TypeError(oe(t,...W,"Uint8Array"))}var Ml=I(()=>{Se();sr();ct();ut();s(_i,"getCryptoKey")});var BS,Nm,xm=I(()=>{Ul();Se();ss();Ml();BS=s(async(e,t,r,n)=>{let i=await _i(e,t,"verify");Lr(e,i);let o=bi(e,i.algorithm);try{return await D.subtle.verify(o,i,r,n)}catch{return!1}},"verify"),Nm=BS});async function sn(e,t,r){var n;if(!Q(e))throw new z("Flattened JWS must be an object");if(e.protected===void 0&&e.header===void 0)throw new z('Flattened JWS must have either of the "protected" or "header" members');if(e.protected!==void 0&&typeof e.protected!="string")throw new z("JWS Protected Header incorrect type");if(e.payload===void 0)throw new z("JWS Payload missing");if(typeof e.signature!="string")throw new z("JWS Signature missing or incorrect type");if(e.header!==void 0&&!Q(e.header))throw new z("JWS Unprotected Header incorrect type");let i={};if(e.protected)try{let T=ie(e.protected);i=JSON.parse(le.decode(T))}catch{throw new z("JWS Protected Header is invalid")}if(!wt(i,e.header))throw new z("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...i,...e.header},a=Tt(z,new Map([["b64",!0]]),r?.crit,i,o),c=!0;if(a.has("b64")&&(c=i.b64,typeof c!="boolean"))throw new z('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:u}=o;if(typeof u!="string"||!u)throw new z('JWS "alg" (Algorithm) Header Parameter missing or invalid');let l=r&&gi("algorithms",r.algorithms);if(l&&!l.has(u))throw new rr('"alg" (Algorithm) Header Parameter not allowed');if(c){if(typeof e.payload!="string")throw new z("JWS Payload must be a string")}else if(typeof e.payload!="string"&&!(e.payload instanceof Uint8Array))throw new z("JWS Payload must be a string or an Uint8Array instance");let d=!1;typeof t=="function"&&(t=await t(i,e),d=!0),ur(u,t,"verify");let p=Ie(Z.encode((n=e.protected)!==null&&n!==void 0?n:""),Z.encode("."),typeof e.payload=="string"?Z.encode(e.payload):e.payload),m=ie(e.signature);if(!await Nm(u,t,m,p))throw new Cr;let y;c?y=ie(e.payload):typeof e.payload=="string"?y=Z.encode(e.payload):y=e.payload;let E={payload:y};return e.protected!==void 0&&(E.protectedHeader=i),e.header!==void 0&&(E.unprotectedHeader=e.header),d?{...E,key:t}:E}var fs=I(()=>{Pe();xm();V();ge();en();$e();mi();nn();Ol();s(sn,"flattenedVerify")});async function ms(e,t,r){if(e instanceof Uint8Array&&(e=le.decode(e)),typeof e!="string")throw new z("Compact JWS must be a string or Uint8Array");let{0:n,1:i,2:o,length:a}=e.split(".");if(a!==3)throw new z("Invalid Compact JWS");let c=await sn({payload:i,protected:n,signature:o},t,r),u={payload:c.payload,protectedHeader:c.protectedHeader};return typeof t=="function"?{...u,key:c.key}:u}var kl=I(()=>{fs();V();ge();s(ms,"compactVerify")});async function Cm(e,t,r){if(!Q(e))throw new z("General JWS must be an object");if(!Array.isArray(e.signatures)||!e.signatures.every(Q))throw new z("JWS Signatures missing or incorrect type");for(let n of e.signatures)try{return await sn({header:n.header,payload:e.payload,protected:n.protected,signature:n.signature},t,r)}catch{}throw new Cr}var Lm=I(()=>{fs();V();$e();s(Cm,"generalVerify")});var an,Hl=I(()=>{an=s(e=>Math.floor(e.getTime()/1e3),"default")});var KS,cn,Fl=I(()=>{KS=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i,cn=s(e=>{let t=KS.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)}},"default")});var Dm,JS,un,ys=I(()=>{V();ge();Hl();Fl();$e();Dm=s(e=>e.toLowerCase().replace(/^application\//,""),"normalizeTyp"),JS=s((e,t)=>typeof e=="string"?t.includes(e):Array.isArray(e)?t.some(Set.prototype.has.bind(new Set(e))):!1,"checkAudiencePresence"),un=s((e,t,r={})=>{let{typ:n}=r;if(n&&(typeof e.typ!="string"||Dm(e.typ)!==Dm(n)))throw new be('unexpected "typ" JWT header value',"typ","check_failed");let i;try{i=JSON.parse(le.decode(t))}catch{}if(!Q(i))throw new de("JWT Claims Set must be a top-level JSON object");let{requiredClaims:o=[],issuer:a,subject:c,audience:u,maxTokenAge:l}=r;l!==void 0&&o.push("iat"),u!==void 0&&o.push("aud"),c!==void 0&&o.push("sub"),a!==void 0&&o.push("iss");for(let h of new Set(o.reverse()))if(!(h in i))throw new be(`missing required "${h}" claim`,h,"missing");if(a&&!(Array.isArray(a)?a:[a]).includes(i.iss))throw new be('unexpected "iss" claim value',"iss","check_failed");if(c&&i.sub!==c)throw new be('unexpected "sub" claim value',"sub","check_failed");if(u&&!JS(i.aud,typeof u=="string"?[u]:u))throw new be('unexpected "aud" claim value',"aud","check_failed");let d;switch(typeof r.clockTolerance){case"string":d=cn(r.clockTolerance);break;case"number":d=r.clockTolerance;break;case"undefined":d=0;break;default:throw new TypeError("Invalid clockTolerance option type")}let{currentDate:p}=r,m=an(p||new Date);if((i.iat!==void 0||l)&&typeof i.iat!="number")throw new be('"iat" claim must be a number',"iat","invalid");if(i.nbf!==void 0){if(typeof i.nbf!="number")throw new be('"nbf" claim must be a number',"nbf","invalid");if(i.nbf>m+d)throw new be('"nbf" claim timestamp check failed',"nbf","check_failed")}if(i.exp!==void 0){if(typeof i.exp!="number")throw new be('"exp" claim must be a number',"exp","invalid");if(i.exp<=m-d)throw new Zr('"exp" claim timestamp check failed',"exp","check_failed")}if(l){let h=m-i.iat,y=typeof l=="number"?l:cn(l);if(h-d>y)throw new Zr('"iat" claim timestamp check failed (too far in the past)',"iat","check_failed");if(h<0-d)throw new be('"iat" claim timestamp check failed (it should be in the past)',"iat","check_failed")}return i},"default")});async function Um(e,t,r){var n;let i=await ms(e,t,r);if(!((n=i.protectedHeader.crit)===null||n===void 0)&&n.includes("b64")&&i.protectedHeader.b64===!1)throw new de("JWTs MUST NOT use unencoded payload");let a={payload:un(i.protectedHeader,i.payload,r),protectedHeader:i.protectedHeader};return typeof t=="function"?{...a,key:i.key}:a}var Mm=I(()=>{kl();ys();V();s(Um,"jwtVerify")});async function km(e,t,r){let n=await us(e,t,r),i=un(n.protectedHeader,n.plaintext,r),{protectedHeader:o}=n;if(o.iss!==void 0&&o.iss!==i.iss)throw new be('replicated "iss" claim header parameter mismatch',"iss","mismatch");if(o.sub!==void 0&&o.sub!==i.sub)throw new be('replicated "sub" claim header parameter mismatch',"sub","mismatch");if(o.aud!==void 0&&JSON.stringify(o.aud)!==JSON.stringify(i.aud))throw new be('replicated "aud" claim header parameter mismatch',"aud","mismatch");let a={payload:i,protectedHeader:o};return typeof t=="function"?{...a,key:n.key}:a}var Hm=I(()=>{Nl();ys();V();s(km,"jwtDecrypt")});var ln,ql=I(()=>{ps();ln=class{static{s(this,"CompactEncrypt")}constructor(t){this._flattened=new Ht(t)}setContentEncryptionKey(t){return this._flattened.setContentEncryptionKey(t),this}setInitializationVector(t){return this._flattened.setInitializationVector(t),this}setProtectedHeader(t){return this._flattened.setProtectedHeader(t),this}setKeyManagementParameters(t){return this._flattened.setKeyManagementParameters(t),this}async encrypt(t,r){let n=await this._flattened.encrypt(t,r);return[n.protected,n.encrypted_key,n.iv,n.ciphertext,n.tag].join(".")}}});var zS,Fm,qm=I(()=>{Ul();Se();ss();Ml();zS=s(async(e,t,r)=>{let n=await _i(e,t,"sign");Lr(e,n);let i=await D.subtle.sign(bi(e,n.algorithm),n,r);return new Uint8Array(i)},"sign"),Fm=zS});var lr,gs=I(()=>{Pe();qm();en();V();ge();mi();nn();lr=class{static{s(this,"FlattenedSign")}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 z("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!wt(this._protectedHeader,this._unprotectedHeader))throw new z("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...this._protectedHeader,...this._unprotectedHeader},i=Tt(z,new Map([["b64",!0]]),r?.crit,this._protectedHeader,n),o=!0;if(i.has("b64")&&(o=this._protectedHeader.b64,typeof o!="boolean"))throw new z('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:a}=n;if(typeof a!="string"||!a)throw new z('JWS "alg" (Algorithm) Header Parameter missing or invalid');ur(a,t,"sign");let c=this._payload;o&&(c=Z.encode(X(c)));let u;this._protectedHeader?u=Z.encode(X(JSON.stringify(this._protectedHeader))):u=Z.encode("");let l=Ie(u,Z.encode("."),c),d=await Fm(a,t,l),p={signature:X(d),payload:""};return o&&(p.payload=le.decode(c)),this._unprotectedHeader&&(p.header=this._unprotectedHeader),this._protectedHeader&&(p.protected=le.decode(u)),p}}});var dn,$l=I(()=>{gs();dn=class{static{s(this,"CompactSign")}constructor(t){this._flattened=new lr(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}`}}});var jl,bs,$m=I(()=>{gs();V();jl=class{static{s(this,"IndividualSignature")}constructor(t,r,n){this.parent=t,this.key=r,this.options=n}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}addSignature(...t){return this.parent.addSignature(...t)}sign(...t){return this.parent.sign(...t)}done(){return this.parent}},bs=class{static{s(this,"GeneralSign")}constructor(t){this._signatures=[],this._payload=t}addSignature(t,r){let n=new jl(this,t,r);return this._signatures.push(n),n}async sign(){if(!this._signatures.length)throw new z("at least one signature must be added");let t={signatures:[],payload:""};for(let r=0;r<this._signatures.length;r++){let n=this._signatures[r],i=new lr(this._payload);i.setProtectedHeader(n.protectedHeader),i.setUnprotectedHeader(n.unprotectedHeader);let{payload:o,...a}=await i.sign(n.key,n.options);if(r===0)t.payload=o;else if(t.payload!==o)throw new z("inconsistent use of JWS Unencoded Payload (RFC7797)");t.signatures.push(a)}return t}}});var dr,_s=I(()=>{Hl();$e();Fl();dr=class{static{s(this,"ProduceJWT")}constructor(t){if(!Q(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:t}:this._payload={...this._payload,nbf:an(new Date)+cn(t)},this}setExpirationTime(t){return typeof t=="number"?this._payload={...this._payload,exp:t}:this._payload={...this._payload,exp:an(new Date)+cn(t)},this}setIssuedAt(t){return typeof t>"u"?this._payload={...this._payload,iat:an(new Date)}:this._payload={...this._payload,iat:t},this}}});var Es,jm=I(()=>{$l();V();ge();_s();Es=class extends dr{static{s(this,"SignJWT")}setProtectedHeader(t){return this._protectedHeader=t,this}async sign(t,r){var n;let i=new dn(Z.encode(JSON.stringify(this._payload)));if(i.setProtectedHeader(this._protectedHeader),Array.isArray((n=this._protectedHeader)===null||n===void 0?void 0:n.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new de("JWTs MUST NOT use unencoded payload");return i.sign(t,r)}}});var ws,Vm=I(()=>{ql();ge();_s();ws=class extends dr{static{s(this,"EncryptJWT")}setProtectedHeader(t){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=t,this}setKeyManagementParameters(t){if(this._keyManagementParameters)throw new TypeError("setKeyManagementParameters can only be called once");return this._keyManagementParameters=t,this}setContentEncryptionKey(t){if(this._cek)throw new TypeError("setContentEncryptionKey can only be called once");return this._cek=t,this}setInitializationVector(t){if(this._iv)throw new TypeError("setInitializationVector can only be called once");return this._iv=t,this}replicateIssuerAsHeader(){return this._replicateIssuerAsHeader=!0,this}replicateSubjectAsHeader(){return this._replicateSubjectAsHeader=!0,this}replicateAudienceAsHeader(){return this._replicateAudienceAsHeader=!0,this}async encrypt(t,r){let n=new ln(Z.encode(JSON.stringify(this._payload)));return this._replicateIssuerAsHeader&&(this._protectedHeader={...this._protectedHeader,iss:this._payload.iss}),this._replicateSubjectAsHeader&&(this._protectedHeader={...this._protectedHeader,sub:this._payload.sub}),this._replicateAudienceAsHeader&&(this._protectedHeader={...this._protectedHeader,aud:this._payload.aud}),n.setProtectedHeader(this._protectedHeader),this._iv&&n.setInitializationVector(this._iv),this._cek&&n.setContentEncryptionKey(this._cek),this._keyManagementParameters&&n.setKeyManagementParameters(this._keyManagementParameters),n.encrypt(t,r)}}});async function Vl(e,t){if(!Q(e))throw new TypeError("JWK must be an object");if(t??(t="sha256"),t!=="sha256"&&t!=="sha384"&&t!=="sha512")throw new TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');let r;switch(e.kty){case"EC":pr(e.crv,'"crv" (Curve) Parameter'),pr(e.x,'"x" (X Coordinate) Parameter'),pr(e.y,'"y" (Y Coordinate) Parameter'),r={crv:e.crv,kty:e.kty,x:e.x,y:e.y};break;case"OKP":pr(e.crv,'"crv" (Subtype of Key Pair) Parameter'),pr(e.x,'"x" (Public Key) Parameter'),r={crv:e.crv,kty:e.kty,x:e.x};break;case"RSA":pr(e.e,'"e" (Exponent) Parameter'),pr(e.n,'"n" (Modulus) Parameter'),r={e:e.e,kty:e.kty,n:e.n};break;case"oct":pr(e.k,'"k" (Key Value) Parameter'),r={k:e.k,kty:e.kty};break;default:throw new k('"kty" (Key Type) Parameter missing or unsupported')}let n=Z.encode(JSON.stringify(r));return X(await Ko(t,n))}async function Gm(e,t){t??(t="sha256");let r=await Vl(e,t);return`urn:ietf:params:oauth:jwk-thumbprint:sha-${t.slice(-3)}:${r}`}var pr,Bm=I(()=>{cl();Pe();V();ge();$e();pr=s((e,t)=>{if(typeof e!="string"||!e)throw new si(`${t} missing or invalid`)},"check");s(Vl,"calculateJwkThumbprint");s(Gm,"calculateJwkThumbprintUri")});async function Km(e,t){let r={...e,...t?.header};if(!Q(r.jwk))throw new z('"jwk" (JSON Web Key) Header Parameter must be a JSON object');let n=await cr({...r.jwk,ext:!0},r.alg,!0);if(n instanceof Uint8Array||n.type!=="public")throw new z('"jwk" (JSON Web Key) Header Parameter must be a public key');return n}var Jm=I(()=>{fi();$e();V();s(Km,"EmbeddedJWK")});function WS(e){switch(typeof e=="string"&&e.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";default:throw new k('Unsupported "alg" value for a JSON Web Key Set')}}function Gl(e){return e&&typeof e=="object"&&Array.isArray(e.keys)&&e.keys.every(QS)}function QS(e){return Q(e)}function YS(e){return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}async function zm(e,t,r){let n=e.get(t)||e.set(t,{}).get(t);if(n[r]===void 0){let i=await cr({...t,ext:!0},r);if(i instanceof Uint8Array||i.type!=="public")throw new nr("JSON Web Key Set members must be public keys");n[r]=i}return n[r]}function Wm(e){let t=new Ei(e);return async function(r,n){return t.getKey(r,n)}}var Ei,Bl=I(()=>{fi();V();$e();s(WS,"getKtyFromAlg");s(Gl,"isJWKSLike");s(QS,"isJWKLike");s(YS,"clone");Ei=class{static{s(this,"LocalJWKSet")}constructor(t){if(this._cached=new WeakMap,!Gl(t))throw new nr("JSON Web Key Set malformed");this._jwks=YS(t)}async getKey(t,r){let{alg:n,kid:i}={...t,...r?.header},o=WS(n),a=this._jwks.keys.filter(l=>{let d=o===l.kty;if(d&&typeof i=="string"&&(d=i===l.kid),d&&typeof l.alg=="string"&&(d=n===l.alg),d&&typeof l.use=="string"&&(d=l.use==="sig"),d&&Array.isArray(l.key_ops)&&(d=l.key_ops.includes("verify")),d&&n==="EdDSA"&&(d=l.crv==="Ed25519"||l.crv==="Ed448"),d)switch(n){case"ES256":d=l.crv==="P-256";break;case"ES256K":d=l.crv==="secp256k1";break;case"ES384":d=l.crv==="P-384";break;case"ES512":d=l.crv==="P-521";break}return d}),{0:c,length:u}=a;if(u===0)throw new xr;if(u!==1){let l=new ai,{_cached:d}=this;throw l[Symbol.asyncIterator]=async function*(){for(let p of a)try{yield await zm(d,p,n)}catch{continue}},l}return zm(this._cached,c,n)}};s(zm,"importWithAlgCache");s(Wm,"createLocalJWKSet")});var ZS,Qm,Ym=I(()=>{V();ZS=s(async(e,t,r)=>{let n,i,o=!1;typeof AbortController=="function"&&(n=new AbortController,i=setTimeout(()=>{o=!0,n.abort()},t));let a=await fetch(e.href,{signal:n?n.signal:void 0,redirect:"manual",headers:r.headers}).catch(c=>{throw o?new ci:c});if(i!==void 0&&clearTimeout(i),a.status!==200)throw new fe("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await a.json()}catch{throw new fe("Failed to parse the JSON Web Key Set HTTP response as JSON")}},"fetchJwks"),Qm=ZS});function XS(){return typeof WebSocketPair<"u"||typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"||typeof EdgeRuntime<"u"&&EdgeRuntime==="vercel"}function Zm(e,t){let r=new Kl(e,t);return async function(n,i){return r.getKey(n,i)}}var Kl,Xm=I(()=>{Ym();V();Bl();s(XS,"isCloudflareWorkers");Kl=class extends Ei{static{s(this,"RemoteJWKSet")}constructor(t,r){if(super({keys:[]}),this._jwks=void 0,!(t instanceof URL))throw new TypeError("url must be an instance of URL");this._url=new URL(t.href),this._options={agent:r?.agent,headers:r?.headers},this._timeoutDuration=typeof r?.timeoutDuration=="number"?r?.timeoutDuration:5e3,this._cooldownDuration=typeof r?.cooldownDuration=="number"?r?.cooldownDuration:3e4,this._cacheMaxAge=typeof r?.cacheMaxAge=="number"?r?.cacheMaxAge:6e5}coolingDown(){return typeof this._jwksTimestamp=="number"?Date.now()<this._jwksTimestamp+this._cooldownDuration:!1}fresh(){return typeof this._jwksTimestamp=="number"?Date.now()<this._jwksTimestamp+this._cacheMaxAge:!1}async getKey(t,r){(!this._jwks||!this.fresh())&&await this.reload();try{return await super.getKey(t,r)}catch(n){if(n instanceof xr&&this.coolingDown()===!1)return await this.reload(),super.getKey(t,r);throw n}}async reload(){this._pendingFetch&&XS()&&(this._pendingFetch=void 0),this._pendingFetch||(this._pendingFetch=Qm(this._url,this._timeoutDuration,this._options).then(t=>{if(!Gl(t))throw new nr("JSON Web Key Set malformed");this._jwks={keys:t.keys},this._jwksTimestamp=Date.now(),this._pendingFetch=void 0}).catch(t=>{throw this._pendingFetch=void 0,t})),await this._pendingFetch}};s(Zm,"createRemoteJWKSet")});var vs,ey=I(()=>{Pe();ge();V();ys();_s();vs=class extends dr{static{s(this,"UnsecuredJWT")}encode(){let t=X(JSON.stringify({alg:"none"})),r=X(JSON.stringify(this._payload));return`${t}.${r}.`}static decode(t,r){if(typeof t!="string")throw new de("Unsecured JWT must be a string");let{0:n,1:i,2:o,length:a}=t.split(".");if(a!==3||o!=="")throw new de("Invalid Unsecured JWT");let c;try{if(c=JSON.parse(le.decode(ie(n))),c.alg!=="none")throw new Error}catch{throw new de("Invalid Unsecured JWT")}return{payload:un(c,ie(i),r),header:c}}}});var Jl={};ro(Jl,{decode:()=>wi,encode:()=>eI});var eI,wi,Ts=I(()=>{Pe();eI=X,wi=ie});function ty(e){let t;if(typeof e=="string"){let r=e.split(".");(r.length===3||r.length===5)&&([t]=r)}else if(typeof e=="object"&&e)if("protected"in e)t=e.protected;else throw new TypeError("Token does not contain a Protected Header");try{if(typeof t!="string"||!t)throw new Error;let r=JSON.parse(le.decode(wi(t)));if(!Q(r))throw new Error;return r}catch{throw new TypeError("Invalid Token or Protected Header formatting")}}var ry=I(()=>{Ts();ge();$e();s(ty,"decodeProtectedHeader")});function ny(e){if(typeof e!="string")throw new de("JWTs must use Compact JWS serialization, JWT must be a string");let{1:t,length:r}=e.split(".");if(r===5)throw new de("Only JWTs using Compact JWS serialization can be decoded");if(r!==3)throw new de("Invalid JWT");if(!t)throw new de("JWTs must contain a payload");let n;try{n=wi(t)}catch{throw new de("Failed to parse the base64url encoded payload")}let i;try{i=JSON.parse(le.decode(n))}catch{throw new de("Failed to parse the decoded payload as JSON")}if(!Q(i))throw new de("Invalid JWT Claims Set");return i}var iy=I(()=>{Ts();ge();$e();V();s(ny,"decodeJwt")});async function oy(e,t){var r;let n,i,o;switch(e){case"HS256":case"HS384":case"HS512":n=parseInt(e.slice(-3),10),i={name:"HMAC",hash:`SHA-${n}`,length:n},o=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":return n=parseInt(e.slice(-3),10),ir(new Uint8Array(n>>3));case"A128KW":case"A192KW":case"A256KW":n=parseInt(e.slice(1,4),10),i={name:"AES-KW",length:n},o=["wrapKey","unwrapKey"];break;case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":case"A128GCM":case"A192GCM":case"A256GCM":n=parseInt(e.slice(1,4),10),i={name:"AES-GCM",length:n},o=["encrypt","decrypt"];break;default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}return D.subtle.generateKey(i,(r=t?.extractable)!==null&&r!==void 0?r:!1,o)}function zl(e){var t;let r=(t=e?.modulusLength)!==null&&t!==void 0?t:2048;if(typeof r!="number"||r<2048)throw new k("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");return r}async function sy(e,t){var r,n,i;let o,a;switch(e){case"PS256":case"PS384":case"PS512":o={name:"RSA-PSS",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:zl(t)},a=["sign","verify"];break;case"RS256":case"RS384":case"RS512":o={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:zl(t)},a=["sign","verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":o={name:"RSA-OAEP",hash:`SHA-${parseInt(e.slice(-3),10)||1}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:zl(t)},a=["decrypt","unwrapKey","encrypt","wrapKey"];break;case"ES256":o={name:"ECDSA",namedCurve:"P-256"},a=["sign","verify"];break;case"ES384":o={name:"ECDSA",namedCurve:"P-384"},a=["sign","verify"];break;case"ES512":o={name:"ECDSA",namedCurve:"P-521"},a=["sign","verify"];break;case"EdDSA":a=["sign","verify"];let c=(r=t?.crv)!==null&&r!==void 0?r:"Ed25519";switch(c){case"Ed25519":case"Ed448":o={name:c};break;default:throw new k("Invalid or unsupported crv option provided")}break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{a=["deriveKey","deriveBits"];let u=(n=t?.crv)!==null&&n!==void 0?n:"P-256";switch(u){case"P-256":case"P-384":case"P-521":{o={name:"ECDH",namedCurve:u};break}case"X25519":case"X448":o={name:u};break;default:throw new k("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448")}break}default:throw new k('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}return D.subtle.generateKey(o,(i=t?.extractable)!==null&&i!==void 0?i:!1,a)}var Wl=I(()=>{Se();V();ui();s(oy,"generateSecret");s(zl,"getModulusLengthOption");s(sy,"generateKeyPair")});async function ay(e,t){return sy(e,t)}var cy=I(()=>{Wl();s(ay,"generateKeyPair")});async function uy(e,t){return oy(e,t)}var ly=I(()=>{Wl();s(uy,"generateSecret")});var Ss={};ro(Ss,{CompactEncrypt:()=>ln,CompactSign:()=>dn,EmbeddedJWK:()=>Km,EncryptJWT:()=>ws,FlattenedEncrypt:()=>Ht,FlattenedSign:()=>lr,GeneralEncrypt:()=>hs,GeneralSign:()=>bs,SignJWT:()=>Es,UnsecuredJWT:()=>vs,base64url:()=>Jl,calculateJwkThumbprint:()=>Vl,calculateJwkThumbprintUri:()=>Gm,compactDecrypt:()=>us,compactVerify:()=>ms,createLocalJWKSet:()=>Wm,createRemoteJWKSet:()=>Zm,decodeJwt:()=>ny,decodeProtectedHeader:()=>ty,errors:()=>dl,exportJWK:()=>ls,exportPKCS8:()=>Rm,exportSPKI:()=>Am,flattenedDecrypt:()=>on,flattenedVerify:()=>sn,generalDecrypt:()=>Tm,generalVerify:()=>Cm,generateKeyPair:()=>ay,generateSecret:()=>uy,importJWK:()=>cr,importPKCS8:()=>bm,importSPKI:()=>ym,importX509:()=>gm,jwtDecrypt:()=>km,jwtVerify:()=>Um});var Is=I(()=>{Nl();cs();Sm();Om();kl();fs();Lm();Mm();Hm();ql();ps();$l();gs();$m();jm();Vm();Bm();Jm();Bl();Xm();ey();xl();fi();ry();iy();V();cy();ly();Ts()});var vi=g(Ps=>{"use strict";Object.defineProperty(Ps,"__esModule",{value:!0});Ps.fetchRetry=void 0;var tI=C();async function rI(e,t,r){for(let n=0;n<=e.retries;n++){let i=fetch(t,r);if(n===e.retries)return i;let o=await i;if(o.status<500&&o.status!==429)return o;e?.logger?.error("Request failed, retrying",{method:typeof t=="string"?"GET":t.method,url:typeof t=="string"?t:t.url,status:o.status}),await new Promise(a=>setTimeout(a,e.retryDelayMs*Math.pow(2,n)))}throw new tI.ConfigurationError("An unknown error occurred, ensure retries is not negative")}s(rI,"fetchRetry");Ps.fetchRetry=rI});var pn=g(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.GcpServiceAccount=Xe.fetchToken=Xe.exchangeGgpJwtForIdToken=Xe.exchangeFirebaseJwtForIdToken=Xe.getTokenFromGcpServiceAccount=void 0;var dy=(Is(),no(Ss)),nI=C(),iI=vi();async function oI({serviceAccount:e,audience:t,expirationTime:r="1h",payload:n={}}){let{clientEmail:i,privateKeyId:o,privateKey:a}=e;return await new dy.SignJWT(n).setProtectedHeader({alg:"RS256",kid:o}).setIssuer(i).setSubject(i).setAudience(t).setIssuedAt().setExpirationTime(r).sign(a)}s(oI,"getTokenFromGcpServiceAccount");Xe.getTokenFromGcpServiceAccount=oI;async function sI(e,t,r){return Yl(e,{token:t,returnSecureToken:!0},r)}s(sI,"exchangeFirebaseJwtForIdToken");Xe.exchangeFirebaseJwtForIdToken=sI;async function aI(e,t,r){return Yl(e,{grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:t},r)}s(aI,"exchangeGgpJwtForIdToken");Xe.exchangeGgpJwtForIdToken=aI;async function Yl(e,t,r){let n=await(0,iI.fetchRetry)(r,e,{method:"POST",headers:{"Content-Type":"application/json"},redirect:"follow",body:JSON.stringify(t)});if(n.status!==200){let o;try{let a=await n.text(),c=JSON.parse(a);o={cause:c.error??c}}catch{}throw new nI.RuntimeError({message:"Could not get token from Google Identity",extensionMembers:o})}return await n.json()}s(Yl,"fetchToken");Xe.fetchToken=Yl;var Ql=class e{static{s(this,"GcpServiceAccount")}#e;#t;constructor({serviceAccount:t,privateKey:r}){this.#t=t,this.#e=r}static async init(t){let r=JSON.parse(t),n=await(0,dy.importPKCS8)(r.private_key.trim(),"RS256");return new e({serviceAccount:r,privateKey:n})}get type(){return this.#t.type}get projectId(){return this.#t.project_id}get privateKeyId(){return this.#t.private_key_id}get privateKey(){return this.#e}get clientEmail(){return this.#t.client_email}get clientId(){return this.#t.client_id}get authUri(){return this.#t.auth_uri}get tokenUrl(){return this.#t.token_url}get authProviderX509CertUrl(){return this.#t.auth_provider_x509_cert_url}get clientX509CertUrl(){return this.#t.client_x509_cert_url}get universalDomain(){return this.#t.universe_domain}};Xe.GcpServiceAccount=Ql});var Rs=g(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.GoogleLogTransport=Ft.ZuploToGCPMap=Ft.GoogleCloudLoggingPlugin=void 0;var cI=C(),uI=Te(),Zl=Y(),Xl=pn(),lI=Mt(),py=Et(),ed=class extends lI.LogPlugin{static{s(this,"GoogleCloudLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new As(this.options)}};Ft.GoogleCloudLoggingPlugin=ed;var dI="https://logging.googleapis.com/v2/entries:write?alt=json";Ft.ZuploToGCPMap={error:"ERROR",warn:"WARNING",info:"INFO",debug:"DEBUG"};var As=class{static{s(this,"GoogleLogTransport")}constructor(t){this.#r=t.logName,this.#e=t.serviceAccountJson,this.#i=Zl.Environment.instance.loggingEnvironmentType,this.#o=Zl.Environment.instance.loggingEnvironmentStage,this.#n=Zl.Environment.instance.deploymentName}#e;#t;#r;#n;#i;#o;async init(){this.#t=await Xl.GcpServiceAccount.init(this.#e)}log(t,r){if(!this.#t)throw new cI.SystemError("Invalid state - Google log transport is not initialized");if(t.messages.length===0)return;let n={allMessages:(0,py.makeErrorsSerializable)(t.messages)},i=this.#t.projectId??"zuplo-production",o={logName:this.#r,resource:{type:"global"},severity:Ft.ZuploToGCPMap[t.level],timestamp:t.timestamp,trace:`projects/${i}/traces/${t.requestId}`,labels:{requestId:t.requestId,buildId:t.buildId,source:t.logSource,loggingId:t.loggingId,logOwner:t.logOwner,environment:this.#n,environmentType:this.#i,environmentStage:this.#o}};t.rayId&&(o.labels.rayId=t.rayId);let a=(0,py.extractBestMessage)(n.allMessages);o.jsonPayload={...n,message:a},this.batcher.enqueue(o),r.waitUntil(this.batcher.waitUntilFlushed())}dispatchFunction=async t=>{if(t.length===0)return;this.#t||(this.#t=await Xl.GcpServiceAccount.init(this.#e));let r=await(0,Xl.getTokenFromGcpServiceAccount)({serviceAccount:this.#t,audience:"https://logging.googleapis.com/google.logging.v2.LoggingServiceV2"}),n=await fetch(dI,{method:"POST",body:JSON.stringify({entries:t}),headers:{Authorization:`Bearer ${r}`,"content-type":"application/json;charset=UTF-8"}});n.ok||console.error(n.status,n.statusText,await n.text())};batcher=new uI.BatchDispatch("google-log-transport",1,this.dispatchFunction)};Ft.GoogleLogTransport=As});var td=g(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.gcpLogFormat=hn.GCP_LOG_FORMAT=void 0;var hy=Et(),pI=Rs();hn.GCP_LOG_FORMAT="gcp";function hI(e){let t={allMessages:(0,hy.makeErrorsSerializable)(e.messages)},r="zuplo-production",n=(0,hy.extractBestMessage)(t.allMessages),i={logName:`projects/${r}/logs/runtime-user`,message:n,severity:pI.ZuploToGCPMap[e.level],timestamp:e.timestamp,"logging.googleapis.com/labels":{buildId:e.buildId,source:e.logSource,loggingId:e.loggingId,logOwner:e.logOwner},"logging.googleapis.com/trace":`projects/${r}/traces/${e.requestId}`,allMessages:t.allMessages};return e.rayId&&(i["logging.googleapis.com/labels"].rayId=e.rayId),i}s(hI,"gcpLogFormat");hn.gcpLogFormat=hI});var my=g(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.ConsoleTransport=void 0;var fy=td(),rd=class{static{s(this,"ConsoleTransport")}constructor(t,r){this.#e=t??console,this.#t=r}#e;#t;log(t){if(this.#t===fy.GCP_LOG_FORMAT){if(t.messages.length===0)return;this.#e[t.level].apply(null,[(0,fy.gcpLogFormat)(t)])}else this.#e[t.level].apply(null,[...t.messages,{logOwner:t.logOwner,logSource:t.logSource,level:t.level,timestamp:t.timestamp,loggingId:t.loggingId,rayId:t.rayId,requestId:t.requestId,buildId:t.buildId}])}};Os.ConsoleTransport=rd});var cd=g(fn=>{"use strict";Object.defineProperty(fn,"__esModule",{value:!0});fn.DataDogTransport=fn.DataDogLoggingPlugin=void 0;var fI=Te(),nd=Y(),mI=Mt(),yy=Et(),ad=class extends mI.LogPlugin{static{s(this,"DataDogLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new Ns(this.options)}};fn.DataDogLoggingPlugin=ad;var id="__ddtags",od="__ddattr",sd=s(e=>e.replaceAll(",","_").replaceAll(":","_"),"cleanTagText"),yI=s(e=>{let t=Object.keys(e),r=[];return t.forEach(n=>{let i=e[n];i==null?r.push(sd(n)):r.push(`${sd(n)}:${sd(i.toString())}`)}),r.join(",")},"formatTags"),Ns=class{static{s(this,"DataDogTransport")}constructor(t){this.#e=t.apiKey,this.#t=t.url??"https://http-intake.logs.datadoghq.com/api/v2/logs",this.#n=nd.Environment.instance.loggingEnvironmentType,this.#i=nd.Environment.instance.loggingEnvironmentStage,this.#r=nd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;log(t,r){let n={},i=r.custom[id];i&&typeof i=="object"&&Object.assign(n,i);let o=[...t.messages],a=t.messages.findIndex(h=>h[id]!==void 0);a>-1&&(Object.assign(n,o[a][id]),o.splice(a,1));let c={},u=r.custom[od];u&&typeof u=="object"&&Object.assign(c,u);let l=t.messages.findIndex(h=>h[od]!==void 0);l>-1&&(Object.assign(c,o[l][od]),o.splice(l,1));let d=(0,yy.makeErrorsSerializable)(o),m={message:{...{...t,activityId:t.requestId,trace:t.requestId},messages:d},ddsource:"Zuplo",hostname:new URL(r.originalRequest.url).hostname,msg:(0,yy.extractBestMessage)(d),service:t.loggingId,ddtags:yI(n),environment:this.#r,environment_type:this.#n,environment_stage:this.#i};Object.assign(m,c),this.batcher.enqueue(m),r.waitUntil(this.batcher.waitUntilFlushed())}dispatchFunction=async t=>{t.length!==0&&await fetch(this.#t,{method:"POST",body:JSON.stringify([...t]),headers:{"content-type":"application/json","DD-API-KEY":this.#e}})};batcher=new fI.BatchDispatch("data-dog-transport",10,this.dispatchFunction)};fn.DataDogTransport=Ns});var by=g(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.ProcessTransport=void 0;var gy=td(),ud=class{static{s(this,"ProcessTransport")}constructor(t,r){this.#e=t,this.#t=r}#e;#t;log(t){if(this.#t===gy.GCP_LOG_FORMAT){if(t.messages.length===0)return;this.#e[t.level].apply(null,[(0,gy.gcpLogFormat)(t)])}else this.#e[t.level].apply(null,[...t.messages,{logOwner:t.logOwner,logSource:t.logSource,timestamp:t.timestamp,loggingId:t.loggingId,rayId:t.rayId,requestId:t.requestId,buildId:t.buildId,vectorClock:t.vectorClock}])}};xs.ProcessTransport=ud});var Ey=g(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});Ls.RemoteLogTransport=void 0;var gI=Te(),_y=Y(),bI=Et(),_I=s(({url:e,remoteLogToken:t,loggingId:r,sendOnlyErrors:n})=>async i=>{let o;if(n===!0?o=i.filter(a=>a.level==="error"):o=i,o.length!==0)try{await fetch(`${e}/publish/${r}`,{method:"POST",body:JSON.stringify({timestamp:Date.now(),type:"log",message:o.map(a=>({...a,messages:(0,bI.makeErrorsSerializable)(a.messages)}))}),headers:{"content-type":"application/json",authentication:`Bearer ${t}`,"user-agent":_y.Environment.instance.systemUserAgent,"zp-dn":_y.Environment.instance.deploymentName??"unknown"}})}catch(a){console.error(a)}},"dispatchFunction"),Cs,ld=class{static{s(this,"RemoteLogTransport")}constructor(t){Cs||(Cs=new gI.BatchDispatch("remote-log-transport",1,_I(t)))}log(t,r){Cs.enqueue(t),r.waitUntil(Cs.waitUntilFlushed())}};Ls.RemoteLogTransport=ld});var wy=g(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.unifiedFormatter=Dr.SeverityNumberOpenTelemetryMap=void 0;Dr.SeverityNumberOpenTelemetryMap={internal:1,trace:2,debug:5,info:9,warn:13,error:17,fatal:21};var EI=s((e,t)=>r=>{let n={};return n.deploymentName=e,n.labels={requestId:r.requestId,source:r.logSource,loggingId:r.loggingId,logOwner:r.logOwner},n.rayId=r.rayId??"",n.runtime={buildId:t.BUILD_ID,buildTimestamp:t.TIMESTAMP,gitSHA:t.GIT_SHA,version:t.ZUPLO_VERSION},n.atomicCounter=r.vectorClock,{timestamp:r.timestamp,observerdTimestamp:r.timestamp,traceId:r.requestId,severityText:r.level,severityNumber:Dr.SeverityNumberOpenTelemetryMap[r.level],body:r.messages,attributes:n}},"unifiedFormatter");Dr.unifiedFormatter=EI});var Ty=g(Us=>{"use strict";Object.defineProperty(Us,"__esModule",{value:!0});Us.UnifiedLogTransport=void 0;var wI=Te(),vy=Y(),vI=wy(),TI=s(({url:e,remoteLogToken:t,deploymentName:r,build:n})=>async i=>{if(i.length===0)return;let o=(0,vI.unifiedFormatter)(r,n);try{await fetch(`${e}/v1/runtime-logs`,{method:"POST",body:JSON.stringify({entries:i.map(o)}),headers:{"content-type":"application/json",authentication:`Bearer ${t}`,"user-agent":vy.Environment.instance.systemUserAgent,"zp-dn":vy.Environment.instance.deploymentName??"unknown"}})}catch(a){console.error(a)}},"dispatchFunction"),Ds,dd=class{static{s(this,"UnifiedLogTransport")}constructor(t){Ds||(Ds=new wI.BatchDispatch("unified-log-transport",1,TI(t)))}async log(t,r){Ds.enqueue(t),r.waitUntil(Ds.waitUntilFlushed())}};Us.UnifiedLogTransport=dd});var Ny=g(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});Ms.LogInitializer=void 0;var SI=Sr(),II=gt(),Sy=Yu(),Iy=Y(),Py=Rf(),PI=Mt(),AI=Of(),Ay=Nf(),Ry=my(),RI=cd(),OI=Rs(),Oy=by(),NI=Ey(),xI=Ty(),pd=(0,SI.debug)("zuplo:logging"),hd=class e{static{s(this,"LogInitializer")}systemCoreLogger;userCoreLogger;constructor({systemCoreLogger:t,userCoreLogger:r}){this.systemCoreLogger=t,this.userCoreLogger=r}static async init(t){let r=await e.setupSystemCoreLogger(Iy.Environment.instance,t),n=await e.setupUserCoreLogger(Iy.Environment.instance,t);return new e({systemCoreLogger:r,userCoreLogger:n})}static async setupSystemCoreLogger(t,r){let{build:n}=t;pd("Gateway.setupSystemCoreLogger");let i=[],o=r.getService(Sy.SYSTEM_LOGGER);return o?i.push(new Oy.ProcessTransport(o.logger,t.logFormat)):t.isDeno&&i.push(new Ry.ConsoleTransport(console,t.logFormat)),t.isCloudflare&&t.deploymentName&&t.remoteLogToken&&i.push(new xI.UnifiedLogTransport({url:t.remoteLogURL,deploymentName:t.deploymentName,remoteLogToken:t.remoteLogToken,build:t.build})),await Promise.all(i.map(async a=>{a.init&&await a.init()})),new Py.CoreLogger(t.systemLogLevel,"system",t.loggingId,n.BUILD_ID,i)}static async setupUserCoreLogger(t,r){pd("Gateway.setupUserCoreLogger");let n=[],{runtime:i,build:o}=t,a=r.getService(Sy.SYSTEM_LOGGER);if(a&&a.captureUserLogs===!0?n.push(new Oy.ProcessTransport(a.logger,t.logFormat)):t.isDeno&&n.push(new Ry.ConsoleTransport(console,t.logFormat)),t.remoteLogToken&&t.loggingId&&n.push(new NI.RemoteLogTransport({loggingId:t.loggingId,url:t.remoteLogURL,remoteLogToken:t.remoteLogToken,sendOnlyErrors:t.isCloudflare})),i.GCP_USER_LOG_NAME&&i.GCP_USER_LOG_SVC_ACCT_JSON&&n.push(new OI.GoogleLogTransport({serviceAccountJson:i.GCP_USER_LOG_SVC_ACCT_JSON,logName:i.GCP_USER_LOG_NAME})),i.ZUPLO_USER_LOGGER_DATA_DOG_API_KEY){let c=i.ZUPLO_USER_LOGGER_DATA_DOG_URL;n.push(new RI.DataDogTransport({apiKey:i.ZUPLO_USER_LOGGER_DATA_DOG_API_KEY,url:c}))}return II.plugins.forEach(c=>{c instanceof PI.LogPlugin&&n.push(c.getTransport())}),await Promise.all(n.map(async c=>{c.init&&await c.init()})),new Py.CoreLogger(t.userLogLevel,"user",t.loggingId,o.BUILD_ID,n)}createRequestLoggers(t,r,n,i,o){pd("Gateway.createRequestLoggers");let a=new AI.LoggingContext(n,i,o),c=new Ay.RequestLogger(t,r,this.systemCoreLogger,a);return{userRequestLogger:new Ay.RequestLogger(t,r,this.userCoreLogger,a),systemRequestLogger:c}}};Ms.LogInitializer=hd});var md=g(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.UserRouteConfiguration=void 0;var fd=class{static{s(this,"UserRouteConfiguration")}constructor(t){this.path=t.path,this.methods=t.methods,this.label=t.label,this.key=t.key,this.handler=t.handler,this.corsPolicy=t.corsPolicy,this.custom=t.custom,this.version=t.version,this.policies=t.policies,this.excludeFromOpenApi=t.excludeFromOpenApi,this.pathPattern=t.pathPattern,t.raw?(this.#e=t.raw(),this.operationId=this.raw()?.operationId,this.summary=this.raw()?.summary,this.tags=this.raw()?.tags,this.parameters=this.raw()?.parameters,this.responses=this.raw()?.responses):(this.operationId=t.operationId,this.summary=t.summary,this.tags=t.tags,this.parameters=t.parameters,this.responses=t.responses)}raw(){return this.#e}#e;label;key;path;summary;operationId;tags;parameters;responses;excludeFromOpenApi;pathPattern;custom;methods;handler;corsPolicy;version;policies};ks.UserRouteConfiguration=fd});var gd=g(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.Router=St.RouterError=St.LookupResult=St.RouterEntry=void 0;var xy=C(),CI=st(),LI=md(),Hs=class{static{s(this,"RouterEntry")}constructor(t,r,n,i){this.fullPath=t,this.urlPattern=r,this.config=n,this.executableHandler=i}fullPath;urlPattern;config;executableHandler};St.RouterEntry=Hs;var Ti=class{static{s(this,"LookupResult")}constructor(t,r,n){this.routeConfiguration=t,this.params=n??{},this.executableHandler=r}executableHandler;routeConfiguration;params};St.LookupResult=Ti;var Fs=class extends Error{static{s(this,"RouterError")}constructor(t,r){super(t,r)}};St.RouterError=Fs;var yd=class{static{s(this,"Router")}constructor(t){this.routeEntries=[],this.versions=t}versions;routeEntries;addRoute(t,r){if(!(t instanceof LI.UserRouteConfiguration||t instanceof CI.SystemRouteConfiguration))throw new xy.SystemError("Config must be a UserRouteConfiguration or SystemRouteConfiguration");let n=this.versions.find(o=>o.name===t.version)?.pathPrefix,i;"pathPattern"in t&&t.pathPattern?i=`${n??""}${t.pathPattern}`:i=`${n??""}${t.path}`;try{let o=new URLPattern({pathname:i}),a=new Hs(i,o,t,r);Object.freeze(a.config),this.routeEntries.push(a)}catch(o){throw new Fs(`addRoute-error: Invalid path '${i}'. '${o.message}'`,{cause:o})}}lookup(t,r){if(typeof t>"u")throw new xy.ConfigurationError(`Invalid request - Method was undefined. Path: '${r}'`);let n=this.routeEntries.filter(i=>i.config.methods.includes(t));if(n.length!==0)for(let i=0;i<n.length;i++){let o=n[i],c=o.urlPattern.exec({pathname:r});if(c!==null)return new Ti(o.config,o.executableHandler,c.pathname.groups)}}lookupByPathOnly(t){let r=[];for(let n=0;n<this.routeEntries.length;n++){let i=this.routeEntries[n],a=i.urlPattern.exec({pathname:t});if(a!==null){let c=new Ti(i.config,i.executableHandler,a.pathname.groups);r.push(c)}}return r}};St.Router=yd});var mn=g($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});$s.Gateway=void 0;var DI=Sr(),Cy=rf(),Ly=df(),UI=pf(),Dy=hf(),Uy=gf(),qt=ri(),qs=Ir(),My=Af(),Pt=C(),Si=gt(),MI=Ny(),kI=Dt(),HI=ae(),FI=Wu(),qI=Yt(),$I=zr(),jI=He(),VI=gd(),bd=st(),ky=md(),GI=Be(),BI=Uo(),Hy=Y(),Fy=Nr(),KI=["/__zuplo/ping","/__zuplo/open-api","/__zuplo/docs","/__zuplo/consumers","/__zuplo/external-users","/__zuplo/assets","/__zuplo/config","/__zuplo/build","/favicon.ico"],It=(0,DI.debug)("zuplo:runtime"),JI=s(e=>{let t=e.findIndex(r=>r.name===bd.systemNoVersion.name);return t>-1?[...e.splice(t),bd.systemNoVersion]:[...e,bd.systemNoVersion]},"setupSystemNoVersion"),_d=class e{static{s(this,"Gateway")}routeData;runtimeSettings;schemaValidator;static#e;constructor(t,r,n,i){this.routeData=t,this.runtimeSettings=r,this.schemaValidator=i,It("Gateway.constructor"),this.#r=this.setupRoutes(),this.#i=this.setupErrorHandler(),this.#t=n}static async initialize(t,r,n,i,o){if(It("Gateway.initialize"),!e.#e){await(0,Si.initializeRuntime)(o);let a=await MI.LogInitializer.init(n),c=t(),u={...c,corsPolicies:(0,BI.parseCorsPolicies)(c.corsPolicies)},l=new e(u,r,a,i);e.#e=l}return e.#e}static purgeGatewayCache(){It("Gateway.purgeGatewayCache"),e.#e=void 0}static get instance(){if(!e.#e)throw new Pt.SystemError("Gateway cannot be used before it is initialized");return e.#e}instanceId=crypto.randomUUID();#t;#r;#n=[$I.policyProcessor,FI.corsProcessor,qI.metricsProcessor];#i;setupRoutes=()=>{It("Gateway.setupRoutes");let t=this.routeData,r=JI(t.versions),n=new VI.Router(r);if(t.routes.length===0)return(0,Cy.registerBuildRoute)(n,this),(0,Uy.registerPingRoute)(n,this),(0,Ly.registerCorsRoute)(n,this),(0,UI.registerNoRoutes)(n,this),n;let{enabled:i}=this.runtimeSettings.developerPortal;i&&((0,My.registerDevPortalLegacyRedirectRoute)(n,this),(0,My.registerDevPortalV3Route)(n,this)),(0,Cy.registerBuildRoute)(n,this),(0,Uy.registerPingRoute)(n,this),(0,Ly.registerCorsRoute)(n,this);for(let o of Si.plugins)o instanceof Si.SystemRuntimePlugin&&o.registerRoutes(n,this);return t.routes.forEach(o=>{let a;if(typeof o.handler?.module=="object"&&(a=o.handler?.module[o.handler.export]),typeof a!="function")throw new Pt.ConfigurationError(`Invalid state - No handler on route for path '${o.path}'`);let c=new kI.Pipeline({processors:this.#n,handler:a,gateway:this}),u=new ky.UserRouteConfiguration(o);n.addRoute(u,c.execute)}),(0,Dy.registerNotMatchedHandler)(n,this),n};setupErrorHandler=()=>{let t;if(typeof this.routeData.requestErrorHandler?.module=="object"){if(t=this.routeData.requestErrorHandler.module[this.routeData.requestErrorHandler.export],typeof t!="function")throw new Pt.ConfigurationError("Invalid state - Module and export set for 'errorHandler' is not a function")}else t=s((r,n,i)=>this.#o(r,n,i),"errorHandler");return t};errorHandler(t,r,n){try{return this.#i(t,r,n)}catch(i){return It("An error occurred in the user's errorHandler",i),this.#o(t,r,i)}}#o(t,r,n){It("Gateway.internalErrorResponse");let i={};if(Hy.Environment.instance.isDeno){if(n instanceof Pt.RuntimeError&&n.extensionMembers)i=n.extensionMembers;else if(n.cause){let o=(0,Fy.serializeError)(n.cause);"stack"in o&&(o.stack=(0,Fy.cleanStack)(o.stack)),i={cause:o}}}return HI.HttpProblems.internalServerError(t,r,{detail:n.message,...i})}#s(t){let r=new Headers(t.headers);return qt.DISPATCH_HEADERS_TO_REMOVE.forEach(n=>{r.delete(n)}),Hy.Environment.instance.isDeno&&qt.INTERNAL_HEADERS_TO_REMOVE.forEach(n=>{r.delete(n)}),new Request(t,{headers:r})}async handleRequest(t,r){let n=t.headers.get(qt.REQUEST_ID_HEADER)??t.headers.get(qt.LEGACY_REQUEST_ID_HEADER),i=t.headers.get(qt.RAY_ID_HEADER);if(!n){n=crypto.randomUUID();let T=new Headers(t.headers);T.set(qt.REQUEST_ID_HEADER,n),t=new Request(t,{headers:T})}if(["GET","HEAD"].includes(t.method)&&t.body){let T=new Headers(t.headers);T.set(qt.BODY_REMOVED_HEADER,"true"),t=new Request(t,{headers:T,body:null})}let o={},{userRequestLogger:a,systemRequestLogger:c}=this.#t.createRequestLoggers(n,i,r,o,t),u=new URL(t.url),l=u.pathname,d=this.#r.lookup(t.method,l);if(!d)throw new Pt.SystemError(`Invalid state - no route match - should have been picked up by the not found handler, path: '${l}'`);let p=new qs.HeaderIncomingRequestProperties(t.headers),m=this.#s(t),h=new jI.ZuploRequest(m,{params:d.params}),y=new qs.SystemZuploContext({logger:a,route:d.routeConfiguration,requestId:n,fetchEvent:r,custom:o,incomingRequestProperties:p}),E=qs.ZuploContextExtensions.initialize(y,h);if(d.routeConfiguration===Dy.notFoundRouteConfiguration&&Si.runtimeExtensions.value?.notFoundHandler!==void 0){let T=this.#r.lookupByPathOnly(l);E.pathOnlyMatches=T.map(S=>S.routeConfiguration).filter(S=>S instanceof ky.UserRouteConfiguration)}try{if(GI.SystemLogMap.addLogger(y,c),!u.pathname.startsWith("/__zuplo")){let $=await(0,Si.invokeOnRequestExtensions)(h,y);if($ instanceof Response)return $;{let O=qs.ZuploContextExtensions.getContextExtensions(y);h=$,O.latestRequest=h}}[...KI,...this.runtimeSettings.developerPortal.enabled?[this.runtimeSettings.developerPortal.sitePathname]:[]].filter($=>new RegExp($).test(u.pathname)).length===0&&a.debug(`Request received '${u.pathname}'`,{method:t.method,url:u.pathname,hostname:u.hostname,route:d.routeConfiguration.path});let S=d.executableHandler;zI(S,d,t),It("Gateway.handleRequest - call user handler");let U=await S(h,y);if(It("Gateway.handleRequest - user handler"),!(U instanceof Response))throw new Pt.RuntimeError(`Invalid Response type from the request handler: ${typeof U}`);if(U.bodyUsed)throw new Pt.RuntimeError("The response object has already been used. Return a new response instead.");if(U.headers.get(qt.REQUEST_ID_HEADER)===null&&!U.webSocket){let $=new Headers(U.headers);return $.set(qt.REQUEST_ID_HEADER,n),new Response(U.body,{status:U.status,statusText:U.statusText,headers:$,cf:U.cf})}else return U}catch(T){return It("Gateway - error executing handler",T),T instanceof Pt.RuntimeError?(a.error(T),c.warn(T)):c.error(T),await this.#o(h,y,T)}}};$s.Gateway=_d;function zI(e,t,r){if(It("Gateway.checkHandler"),!e)throw typeof t.routeConfiguration>"u"?new Pt.ConfigurationError(`Invalid state - no routeConfiguration for '${r.method}:${r.url}`):new Pt.ConfigurationError(`Invalid state. No handler for request '${r.method}':'${t.routeConfiguration.path}'`)}s(zI,"checkHandler")});var qy=g(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.invokeInboundPolicy=void 0;var WI=C(),QI=mn(),YI=zr(),ZI=s(async(e,t,r)=>{let n=QI.Gateway.instance.routeData.policies,i=(0,YI.getInboundPolicyHandlerAndOptions)([e],n);if(i.length===0)throw new WI.RuntimeError(`Invalid 'invokeInboundPolicy call' - no policy '${e}' found.`);let o=i[0];return o.handler(t,r,o.options,e)},"invokeInboundPolicy");js.invokeInboundPolicy=ZI});var Ir=g(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.SystemZuploContext=et.ZuploContextExtensions=et.ResponseSentEvent=et.ResponseSendingEvent=et.HeaderIncomingRequestProperties=void 0;var _e=ri(),XI=C(),eP=qy(),Ed=class{static{s(this,"HeaderIncomingRequestProperties")}#e;constructor(t){this.#e=t}get asn(){try{let t=this.#e.get(_e.ZP_ASN_HEADER);if(typeof t=="string")return parseInt(t)}catch{}}get asOrganization(){return this.#e.get(_e.ZP_AS_ORG_HEADER)??void 0}get city(){return this.#e.get(_e.CF_IP_CITY_HEADER)??this.#e.get(_e.ZP_IP_CITY_HEADER)??void 0}get continent(){return this.#e.get(_e.CF_IP_CONTINENT_HEADER)??this.#e.get(_e.ZP_IP_CONTINENT_HEADER)??void 0}get country(){return this.#e.get(_e.CF_IP_COUNTRY_HEADER)??this.#e.get(_e.ZP_IP_COUNTRY_HEADER)??void 0}get latitude(){return this.#e.get(_e.CF_IP_LATITUDE_HEADER)??this.#e.get(_e.ZP_IP_LATITUDE_HEADER)??void 0}get longitude(){return this.#e.get(_e.CF_IP_LONGITUDE_HEADER)??this.#e.get(_e.ZP_IP_LONGITUDE_HEADER)??void 0}get colo(){return this.#e.get(_e.ZP_COLO_HEADER)??void 0}get postalCode(){return this.#e.get(_e.ZP_POSTAL_CODE_HEADER)??void 0}get metroCode(){return this.#e.get(_e.ZP_METRO_CODE_HEADER)??void 0}get region(){return this.#e.get(_e.ZP_REGION_HEADER)??void 0}get regionCode(){return this.#e.get(_e.ZP_REGION_CODE_HEADER)??void 0}get timezone(){return this.#e.get(_e.ZP_TIMEZONE_HEADER)??void 0}toJSON(){return{asn:this.asn,asOrganization:this.asOrganization,city:this.city,continent:this.continent,country:this.country,latitude:this.latitude,longitude:this.longitude,colo:this.colo,postalCode:this.postalCode,metroCode:this.metroCode,region:this.region,regionCode:this.regionCode,timezone:this.timezone}}};et.HeaderIncomingRequestProperties=Ed;var wd=class extends Event{static{s(this,"ResponseSendingEvent")}constructor(t,r){super("responseSending"),this.request=t,this.mutableResponse=r}request;mutableResponse};et.ResponseSendingEvent=wd;var vd=class extends Event{static{s(this,"ResponseSentEvent")}constructor(t,r){super("responseSent"),this.request=t,this.response=r}request;response};et.ResponseSentEvent=vd;var Ii=class e{static{s(this,"ZuploContextExtensions")}static#e=new WeakMap;static initialize(t,r){if(!e.#e.has(t)){let n=new e(r);return e.#e.set(t,n),n}throw new Error(`ZuploContextExtensions already initialized for context with requestId '${t.requestId}'`)}static getContextExtensions(t){let r=e.#e.get(t);if(!r)throw new XI.RuntimeError(`Invalid state, could not get ZuploContext extensions for context with requestId '${t.requestId}'`);return r}latestRequest;pathOnlyMatches;#t;#r;constructor(t){this.latestRequest=t,this.#t=[],this.#r=[]}addResponseSendingHook(t){this.#r.push(t)}addResponseSendingFinalHook(t){this.#t.push(t)}onResponseSendingFinal=async(t,r,n)=>{for(let i of this.#t)await i(t,r,n)};onResponseSending=async(t,r,n)=>{let i=t;for(let o of this.#r)i=await o(t,r,n);return i}};et.ZuploContextExtensions=Ii;var Td=class extends EventTarget{static{s(this,"SystemZuploContext")}constructor({logger:t,route:r,requestId:n,fetchEvent:i,custom:o,incomingRequestProperties:a}){super(),this.log=Object.freeze(t),this.route=r,this.requestId=n,this.custom=o,this.incomingRequestProperties=a,this.#e=i,this.invokeInboundPolicy=(c,u)=>(0,eP.invokeInboundPolicy)(c,u,this),this.waitUntil=c=>{this.#e.waitUntil(c)},this.addResponseSendingHook=c=>{Ii.getContextExtensions(this).addResponseSendingHook(c)},this.addResponseSendingFinalHook=c=>{Ii.getContextExtensions(this).addResponseSendingFinalHook(c)},Object.freeze(this)}#e;requestId;log;route;custom;incomingRequestProperties;invokeInboundPolicy;waitUntil;addResponseSendingHook;addResponseSendingFinalHook;addEventListener(t,r,n){let i=s(o=>{try{typeof r=="function"?r(o):r.handleEvent(o)}catch(a){throw this.log.error(`Error invoking event ${t}. See following logs for details.`),a}},"wrapped");super.addEventListener(t,i,n)}};et.SystemZuploContext=Td});var Gs=g(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});Vs.ContextData=void 0;var Sd=class e{static{s(this,"ContextData")}static#e;#t;constructor(t){this.#t=t}set(t,r){e.set(t,this.#t,r)}get(t){return e.get(t,this.#t)}static set(t,r,n){e.#e||(e.#e=new WeakMap);let i=e.#e.get(t);i||(i=new Map),i.set(r,n),e.#e.set(t,i)}static get(t,r){return e.#e||(e.#e=new WeakMap),e.#e.get(t)?.get(r)}};Vs.ContextData=Sd});var yn=g(hr=>{"use strict";Object.defineProperty(hr,"__esModule",{value:!0});hr.environment=hr.isZuploReadableEnvVariableName=hr.isRestrictedEnvVariableName=void 0;var tP=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function $y(e){return e.startsWith("__ZUPLO")||e.startsWith("ZUPLO_")?!tP.includes(e)&&!e.startsWith("ZUPLO_PUBLIC_"):!1}s($y,"isRestrictedEnvVariableName");hr.isRestrictedEnvVariableName=$y;function jy(e){return!!e.startsWith("ZUPLO_")}s(jy,"isZuploReadableEnvVariableName");hr.isZuploReadableEnvVariableName=jy;var rP=new Proxy({},{get(e,t){if($y(String(t))&&!jy(String(t)))return;let r=globalThis,n;return r.process?n=r.process.env[t]:n=r[t],n}});hr.environment=rP});var Id=g(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.externalServiceHandler=gn.externalServiceTunnelConfig=void 0;var nP=Sr(),Ur=C(),iP=Pd(),Pi=Y(),lt=(0,nP.debug)("zuplo:runtime:external-service");function Gy(){let e,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:t}=Pi.Environment.instance.runtime;if(t&&t!=="undefined")try{let r=atob(t);e=JSON.parse(r)}catch{}return e}s(Gy,"getServiceAuth");async function oP(e){let t=Gy();if(!t)throw lt("There is no external service auth configured for this zup."),new Ur.RuntimeError("There are no external services configured for this zup.");if(typeof e!="string")throw lt("Cannot call external service with Request object"),new Ur.RuntimeError("Currently, we only support fetch(<some_string>, ...).");let n=new URL(e).hostname,i={};i["CF-Access-Client-Id"]=t.clientId,i["CF-Access-Client-Secret"]=t.clientSecret;let o;if(t.customServiceMapping&&t.customServiceMapping[n])o=`https://${t.customServiceMapping[n]}`;else if(Pi.Environment.instance.useSha256ServiceRouting){lt("Using sha256 service routing");let a=Pi.Environment.instance.build;if(a.ACCOUNT_NAME&&a.PROJECT_NAME&&a.ENVIRONMENT_TYPE)o=`https://${await By(n,a.ACCOUNT_NAME,a.PROJECT_NAME,a.ENVIRONMENT_TYPE)}.zuptunnel.com`;else throw lt("Cannot use sha256 service routing, missing build variables"),new Ur.RuntimeError("Failed to generate fully qualified tunnel url.")}else o=`https://${n}.zuptunnel.com`;return{serviceBaseUrl:o,tunnelHeaders:i}}s(oP,"externalServiceTunnelConfig");gn.externalServiceTunnelConfig=oP;async function sP(e,t){let r=Gy();if(r)if(lt(`Using external service auth. ClientId: ${r.clientId})`),typeof e=="string"){let n=new URL(e),i=n.hostname,o=t??{},a=new Headers(o.headers||{});a.set("CF-Access-Client-Id",r.clientId),a.set("CF-Access-Client-Secret",r.clientSecret),o.headers=a;let c;if(r.customServiceMapping&&r.customServiceMapping[i])c=`https://${r.customServiceMapping[i]}`;else if(Pi.Environment.instance.useSha256ServiceRouting){lt("Using sha256 service routing");let d=Pi.Environment.instance.build;if(d.ACCOUNT_NAME&&d.PROJECT_NAME&&d.ENVIRONMENT_TYPE)c=`https://${await By(i,d.ACCOUNT_NAME,d.PROJECT_NAME,d.ENVIRONMENT_TYPE)}.zuptunnel.com`;else throw lt("Cannot use sha256 service routing, missing build variables"),new Ur.RuntimeError("Failed to generate fully qualified tunnel url.")}else c=`https://${i}.zuptunnel.com`;let u=new URL(`${c}${n.pathname}${n.search}`);lt(`Calling external service: ${u.toString()}`);let l=await(0,iP.originalFetch)(u.toString(),o);if(l.status===403&&l.headers.get("cf-access-domain")!==null)throw console.error("403 Forbidden when calling external service.",{clientId:r.clientId,tunnelHost:c}),new Ur.RuntimeError("Could not connect to secure tunnel.");return l}else throw lt("Cannot call external service with Request object"),new Ur.RuntimeError("Currently, we only support fetch(<some_string>, ...).");else throw lt("There is no external service auth configured for this zup."),new Ur.RuntimeError("There are no external services configured for this zup.")}s(sP,"externalServiceHandler");gn.externalServiceHandler=sP;async function By(e,t,r,n){let i=e.toLowerCase(),o=t.toLowerCase(),a=r.toLowerCase(),c=aP(n);lt(`Hashing service name: ${o}-${i}.${o}-${a}-${c}`);let u=await Vy(`${o}-${i}`),l=await Vy(`${o}-${a}-${c}`);return`${u}.${l}`}s(By,"hashServiceName");async function Vy(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("").slice(0,-1)}s(Vy,"hashSegment");function aP(e){let t=e.toLowerCase();switch(t){case"production":case"preview":return t;default:return"working-copy"}}s(aP,"sanitizeEnvironmentType")});var Pd=g(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.originalFetch=void 0;var cP=Id(),Ky=new Map;Ky.set("service:",cP.externalServiceHandler);bn.originalFetch=globalThis.fetch;globalThis.fetch=function(e,t){let r=uP(t);if(typeof e=="string"){let n=new URL(e),i=Ky.get(n.protocol);return i?i(e,r):(0,bn.originalFetch)(e,r)}else return(0,bn.originalFetch)(e,r)};var uP=s(e=>{if(!e||e instanceof Request)return e;let t=e;if(!t.zuplo)return e;let r=e;return r.cf={cacheEverything:t.zuplo?.cacheEverything,cacheTtl:t.zuplo?.cacheTtlSeconds},delete e.zuplo,e},"transformInit")});var Wy=g(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});_n.Handler=_n.purgeGatewayCache=void 0;var lP=C(),zy=mn(),Jy=Y(),dP=s(()=>{zy.Gateway.purgeGatewayCache()},"purgeGatewayCache");_n.purgeGatewayCache=dP;var Ad=class{static{s(this,"Handler")}routeLoader;buildEnvironment;runtimeEnvironment;runtimeSettings;serviceProvider;schemaValidations;runtimeInit;constructor(t,r,n,i,o,a,c){this.routeLoader=t,this.buildEnvironment=r,this.runtimeEnvironment=n,this.runtimeSettings=i,this.serviceProvider=o,this.schemaValidations=a,this.runtimeInit=c}requestHandler=async(t,r)=>{Jy.Environment.initialize(this.buildEnvironment,this.runtimeEnvironment);let n;try{n=await zy.Gateway.initialize(this.routeLoader,this.runtimeSettings,this.serviceProvider,this.schemaValidations,this.runtimeInit)}catch(i){console.error("Error initializing gateway.",i);let o="Error initializing gateway. Check your 'zuplo.runtime.ts' for errors or contact support.";i instanceof lP.ConfigurationError&&(o=i.message);let a={status:500,title:"Gateway Initialization Error",type:"https://httpproblems.com/http-status/500",detail:o,instance:t.url,trace:{timestamp:Date.now(),rayId:t.headers.get("cf-ray")??void 0,buildId:this.buildEnvironment.BUILD_ID},message:Jy.Environment.instance.isDeno?i.message:void 0};return new Response(JSON.stringify(a,null,2),{status:500,headers:{"content-type":"application/json"}})}return n.handleRequest(t,r)}};_n.Handler=Ad});var Xy=g(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.pathToRegexp=Oe.tokensToRegexp=Oe.regexpToFunction=Oe.match=Oe.tokensToFunction=Oe.compile=Oe.parse=void 0;function pP(e){for(var t=[],r=0;r<e.length;){var n=e[r];if(n==="*"||n==="+"||n==="?"){t.push({type:"MODIFIER",index:r,value:e[r++]});continue}if(n==="\\"){t.push({type:"ESCAPED_CHAR",index:r++,value:e[r++]});continue}if(n==="{"){t.push({type:"OPEN",index:r,value:e[r++]});continue}if(n==="}"){t.push({type:"CLOSE",index:r,value:e[r++]});continue}if(n===":"){for(var i="",o=r+1;o<e.length;){var a=e.charCodeAt(o);if(a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||a===95){i+=e[o++];continue}break}if(!i)throw new TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:i}),r=o;continue}if(n==="("){var c=1,u="",o=r+1;if(e[o]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(o));for(;o<e.length;){if(e[o]==="\\"){u+=e[o++]+e[o++];continue}if(e[o]===")"){if(c--,c===0){o++;break}}else if(e[o]==="("&&(c++,e[o+1]!=="?"))throw new TypeError("Capturing groups are not allowed at ".concat(o));u+=e[o++]}if(c)throw new TypeError("Unbalanced pattern at ".concat(r));if(!u)throw new TypeError("Missing pattern at ".concat(r));t.push({type:"PATTERN",index:r,value:u}),r=o;continue}t.push({type:"CHAR",index:r,value:e[r++]})}return t.push({type:"END",index:r,value:""}),t}s(pP,"lexer");function Rd(e,t){t===void 0&&(t={});for(var r=pP(e),n=t.prefixes,i=n===void 0?"./":n,o="[^".concat(En(t.delimiter||"/#?"),"]+?"),a=[],c=0,u=0,l="",d=s(function(re){if(u<r.length&&r[u].type===re)return r[u++].value},"tryConsume"),p=s(function(re){var ne=d(re);if(ne!==void 0)return ne;var ve=r[u],w=ve.type,H=ve.index;throw new TypeError("Unexpected ".concat(w," at ").concat(H,", expected ").concat(re))},"mustConsume"),m=s(function(){for(var re="",ne;ne=d("CHAR")||d("ESCAPED_CHAR");)re+=ne;return re},"consumeText");u<r.length;){var h=d("CHAR"),y=d("NAME"),E=d("PATTERN");if(y||E){var T=h||"";i.indexOf(T)===-1&&(l+=T,T=""),l&&(a.push(l),l=""),a.push({name:y||c++,prefix:T,suffix:"",pattern:E||o,modifier:d("MODIFIER")||""});continue}var S=h||d("ESCAPED_CHAR");if(S){l+=S;continue}l&&(a.push(l),l="");var U=d("OPEN");if(U){var T=m(),$=d("NAME")||"",O=d("PATTERN")||"",te=m();p("CLOSE"),a.push({name:$||(O?c++:""),pattern:$&&!O?o:O,prefix:T,suffix:te,modifier:d("MODIFIER")||""});continue}p("END")}return a}s(Rd,"parse");Oe.parse=Rd;function hP(e,t){return Qy(Rd(e,t),t)}s(hP,"compile");Oe.compile=hP;function Qy(e,t){t===void 0&&(t={});var r=Od(t),n=t.encode,i=n===void 0?function(u){return u}:n,o=t.validate,a=o===void 0?!0:o,c=e.map(function(u){if(typeof u=="object")return new RegExp("^(?:".concat(u.pattern,")$"),r)});return function(u){for(var l="",d=0;d<e.length;d++){var p=e[d];if(typeof p=="string"){l+=p;continue}var m=u?u[p.name]:void 0,h=p.modifier==="?"||p.modifier==="*",y=p.modifier==="*"||p.modifier==="+";if(Array.isArray(m)){if(!y)throw new TypeError('Expected "'.concat(p.name,'" to not repeat, but got an array'));if(m.length===0){if(h)continue;throw new TypeError('Expected "'.concat(p.name,'" to not be empty'))}for(var E=0;E<m.length;E++){var T=i(m[E],p);if(a&&!c[d].test(T))throw new TypeError('Expected all "'.concat(p.name,'" to match "').concat(p.pattern,'", but got "').concat(T,'"'));l+=p.prefix+T+p.suffix}continue}if(typeof m=="string"||typeof m=="number"){var T=i(String(m),p);if(a&&!c[d].test(T))throw new TypeError('Expected "'.concat(p.name,'" to match "').concat(p.pattern,'", but got "').concat(T,'"'));l+=p.prefix+T+p.suffix;continue}if(!h){var S=y?"an array":"a string";throw new TypeError('Expected "'.concat(p.name,'" to be ').concat(S))}}return l}}s(Qy,"tokensToFunction");Oe.tokensToFunction=Qy;function fP(e,t){var r=[],n=Nd(e,r,t);return Yy(n,r,t)}s(fP,"match");Oe.match=fP;function Yy(e,t,r){r===void 0&&(r={});var n=r.decode,i=n===void 0?function(o){return o}:n;return function(o){var a=e.exec(o);if(!a)return!1;for(var c=a[0],u=a.index,l=Object.create(null),d=s(function(m){if(a[m]===void 0)return"continue";var h=t[m-1];h.modifier==="*"||h.modifier==="+"?l[h.name]=a[m].split(h.prefix+h.suffix).map(function(y){return i(y,h)}):l[h.name]=i(a[m],h)},"_loop_1"),p=1;p<a.length;p++)d(p);return{path:c,index:u,params:l}}}s(Yy,"regexpToFunction");Oe.regexpToFunction=Yy;function En(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}s(En,"escapeString");function Od(e){return e&&e.sensitive?"":"i"}s(Od,"flags");function mP(e,t){if(!t)return e;for(var r=/\((?:\?<(.*?)>)?(?!\?)/g,n=0,i=r.exec(e.source);i;)t.push({name:i[1]||n++,prefix:"",suffix:"",modifier:"",pattern:""}),i=r.exec(e.source);return e}s(mP,"regexpToRegexp");function yP(e,t,r){var n=e.map(function(i){return Nd(i,t,r).source});return new RegExp("(?:".concat(n.join("|"),")"),Od(r))}s(yP,"arrayToRegexp");function gP(e,t,r){return Zy(Rd(e,r),t,r)}s(gP,"stringToRegexp");function Zy(e,t,r){r===void 0&&(r={});for(var n=r.strict,i=n===void 0?!1:n,o=r.start,a=o===void 0?!0:o,c=r.end,u=c===void 0?!0:c,l=r.encode,d=l===void 0?function(H){return H}:l,p=r.delimiter,m=p===void 0?"/#?":p,h=r.endsWith,y=h===void 0?"":h,E="[".concat(En(y),"]|$"),T="[".concat(En(m),"]"),S=a?"^":"",U=0,$=e;U<$.length;U++){var O=$[U];if(typeof O=="string")S+=En(d(O));else{var te=En(d(O.prefix)),re=En(d(O.suffix));if(O.pattern)if(t&&t.push(O),te||re)if(O.modifier==="+"||O.modifier==="*"){var ne=O.modifier==="*"?"?":"";S+="(?:".concat(te,"((?:").concat(O.pattern,")(?:").concat(re).concat(te,"(?:").concat(O.pattern,"))*)").concat(re,")").concat(ne)}else S+="(?:".concat(te,"(").concat(O.pattern,")").concat(re,")").concat(O.modifier);else O.modifier==="+"||O.modifier==="*"?S+="((?:".concat(O.pattern,")").concat(O.modifier,")"):S+="(".concat(O.pattern,")").concat(O.modifier);else S+="(?:".concat(te).concat(re,")").concat(O.modifier)}}if(u)i||(S+="".concat(T,"?")),S+=r.endsWith?"(?=".concat(E,")"):"$";else{var ve=e[e.length-1],w=typeof ve=="string"?T.indexOf(ve[ve.length-1])>-1:ve===void 0;i||(S+="(?:".concat(T,"(?=").concat(E,"))?")),w||(S+="(?=".concat(T,"|").concat(E,")"))}return new RegExp(S,Od(r))}s(Zy,"tokensToRegexp");Oe.tokensToRegexp=Zy;function Nd(e,t,r){return e instanceof RegExp?mP(e,t):Array.isArray(e)?yP(e,t,r):gP(e,t,r)}s(Nd,"pathToRegexp");Oe.pathToRegexp=Nd});var Dd=g(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});wn.AwsV4Signer=wn.AwsClient=void 0;var bP=Sr(),ng=C(),_P=(0,bP.debug)("zuplo:runtime"),Cd=new TextEncoder,eg={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"},EP=["authorization","content-type","content-length","user-agent","presigned-expires","expect","x-amzn-trace-id","range","connection"],Ld=class{static{s(this,"AwsClient")}accessKeyId;secretAccessKey;sessionToken;service;region;cache;retries;initRetryMs;constructor({accessKeyId:t,secretAccessKey:r,sessionToken:n,service:i,region:o,cache:a,retries:c,initRetryMs:u}){if(t==null)throw new TypeError("accessKeyId is a required option");if(r==null)throw new TypeError("secretAccessKey is a required option");this.accessKeyId=t,this.secretAccessKey=r,this.sessionToken=n,this.service=i,this.region=o,this.cache=a||new Map,this.retries=c??0,this.initRetryMs=u||50}async sign(t,r){let n=new Bs(Object.assign({url:t},r,this,r&&r.aws)),i=Object.assign({},r,await n.sign());return delete i.aws,{url:i.url.toString(),request:i}}async fetch(t,r){_P("AWS fetch",t);for(let n=0;n<=this.retries;n++){let{url:i,request:o}=await this.sign(t,r),a=fetch(i,o);if(n===this.retries)return a;let c=await a;if(c.status<500&&c.status!==429)return c;await new Promise(u=>setTimeout(u,Math.random()*this.initRetryMs*Math.pow(2,n)))}throw new ng.ConfigurationError("An unknown error occurred, ensure retries is not negative")}};wn.AwsClient=Ld;var Bs=class{static{s(this,"AwsV4Signer")}method;url;headers;body;accessKeyId;secretAccessKey;sessionToken;service;region;cache;datetime;signQuery;appendSessionToken;signableHeaders;signedHeaders;canonicalHeaders;credentialString;encodedPath;encodedSearch;constructor({method:t,url:r,headers:n,body:i,accessKeyId:o,secretAccessKey:a,sessionToken:c,service:u,region:l,cache:d,datetime:p,signQuery:m,appendSessionToken:h,allHeaders:y,singleEncode:E}){if(r==null)throw new TypeError("url is a required option");if(o==null)throw new TypeError("accessKeyId is a required option");if(a==null)throw new TypeError("secretAccessKey is a required option");this.method=t||(i?"POST":"GET"),this.url=new URL(r),this.headers=new Headers(n||{}),this.body=i,this.accessKeyId=o,this.secretAccessKey=a,this.sessionToken=c;let T,S;(!u||!l)&&([T,S]=wP(this.url,this.headers)),this.service=u||T||"",this.region=l||S||"us-east-1",this.cache=d||new Map,this.datetime=p||new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),this.signQuery=m,this.appendSessionToken=h||this.service==="iotdevicegateway",this.headers.delete("Host");let U=this.signQuery?this.url.searchParams:this.headers;if(this.service==="s3"&&!this.headers.has("X-Amz-Content-Sha256")&&this.headers.set("X-Amz-Content-Sha256","UNSIGNED-PAYLOAD"),U.set("X-Amz-Date",this.datetime),this.sessionToken&&!this.appendSessionToken&&U.set("X-Amz-Security-Token",this.sessionToken),this.signableHeaders=["host",...this.headers.keys()].filter(O=>y||!EP.includes(O)).sort(),this.signedHeaders=this.signableHeaders.join(";"),this.canonicalHeaders=this.signableHeaders.map(O=>O+":"+(O==="host"?this.url.host:(this.headers.get(O)||"").replace(/\s+/g," "))).join(`
60
60
  `),this.credentialString=[this.datetime.slice(0,8),this.region,this.service,"aws4_request"].join("/"),this.signQuery&&(this.service==="s3"&&!U.has("X-Amz-Expires")&&U.set("X-Amz-Expires","86400"),U.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),U.set("X-Amz-Credential",this.accessKeyId+"/"+this.credentialString),U.set("X-Amz-SignedHeaders",this.signedHeaders)),this.service==="s3")try{this.encodedPath=decodeURIComponent(this.url.pathname.replace(/\+/g," "))}catch{this.encodedPath=this.url.pathname}else this.encodedPath=this.url.pathname.replace(/\/+/g,"/");E||(this.encodedPath=encodeURIComponent(this.encodedPath).replace(/%2F/g,"/")),this.encodedPath=rg(this.encodedPath);let $=new Set;this.encodedSearch=[...this.url.searchParams].filter(([O])=>{if(!O)return!1;if(this.service==="s3"){if($.has(O))return!1;$.add(O)}return!0}).map(O=>O.map(te=>rg(encodeURIComponent(te)))).sort(([O,te],[re,ne])=>O<re?-1:O>re?1:te<ne?-1:te>ne?1:0).map(O=>O.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 t=this.datetime.slice(0,8),r=[this.secretAccessKey,t,this.region,this.service].join(),n=this.cache.get(r);if(!n){let i=await Ai("AWS4"+this.secretAccessKey,t),o=await Ai(i,this.region),a=await Ai(o,this.service);n=await Ai(a,"aws4_request"),this.cache.set(r,n)}return xd(await Ai(n,await this.stringToSign()))}async stringToSign(){return["AWS4-HMAC-SHA256",this.datetime,this.credentialString,xd(await tg(await this.canonicalString()))].join(`
61
61
  `)}async canonicalString(){return[this.method.toUpperCase(),this.encodedPath,this.encodedSearch,this.canonicalHeaders+`
62
62
  `,this.signedHeaders,await this.hexBodyHash()].join(`
63
- `)}async hexBodyHash(){let t=this.headers.get("X-Amz-Content-Sha256");if(t==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new ng.RuntimeError("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");t=xd(await tg(this.body||""))}return t}};wn.AwsV4Signer=Bs;async function Ai(e,t){let r=await crypto.subtle.importKey("raw",typeof e=="string"?Cd.encode(e):e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",r,Cd.encode(t))}s(Ai,"hmac");async function tg(e){return crypto.subtle.digest("SHA-256",typeof e=="string"?Cd.encode(e):e)}s(tg,"hash");function xd(e){return Array.prototype.map.call(new Uint8Array(e),t=>("0"+t.toString(16)).slice(-2)).join("")}s(xd,"buf2hex");function rg(e){return e.replace(/[!'()*]/g,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase())}s(rg,"encodeRfc3986");function wP(e,t){let{hostname:r,pathname:n}=e,i=r.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[o,a]=(i||["",""]).slice(1,3);if(a==="us-gov")a="us-gov-west-1";else if(a==="s3"||a==="s3-accelerate")a="us-east-1",o="s3";else if(o==="iot")r.startsWith("iot.")?o="execute-api":r.startsWith("data.jobs.iot.")?o="iot-jobs-data":o=n==="/mqtt"?"iotdevicegateway":"iotdata";else if(o==="autoscaling"){let c=(t.get("X-Amz-Target")||"").split(".")[0];c==="AnyScaleFrontendService"?o="application-autoscaling":c==="AnyScaleScalingPlannerFrontendService"&&(o="autoscaling-plans")}else a==null&&o.startsWith("s3-")?(a=o.slice(3).replace(/^fips-|^external-1/,""),o="s3"):o.endsWith("-fips")?o=o.slice(0,-5):a&&/-\d$/.test(o)&&!/-\d$/.test(a)&&([o,a]=[a,o]);return o in eg?[eg[o],a]:[o,a]}s(wP,"guessServiceRegion")});var ig=g(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.convertStringToUtf8Array=At.convertUtf8ArrayToString=At.base64Encode=At.base64Decode=void 0;function vP(e){return e>64&&e<91?e-65:e>96&&e<123?e-71:e>47&&e<58?e+4:e===43?62:e===47?63:0}s(vP,"b64ToUint6");function TP(e,t){let r=e.replace(/[^A-Za-z0-9+/]/g,""),n=r.length,i=t?Math.ceil((n*3+1>>2)/t)*t:n*3+1>>2,o=new Uint8Array(i),a,c,u=0,l=0;for(let d=0;d<n;d++)if(c=d&3,u|=vP(r.charCodeAt(d))<<6*(3-c),c===3||n-d===1){for(a=0;a<3&&l<i;)o[l]=u>>>(16>>>a&24)&255,a++,l++;u=0}return o}s(TP,"base64Decode");At.base64Decode=TP;function Ks(e){return e<26?e+65:e<52?e+71:e<62?e-4:e===62?43:e===63?47:65}s(Ks,"uint6ToB64");function SP(e){let t=2,r="",n=e.length,i=0;for(let o=0;o<n;o++)t=o%3,i|=e[o]<<(16>>>t&24),(t===2||e.length-o===1)&&(r+=String.fromCodePoint(Ks(i>>>18&63),Ks(i>>>12&63),Ks(i>>>6&63),Ks(i&63)),i=0);return r.substring(0,r.length-2+t)+(t===2?"":t===1?"=":"==")}s(SP,"base64Encode");At.base64Encode=SP;function IP(e){let t="",r,n=e.length;for(let i=0;i<n;i++)r=e[i],t+=String.fromCodePoint(r>251&&r<254&&i+5<n?(r-252)*1073741824+(e[++i]-128<<24)+(e[++i]-128<<18)+(e[++i]-128<<12)+(e[++i]-128<<6)+e[++i]-128:r>247&&r<252&&i+4<n?(r-248<<24)+(e[++i]-128<<18)+(e[++i]-128<<12)+(e[++i]-128<<6)+e[++i]-128:r>239&&r<248&&i+3<n?(r-240<<18)+(e[++i]-128<<12)+(e[++i]-128<<6)+e[++i]-128:r>223&&r<240&&i+2<n?(r-224<<12)+(e[++i]-128<<6)+e[++i]-128:r>191&&r<224&&i+1<n?(r-192<<6)+e[++i]-128:r);return t}s(IP,"convertUtf8ArrayToString");At.convertUtf8ArrayToString=IP;function PP(e){let t,r=e.length,n=0;for(let c=0;c<r;c++)t=e.codePointAt(c),t>=65536&&c++,n+=t<128?1:t<2048?2:t<65536?3:t<2097152?4:t<67108864?5:6;let i=new Uint8Array(n),o=0,a=0;for(;o<n;)t=e.codePointAt(a),t<128?i[o++]=t:t<2048?(i[o++]=192+(t>>>6),i[o++]=128+(t&63)):t<65536?(i[o++]=224+(t>>>12),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63)):t<2097152?(i[o++]=240+(t>>>18),i[o++]=128+(t>>>12&63),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63),a++):t<67108864?(i[o++]=248+(t>>>24),i[o++]=128+(t>>>18&63),i[o++]=128+(t>>>12&63),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63),a++):(i[o++]=252+(t>>>30),i[o++]=128+(t>>>24&63),i[o++]=128+(t>>>18&63),i[o++]=128+(t>>>12&63),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63),a++),a++;return i}s(PP,"convertStringToUtf8Array");At.convertStringToUtf8Array=PP});var og=g(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.toCLFDate=void 0;function vn(e){let t=e.toString();return`${t.length===1?"0":""}${t}`}s(vn,"numberToString");function AP(e){let t=e.getTimezoneOffset(),r=Math.abs(t),n=t>0?"-":"+",i=vn(Math.floor(r/60)),o=vn(r%60);return`${n}${i}${o}`}s(AP,"getCLFOffset");function RP(e=new Date){if(!(e instanceof Date))throw new Error("clf-date: invalid parameter");let t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=vn(e.getDate()),n=t[e.getMonth()],i=e.getFullYear(),o=vn(e.getHours()),a=vn(e.getMinutes()),c=vn(e.getSeconds()),u=AP(e);return`${r}/${n}/${i}:${o}:${a}:${c} ${u}`}s(RP,"toCLFDate");Js.toCLFDate=RP});var pg=g(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.getResponse=fr.awsLambdaHandler=fr.AwsLambdaHandlerExtensions=void 0;var OP=Sr(),sg=Xy(),Ri=C(),NP=Ut(),xP=Dd(),cg=ig(),ug=og(),ag=(0,OP.debug)("zuplo:runtime"),CP="X-Amzn-Trace-Id",LP="x-amzn-errortype",lg=[],DP=s(async(e,t,r)=>{let n=r;for await(let i of lg)n=await i(e,t,r);return n},"onSendingAwsLambdaEvent"),Je=class extends Ri.RuntimeError{static{s(this,"AwsLambdaError")}traceId;errorType;constructor(t,r){super(`Failed to invoke AWS Lambda function. ${t}`),this.traceId=r.get(CP)??void 0,this.errorType=r.get(LP)??void 0}};fr.AwsLambdaHandlerExtensions={addSendingAwsLambdaEventHook:e=>{lg.push(e)}};async function UP(e,t){let{accessKeyId:r,secretAccessKey:n,region:i,functionName:o,useLambdaProxyIntegration:a=!0,useAwsResourcePathStyle:c=!1,binaryMediaTypes:u}=t.route.handler.options;if(!r)throw new Ri.ConfigurationError("awsAccessKeyId is not set in the handler options");if(!n)throw new Ri.ConfigurationError("secretAccessKey is not set in the handler options");if(!i)throw new Ri.ConfigurationError("region is not set in the handler options");if(!o)throw new Ri.ConfigurationError("functionName is not set in the handler options");let l=new xP.AwsClient({accessKeyId:r,secretAccessKey:n}),d=`https://lambda.${i}.amazonaws.com/2015-03-31/functions/${o}/invocations`;if(ag(`AWS Lambda URL: ${d}`),!a)return l.fetch(d,{body:await e.arrayBuffer()});let[p,m]=await HP(e,{binaryMediaTypes:u}),{options:h}=t.route.handler,y;h&&typeof h=="object"&&"payloadFormatVersion"in h&&h.payloadFormatVersion==="2.0"?y=kP(e,t):y=await MP(e,t,{useAwsResourcePathStyle:c}),ag("Calling onSendingAwsLambdaEvent hook");let E=await DP(e,t,y);E.body=p,E.isBase64Encoded=m;let T=await l.fetch(d,{body:JSON.stringify(E)});try{return dg(T)}catch(S){if(S instanceof Je){let U=h&&typeof h=="object"&&"returnAmazonTraceIdHeader"in h&&h.returnAmazonTraceIdHeader&&S.traceId?{AMZN_TRACE_ID_HEADER:S.traceId}:void 0;return NP.HttpProblems.internalServerError(e,t,void 0,U)}throw S}}s(UP,"awsLambdaHandler");fr.awsLambdaHandler=UP;async function dg(e){let t;try{t=await e.json()}catch{throw new Je("Lambda response did not contain valid JSON",e.headers)}if(e.status!==200)throw t&&typeof t=="object"&&"message"in t&&typeof t.message=="string"?new Je(t.message,e.headers):new Je(`Status: ${e.statusText}`,e.headers);if(t&&typeof t=="object"&&"errorMessage"in t&&typeof t.errorMessage=="string")throw new Je(t.errorMessage,e.headers);if(!t||typeof t!="object"||!("statusCode"in t)||typeof t.statusCode!="number")return new Response(JSON.stringify(t),{status:e.status,headers:{"content-type":"application/json"}});let r=new Headers;if("headers"in t&&t.headers){if(typeof t.headers!="object")throw new Je(`Response headers must be an object. Received ${typeof t.headers}`,e.headers);for(let[i,o]of Object.entries(t.headers))r.set(i,o)}if("cookies"in t&&t.cookies){if(!Array.isArray(t.cookies))throw new Je(`Response cookies must be an array. Received ${typeof t.cookies}`,e.headers);r.set("cookie",t.cookies.join(";"))}let n;if("isBase64Encoded"in t&&typeof t.isBase64Encoded!="boolean")throw new Je(`Response property isBase64Encoded must be a boolean. Received ${typeof t.isBase64Encoded}`,e.headers);if("isBase64Encoded"in t&&t.isBase64Encoded===!0){if(!("body"in t))throw new Je("Response was set to base64 encoded but no body was set",e.headers);if(typeof t.body!="string")throw new Je("Response was set to base64 encoded but body was not a string",e.headers);n=(0,cg.base64Decode)(t.body)}else"body"in t&&typeof t.body=="string"?n=t.statusCode===204&&t.body===""?null:t.body:"body"in t&&t.body!==null&&t.body!==void 0?n=JSON.stringify(t.body):n=null;if(n!==null&&"bodyEncoding"in t){if(typeof t.bodyEncoding!="string"||!(t.bodyEncoding==="gzip"||t.bodyEncoding==="deflate"))throw new Je(`Response property bodyEncoding can only be set to 'gzip' or 'deflate'. Received ${t.bodyEncoding}`,e.headers);let i=new Blob([n]).stream().pipeThrough(new DecompressionStream(t.bodyEncoding));n=await new Response(i).arrayBuffer()}return new Response(n,{headers:r,status:t.statusCode})}s(dg,"getResponse");fr.getResponse=dg;async function MP(e,t,{useAwsResourcePathStyle:r}){let n={},i={};e.headers.forEach((l,d)=>{n[d]=l,i[d]=[l]});let o=e.query,a={};for(let[l,d]of Object.entries(o))a[l]=[d];let c=new URL(e.url);return{version:"1.0",resource:c.pathname,path:c.pathname,httpMethod:e.method,headers:n,multiValueHeaders:i,queryStringParameters:o,multiValueQueryStringParameters:a,requestContext:{accountId:null,apiId:null,authorizer:{claims:{},scopes:[]},domainName:c.hostname,domainPrefix:null,extendedRequestId:t.requestId,httpMethod:e.method,identity:{accessKey:null,accountId:null,caller:null,cognitoAuthenticationProvider:null,cognitoAuthenticationType:null,cognitoIdentityId:null,cognitoIdentityPoolId:null,principalOrgId:null,sourceIp:e.headers.get("CF-Connecting-IP"),user:null,userAgent:e.headers.get("user-agent"),userArn:null,clientCert:{clientCertPem:null,subjectDN:null,issuerDN:null,serialNumber:null,validity:{notBefore:null,notAfter:null}}},path:c.pathname,protocol:"HTTP/1.1",requestId:t.requestId,requestTime:(0,ug.toCLFDate)(),requestTimeEpoch:new Date().valueOf(),resourceId:t.route.operationId??null,resourcePath:qP(t.route.path,r),stage:null},pathParameters:e.params,stageVariables:null}}s(MP,"buildEventVersion1");function kP(e,t){let r={};e.headers.forEach((o,a)=>{r[a]=o});let n=new URL(e.url);return{version:"2.0",routeKey:null,rawPath:n.pathname,rawQueryString:n.search,cookies:[],headers:r,queryStringParameters:e.query,requestContext:{accountId:null,apiId:null,authentication:{clientCert:{clientCertPem:null,subjectDN:null,issuerDN:null,serialNumber:null,validity:{notBefore:null,notAfter:null}}},authorizer:{jwt:{claims:{},scopes:[]}},domainName:n.hostname,domainPrefix:null,http:{method:e.method,path:n.pathname,protocol:"HTTP/1.1",sourceIp:e.headers.get("CF-Connecting-IP"),userAgent:e.headers.get("user-agent")},requestId:t.requestId,routeKey:null,stage:null,time:(0,ug.toCLFDate)(),timeEpoch:new Date().valueOf()},pathParameters:e.params,stageVariables:null}}s(kP,"buildEventVersion2");async function HP(e,{binaryMediaTypes:t}){let r,n=!1,i=e.headers.get("content-type");if(e.method==="GET"||e.method==="HEAD")r=null;else if(t&&i&&FP(t,i)){let o=await e.arrayBuffer();r=(0,cg.base64Encode)(new Uint8Array(o)),n=!0}else r=await e.clone().text();return[r,n]}s(HP,"getBodyResult");function FP(e,t){let r=t.split(";")[0].trim().toLowerCase();return e.findIndex(n=>n==="*/*"?!0:n.toLowerCase()===r)>-1}s(FP,"matchesContentType");function qP(e,t=!1){if(!t)return e;let r=(0,sg.parse)(e),n=(0,sg.compile)(e),i={};return r.forEach(o=>{typeof o=="string"?i[o]=`{${o}}`:i[o.name]=`{${o.name}}`}),n(i)}s(qP,"getResourcePath")});var Sn=g(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.getHandlerUserLogFunction=Tn.logBadGatewayResponses=void 0;var $P=Ke(),jP=Y(),VP=[502,503,504];async function GP(e,t){if(VP.includes(e.status)){let r=$P.SystemLogMap.getLogger(t),i=await e.clone().text(),o={};for(let[a,c]of e.headers)o[a]=c;r.warn(`BadGatewayResponse ${e.status}`,{status:e.status,statusText:e.statusText,body:i,headers:o})}}s(GP,"logBadGatewayResponses");Tn.logBadGatewayResponses=GP;var Ud;function BP(e){if(Ud===void 0){let r=jP.Environment.instance.runtime.ZUPLO_HANDLER_WRITE_LOG_LEVEL;["debug","info","warn","error"].includes(r??"")||(r="debug"),Ud=r}return e.log[Ud]}s(BP,"getHandlerUserLogFunction");Tn.getHandlerUserLogFunction=BP});var fg=g(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.openApiSpecHandler=void 0;var hg=C(),KP=ae(),Md=Y(),JP=Sn();async function zP(e,t){let r=Md.Environment.instance.build.BUILD_ID,{buildAssetsUrl:n}=Md.Environment.instance,i=t.route.handler.options,{openApiFilePath:o}=i;if(!o)throw new hg.ConfigurationError("Open API Spec Handler must have 'openApiFilePath' specified");let a=WP(o);if(!a.isValid)throw new hg.ConfigurationError(a.error);let c;Md.Environment.instance.isLocalDevelopment?c=`${n}/${o.substring(1)}`:c=`${n}/${r}${o.substring(1)}`;let u=await fetch(c,{method:e.method,body:e.body,headers:e.headers});if(u.status!==200)return KP.HttpProblems.notFound(e,t,{detail:"OpenAPI file could not be found."});let l=new Response(u.body,{headers:{"content-type":"application/json"},status:u.status,statusText:u.statusText});return(0,JP.logBadGatewayResponses)(l,t),l}s(zP,"openApiSpecHandler");zs.openApiSpecHandler=zP;var WP=s(e=>e.startsWith("./")?e.startsWith("./config")?e.endsWith(".oas.json")?{isValid:!0}:{isValid:!1,error:"'openApiFilePath' must point to a file ending in '.oas.json'"}:{isValid:!1,error:"'openApiFilePath' must point to a file in your /config directory"}:{isValid:!1,error:"'openApiFilePath' must start with './'"},"validateOpenApiPath")});var mg=g(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.redirectHandler=void 0;var QP=C();async function YP(e,t){let r=t.route.handler.options;if(!r.location)throw new QP.ConfigurationError("Redirect Handler must have 'location' specified");let n=r.status??302;return new Response(null,{status:n,headers:{location:r.location}})}s(YP,"redirectHandler");Ws.redirectHandler=YP});var gg=g(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.urlForwardHandler=void 0;var ZP=C(),yg=Sn();function XP(e,t){let r=e.endsWith("/"),n=t.startsWith("/");return r&&n?`${e.substring(0,e.length-1)}${t}`:!r&&!n?`${e}/${t}`:`${e}${t}`}s(XP,"join");async function eA(e,t){let r=(0,yg.getHandlerUserLogFunction)(t),n=t.route.handler.options,i=n.forwardSearch!==!1;if(!n.baseUrl)throw new Error("URL Forward Handler must have 'baseUrl' specified");if(!n||typeof n.__rewriteFunction!="function")throw new ZP.ConfigurationError("Invalid options for this route");let o={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},a=new URL(e.url),c=n.__rewriteFunction(e,o),u=XP(c,a.pathname),l=i?`${u}${a.search}`:u.toString(),d=Date.now();r(`URL Forwarding to '${l}'`);let p=await fetch(l,{method:e.method,body:e.body,headers:e.headers}),m=Date.now()-d;return r(`URL Forward received response ${p.status} - ${p.statusText} in ${m}ms`),(0,yg.logBadGatewayResponses)(p,t),p}s(eA,"urlForwardHandler");Qs.urlForwardHandler=eA});var _g=g(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.urlRewriteHandler=void 0;var tA=C(),bg=Sn(),rA=s((e,t)=>{let r=new URL(e),n=new URL(t);for(let[i,o]of n.searchParams.entries())r.searchParams.append(i,o);return r.toString()},"addQuery");async function nA(e,t){let r=(0,bg.getHandlerUserLogFunction)(t),n=t.route.handler.options,i=n.forwardSearch!==!1,o=n.followRedirects??!1;if(!n||typeof n.__rewriteFunction!="function")throw new tA.ConfigurationError("Invalid options for this route");let a={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},c=n.__rewriteFunction(e,a),u=i?rA(c,e.url):c,l=Date.now();r(`URL Rewriting to '${u}'`);let d=await fetch(u.toString(),{method:e.method,body:e.body,headers:e.headers,redirect:o?"follow":"manual"}),p=Date.now()-l;return r(`URL Rewrite received response ${d.status} - ${d.statusText} in ${p}ms`),(0,bg.logBadGatewayResponses)(d,t),d}s(nA,"urlRewriteHandler");Ys.urlRewriteHandler=nA});var wg=g(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.webSocketHandler=void 0;var Eg=C(),iA=Id(),oA=Ut(),sA=Y(),aA=Sn();async function cA(e,t){let r=sA.Environment.instance,n=t.route.handler.options,i=(0,aA.getHandlerUserLogFunction)(t);if(!n||!n.rewritePattern)throw new Eg.ConfigurationError("WebSocket Handler must have option 'rewritePattern' specified");let o=e.headers.get("Upgrade");if(!o||o!=="websocket")return oA.HttpProblems.badRequest(e,t,{detail:"Request must include header 'Upgrade: websocket'"});if(!n||typeof n.__rewriteFunction!="function")throw new Eg.ConfigurationError("Invalid options for this route");let a={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},c=n.__rewriteFunction(e,a),u=Date.now();if(i(`Attempting WebSocket connection to '${c}'`),r.isDeno){let p=new Headers(e.headers);if(c.startsWith("service:")){let h=await(0,iA.externalServiceTunnelConfig)(c),y=new URL(c);c=new URL(`${h.serviceBaseUrl}${y.pathname}${y.search}`).toString();for(let T in h.tunnelHeaders)p.set(T,h.tunnelHeaders[T])}c=c.replace(/^(http)/,"ws");try{if(p.get("Authorization")){let h=p.get("Authorization")?.replace("Bearer ","");c+=`?apiKey=${h}`}}catch{}let m=JSON.stringify({url:c});return new Response(m,{headers:p})}c=c.replace(/^(ws)/,"http");let l=await fetch(c,{method:e.method,headers:e.headers,body:e.body});if(l.status!==101||!l.webSocket){let p=await l.text(),m=`WebSocket connection error - ${l.status}: ${l.statusText}, content: '${p}'`;throw new Error(m)}let d=Date.now()-u;return i(`WebSocket connected, received response ${l.status} - ${l.statusText} in ${d}ms`),new Response(null,{status:101,webSocket:l.webSocket})}s(cA,"webSocketHandler");Zs.webSocketHandler=cA});var vg=g(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.webSocketPolicyProcessor=In.getWebSocketPolicyFunctions=void 0;var uA=C(),lA=s((e,t)=>e.map((n,i)=>{let o;if(typeof n.module=="object"&&(o=n.module[n.export]),!o||typeof o!="function"){let a=t==="inbound"?"WebSocketInboundPolicy":"WebSocketOutboundPolicy",c=`policy in position: ${i+1}, export name: ${n.export}`;throw new uA.ConfigurationError(`${a} - Websocket policy must be a valid function (${c})`)}return o}),"getWebSocketPolicyFunctions");In.getWebSocketPolicyFunctions=lA;var dA=s(async(e,t,r,n,i,o)=>{let a=e.data;if(o&&o.length>0){let c=[...o];for(;c.length>0;){let u=c.shift();if(!u)return a;if(a=await u(a,r,t,n,i),a===void 0)return}}return a},"webSocketPolicyProcessor");In.webSocketPolicyProcessor=dA});var Sg=g(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.webSocketPipelineHandler=void 0;var kd=C(),pA=Ut(),hA=Y(),fA=Sn(),Hd=vg();function Tg(e,t,r,n,i){e.addEventListener("close",()=>{t.close()}),e.addEventListener("error",o=>{n.log.error("WebSocket error: ",o),t.send(JSON.stringify(o))}),e.addEventListener("message",o=>{try{let c=s(async u=>{let l=await(0,Hd.webSocketPolicyProcessor)(u,e,t,r,n,i);l!==void 0&&t.send(l)},"innerPipeline")(o).catch(n.log.error);n.waitUntil(c)}catch(a){n.log.error(a)}})}s(Tg,"wireUpListeners");async function mA(e,t){let r=hA.Environment.instance,n=t.route.handler.options,i=(0,fA.getHandlerUserLogFunction)(t);if(!n||!n.rewritePattern)throw new kd.ConfigurationError("WebSocket Pipeline Handler must have option 'rewritePattern' specified");let o=e.headers.get("Upgrade");if(!o||o!=="websocket")return pA.HttpProblems.badRequest(e,t,{detail:"Request must include header 'Upgrade: websocket'"});if(!n||typeof n.__rewriteFunction!="function")throw new kd.ConfigurationError("Invalid options for this route");let a={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},c=n.__rewriteFunction(e,a),u=Date.now();if(i(`Attempting WebSocket connection to '${c}'`),r.isDeno)throw new kd.ConfigurationError("Websocket pipeline handler is currently not supported on working-copy environments");c=c.replace(/^(ws)/,"http");let l=await fetch(c,{method:e.method,headers:e.headers,body:e.body});if(l.status!==101||!l.webSocket){let S=await l.text(),U=`WebSocket connection error - ${l.status}: ${l.statusText}, content: '${S}'`;throw new Error(U)}let d=new WebSocketPair,[p,m]=Object.values(d),h=Date.now()-u;i(`WebSocket connected, received response ${l.status} - ${l.statusText} in ${h}ms`);let y=l.webSocket;y.accept(),m.accept();let E=n.policies&&n.policies.inbound?(0,Hd.getWebSocketPolicyFunctions)(n.policies.inbound,"inbound"):[],T=n.policies&&n.policies.outbound?(0,Hd.getWebSocketPolicyFunctions)(n.policies.outbound,"outbound"):[];return Tg(m,y,e,t,E),Tg(y,m,e,t,T),new Response(null,{status:101,webSocket:p})}s(mA,"webSocketPipelineHandler");Xs.webSocketPipelineHandler=mA});var Ig=g(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.DynaTraceLoggingPlugin=void 0;var yA=Te(),Fd=Y(),gA=Nr(),bA=Mt(),_A=Et(),qd=class extends bA.LogPlugin{static{s(this,"DynaTraceLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new $d(this.options)}};ea.DynaTraceLoggingPlugin=qd;var $d=class{static{s(this,"DynaTraceTransport")}constructor(t){this.#e=t.url,this.#t=t.apiToken,this.#n=Fd.Environment.instance.loggingEnvironmentType,this.#i=Fd.Environment.instance.loggingEnvironmentStage,this.#r=Fd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;log(t,r){t.messages.forEach(n=>{let i={timestamp:new Date().toISOString(),message:(0,_A.stringifyNonString)((0,gA.serializeError)(n)),severity:t.level,"log.source":t.logSource,requestId:t.requestId,"custom.environment":this.#r,"custom.environmentStage":this.#i,"custom.environmentType":this.#n,"custom.loggingId":t.loggingId,"custom.rayId":t.rayId===null?void 0:t.rayId};this.batcher.enqueue(i)}),r.waitUntil(this.batcher.waitUntilFlushed())}#o=async t=>{t.length!==0&&await fetch(this.#e,{method:"POST",body:JSON.stringify(t),headers:{"content-type":"application/json; charset=utf-8",authorization:`Api-Token ${this.#t}`}})};batcher=new yA.BatchDispatch("dyna-trace-log-transport",10,this.#o)}});var Pg=g(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.LokiLoggingPlugin=void 0;var EA=Te(),jd=Y(),wA=Nr(),vA=Mt(),TA=Et(),Vd=class extends vA.LogPlugin{static{s(this,"LokiLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new Bd(this.options)}};ta.LokiLoggingPlugin=Vd;var Gd=class{static{s(this,"LokiStream")}constructor(t,r,n,i,o){this.level=t,this.environment=r,this.environmentType=n,this.environmentStage=i,this.requestId=o}job="zuplo";level;environment;environmentType;environmentStage;requestId;equals=t=>this.level===t.level&&this.requestId===t.requestId};function SA(e,t){return btoa(`${e}:${t}`)}s(SA,"createBasicDigest");var Bd=class{static{s(this,"LokiTransport")}constructor(t){this.#e=t.url,this.#t=SA(t.username,t.password),this.#n=jd.Environment.instance.loggingEnvironmentType,this.#i=jd.Environment.instance.loggingEnvironmentStage,this.#r=jd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;log(t,r){let n=new Gd(t.level,this.#r,this.#n,this.#i,t.requestId);t.messages.forEach(i=>{let o={stream:n,message:(0,TA.stringifyNonString)((0,wA.serializeError)(i)),nanoSecondEpoch:`${t.timestamp.getTime()}000000`};this.batcher.enqueue(o)}),r.waitUntil(this.batcher.waitUntilFlushed())}#o=t=>{let r={streams:[]};return t.forEach(n=>{let i=r.streams.find(o=>o.stream.equals(n.stream));i||(i={stream:n.stream,values:[]},r.streams.push(i)),i.values.push([n.nanoSecondEpoch,n.message])}),r};#s=async t=>{if(t.length===0)return;let r=this.#o(t);await fetch(this.#e,{method:"POST",body:JSON.stringify(r),headers:{"content-type":"application/json",authorization:`Basic ${this.#t}`}})};batcher=new EA.BatchDispatch("loki-log-transport",10,this.#s)}});var Ag=g(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.SumoLogicLoggingPlugin=void 0;var IA=Te(),Kd=Y(),PA=Nr(),AA=Mt(),RA=Et(),Jd=class extends AA.LogPlugin{static{s(this,"SumoLogicLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new zd(this.options)}};ra.SumoLogicLoggingPlugin=Jd;var zd=class{static{s(this,"SumoLogicTransport")}constructor(t){this.#e=t.url,this.#i=t.category,this.#o=t.name,this.#r=Kd.Environment.instance.loggingEnvironmentType,this.#n=Kd.Environment.instance.loggingEnvironmentStage,this.#t=Kd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;#o;log(t,r){t.messages.forEach(n=>{let i={timestamp:new Date().toISOString(),message:(0,RA.stringifyNonString)((0,PA.serializeError)(n)),severity:t.level,source:t.logSource,requestId:t.requestId,environment:this.#t,environmentType:this.#r,environmentStage:this.#n,rayId:t.rayId===null?void 0:t.rayId};this.batcher.enqueue(i)}),r.waitUntil(this.batcher.waitUntilFlushed())}#s=async t=>{if(t.length===0)return;let r=t.map(i=>JSON.stringify(i)).join(`
64
- `),n=new Headers({"content-type":"application/json; charset=utf-8"});this.#o&&n.set("X-Sumo-Name",this.#o),this.#i&&n.set("X-Sumo-Category",this.#i),await fetch(this.#e,{method:"POST",body:r,headers:n})};batcher=new IA.BatchDispatch("sumo-logic-log-transport",10,this.#s)}});var Og=g(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});Pn.VMWareLogInsightTransport=Pn.VMWareLogInsightLoggingPlugin=void 0;var OA=C(),NA=Te(),Wd=Y(),xA=Mt(),Rg=Et(),CA="d3a5b78f-8236-48f5-b1df-4fe269d41172",Qd=class extends xA.LogPlugin{static{s(this,"VMWareLogInsightLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new na(this.options)}};Pn.VMWareLogInsightLoggingPlugin=Qd;var na=class{static{s(this,"VMWareLogInsightTransport")}constructor(t){let r;try{r=new URL(t.url)}catch{throw new OA.ConfigurationError(`Invalid option 'url' on 'VMWareLogInsightTransport' plugin. Must be a valid URL, received '${t.url}'`)}this.#e=r.origin,this.#r=Wd.Environment.instance.loggingEnvironmentType,this.#n=Wd.Environment.instance.loggingEnvironmentStage,this.#t=Wd.Environment.instance.deploymentName,this.#i=t.onMessageSending,t.fields&&(this.#o=Object.entries(t.fields).map(([n,i])=>({name:n,content:i})))}#e;#t;#r;#n;#i;#o;log(t,r){let n=this.buildEntry(t,r);this.batcher.enqueue(n),r.waitUntil(this.batcher.waitUntilFlushed())}buildEntry(t,r){let n=(0,Rg.messagesToMultilineText)(t.messages),i={timestamp:Date.now(),text:n,fields:[{name:"severity",content:t.level.toUpperCase()},{name:"request_id",content:t.requestId},{name:"environment_type",content:this.#r},{name:"environment_stage",content:this.#n},{name:"log_source",content:t.logSource},{name:"atomic_counter",content:t.vectorClock}]};return t.rayId&&i.fields.push({name:"request_ray_id",content:t.rayId}),this.#t&&i.fields.push({name:"environment",content:this.#t}),this.#o&&i.fields.push(...this.#o),r.custom&&Object.entries(r.custom).forEach(([o,a])=>{let c=(0,Rg.stringifyNonStringToText)(a);c&&i.fields.push({name:o,content:c})}),this.#i&&(i=this.#i(i)),i}#s=async t=>{if(t.length===0)return;let r=await fetch(`${this.#e}/api/v1/events/ingest/${CA}`,{method:"POST",body:JSON.stringify(t),headers:{"content-type":"application/json; charset=utf-8"}});if(r.status!==200)try{let n=await r.text();console.error("Error logging to Log Insight",n)}catch(n){console.error(n)}};batcher=new NA.BatchDispatch("vmware-log-insights-log-transport",10,this.#s)};Pn.VMWareLogInsightTransport=na});var xg=g(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.AWSLogTransport=An.AWSLoggingPlugin=void 0;var LA=Dd(),DA=Te(),Ng=Y(),UA=Nr(),MA=Mt(),kA=Et(),Yd=class extends MA.LogPlugin{static{s(this,"AWSLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new ia(this.options)}};An.AWSLoggingPlugin=Yd;var ia=class{static{s(this,"AWSLogTransport")}awsClient;environment;environmentType;logGroupName;logStreamName;region;batcher=new DA.BatchDispatch("aws-log-transport",10,async t=>{if(t.length===0)return;let r=JSON.stringify({logGroupName:this.logGroupName,logStreamName:this.logStreamName,logEvents:t});await this.awsClient.fetch(`https://logs.${this.region}.amazonaws.com`,{headers:{"Content-Type":"application/x-amz-json-1.1","x-amz-Target":"Logs_20140328.PutLogEvents"},body:r,aws:{accessKeyId:this.awsClient.accessKeyId,secretAccessKey:this.awsClient.secretAccessKey,service:this.awsClient.service,region:this.awsClient.region}})});constructor({accessKeyId:t,logStreamName:r,logGroupName:n,secretAccessKey:i,region:o}){this.awsClient=new LA.AwsClient({accessKeyId:t,secretAccessKey:i,service:"logs",region:o}),this.logGroupName=n,this.logStreamName=r,this.region=o,this.environmentType=Ng.Environment.instance.loggingEnvironmentType,this.environment=Ng.Environment.instance.deploymentName}log(t,r){t.messages.forEach(n=>{let i={timestamp:new Date().getTime(),message:JSON.stringify({data:(0,kA.stringifyNonString)((0,UA.serializeError)(n)),severity:t.level,source:t.logSource,environment:this.environment,requestId:t.requestId,environmentType:this.environmentType,rayId:t.rayId===null?void 0:t.rayId})};this.batcher.enqueue(i)}),r.waitUntil(this.batcher.waitUntilFlushed())}};An.AWSLogTransport=ia});var Cg=g(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.AWSLoggingPlugin=Ne.VMWareLogInsightLoggingPlugin=Ne.SumoLogicLoggingPlugin=Ne.LokiLoggingPlugin=Ne.GoogleCloudLoggingPlugin=Ne.DynaTraceLoggingPlugin=Ne.DataDogLoggingPlugin=void 0;var HA=cd();Object.defineProperty(Ne,"DataDogLoggingPlugin",{enumerable:!0,get:function(){return HA.DataDogLoggingPlugin}});var FA=Ig();Object.defineProperty(Ne,"DynaTraceLoggingPlugin",{enumerable:!0,get:function(){return FA.DynaTraceLoggingPlugin}});var qA=Rs();Object.defineProperty(Ne,"GoogleCloudLoggingPlugin",{enumerable:!0,get:function(){return qA.GoogleCloudLoggingPlugin}});var $A=Pg();Object.defineProperty(Ne,"LokiLoggingPlugin",{enumerable:!0,get:function(){return $A.LokiLoggingPlugin}});var jA=Ag();Object.defineProperty(Ne,"SumoLogicLoggingPlugin",{enumerable:!0,get:function(){return jA.SumoLogicLoggingPlugin}});var VA=Og();Object.defineProperty(Ne,"VMWareLogInsightLoggingPlugin",{enumerable:!0,get:function(){return VA.VMWareLogInsightLoggingPlugin}});var GA=xg();Object.defineProperty(Ne,"AWSLoggingPlugin",{enumerable:!0,get:function(){return GA.AWSLoggingPlugin}})});var Lg=g(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.DataDogMetricsError=mr.DataDogMetricsTransport=mr.DataDogMetricsPlugin=void 0;var BA=Ke(),KA=Te(),JA=Io(),Zd=new WeakMap,zA={tags:[]},Xd=class extends JA.MetricsPlugin{static{s(this,"DataDogMetricsPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new oa(this.options)}static setContext(t,r){let n=Zd.get(t);n||(n=zA);let i=Object.assign({...n},r);Zd.set(t,i)}};mr.DataDogMetricsPlugin=Xd;var oa=class{static{s(this,"DataDogMetricsTransport")}#e;#t;#r;#n;#i;#o=void 0;constructor(t){this.#e=t.apiKey,this.#t=t.url??"https://api.datadoghq.com/api/v2/series",this.#r=Object.assign({latency:!0,requestContentLength:!0,responseContentLength:!0},t.metrics),this.#i=t.include??{},this.#n=t.tags??[]}pushMetrics(t,r){this.#o===void 0&&(this.#o=new KA.BatchDispatch("data-dog-metrics-transport",10,this.dispatchFunction,BA.SystemLogMap.getLogger(r)));let n=Math.floor(t.timestamp.getTime()/1e3),i=this.#n.concat(Zd.get(r)?.tags??[]);if(this.#i.country&&i.push(`country:${t.country}`),this.#i.httpMethod&&i.push(`httpMethod:${t.method}`),this.#i.statusCode&&i.push(`statusCode:${t.statusCode}`),this.#i.path){let o=t.systemRouteName||t.routePath;i.push(`path:${o}`)}this.#r.latency&&this.#o.enqueue({metric:"zuplo.request.latency",type:3,points:[{timestamp:n,value:t.durationMs}],tags:i}),this.#r.requestContentLength&&t.requestContentLength&&this.#o.enqueue({metric:"zuplo.request.content_length",type:3,points:[{timestamp:n,value:t.requestContentLength}],tags:i}),this.#r.responseContentLength&&t.responseContentLength&&this.#o.enqueue({metric:"zuplo.response.content_length",type:3,points:[{timestamp:n,value:t.responseContentLength}],tags:i}),r.waitUntil(this.#o.waitUntilFlushed())}dispatchFunction=async t=>{if(t.length===0)return;let r=JSON.stringify({series:t}),n=await fetch(this.#t,{method:"POST",body:r,headers:{"content-type":"application/json","DD-API-KEY":this.#e}});if(!n.ok)throw new sa(await n.text())}};mr.DataDogMetricsTransport=oa;var sa=class e extends Error{static{s(this,"DataDogMetricsError")}constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};mr.DataDogMetricsError=sa});var Dg=g(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.DynaTraceMetricsError=yr.DynaTraceMetricsTransport=yr.DynatraceMetricsPlugin=void 0;var WA=Ke(),QA=Te(),YA=Io(),ep=new WeakMap,ZA={dimensions:[]},tp=class extends YA.MetricsPlugin{static{s(this,"DynatraceMetricsPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new aa(this.options)}static setContext(t,r){let n=ep.get(t);n||(n=ZA);let i=Object.assign({...n},r);ep.set(t,i)}};yr.DynatraceMetricsPlugin=tp;var aa=class{static{s(this,"DynaTraceMetricsTransport")}apiToken;#e;#t;dimensions;#r;#n=void 0;constructor(t){this.apiToken=t.apiToken,this.#e=t.url,this.#t=Object.assign({latency:!0,requestContentLength:!0,responseContentLength:!0},t.metrics),this.#r=t.include??{},this.dimensions=t.dimensions??[]}pushMetrics(t,r){this.#n===void 0&&(this.#n=new QA.BatchDispatch("dynatrace-metrics-transport",10,this.dispatchFunction,WA.SystemLogMap.getLogger(r)));let n=Math.floor(t.timestamp.getTime()),i=this.dimensions.concat(ep.get(r)?.dimensions??[]);if(this.#r.country&&i.push(`country="${t.country}"`),this.#r.httpMethod&&i.push(`http_method="${t.method}"`),this.#r.statusCode&&i.push(`status_code="${t.statusCode}"`),this.#r.path){let a=t.systemRouteName||t.routePath;i.push(`path="${a}"`)}let o=i.join(",");this.#t.latency&&this.#n.enqueue(`zuplo.request.latency,${o} ${t.durationMs} ${n}`),this.#t.requestContentLength&&t.requestContentLength&&this.#n.enqueue(`zuplo.request.content_length,${o} ${t.requestContentLength} ${n}`),this.#t.responseContentLength&&t.responseContentLength&&this.#n.enqueue(`zuplo.response.content_length,${o} ${t.responseContentLength} ${n}`),r.waitUntil(this.#n.waitUntilFlushed())}dispatchFunction=async t=>{if(t.length===0)return;let r=t.join(`
63
+ `)}async hexBodyHash(){let t=this.headers.get("X-Amz-Content-Sha256");if(t==null){if(this.body&&typeof this.body!="string"&&!("byteLength"in this.body))throw new ng.RuntimeError("body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header");t=xd(await tg(this.body||""))}return t}};wn.AwsV4Signer=Bs;async function Ai(e,t){let r=await crypto.subtle.importKey("raw",typeof e=="string"?Cd.encode(e):e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return crypto.subtle.sign("HMAC",r,Cd.encode(t))}s(Ai,"hmac");async function tg(e){return crypto.subtle.digest("SHA-256",typeof e=="string"?Cd.encode(e):e)}s(tg,"hash");function xd(e){return Array.prototype.map.call(new Uint8Array(e),t=>("0"+t.toString(16)).slice(-2)).join("")}s(xd,"buf2hex");function rg(e){return e.replace(/[!'()*]/g,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase())}s(rg,"encodeRfc3986");function wP(e,t){let{hostname:r,pathname:n}=e,i=r.replace("dualstack.","").match(/([^.]+)\.(?:([^.]*)\.)?amazonaws\.com(?:\.cn)?$/),[o,a]=(i||["",""]).slice(1,3);if(a==="us-gov")a="us-gov-west-1";else if(a==="s3"||a==="s3-accelerate")a="us-east-1",o="s3";else if(o==="iot")r.startsWith("iot.")?o="execute-api":r.startsWith("data.jobs.iot.")?o="iot-jobs-data":o=n==="/mqtt"?"iotdevicegateway":"iotdata";else if(o==="autoscaling"){let c=(t.get("X-Amz-Target")||"").split(".")[0];c==="AnyScaleFrontendService"?o="application-autoscaling":c==="AnyScaleScalingPlannerFrontendService"&&(o="autoscaling-plans")}else a==null&&o.startsWith("s3-")?(a=o.slice(3).replace(/^fips-|^external-1/,""),o="s3"):o.endsWith("-fips")?o=o.slice(0,-5):a&&/-\d$/.test(o)&&!/-\d$/.test(a)&&([o,a]=[a,o]);return o in eg?[eg[o],a]:[o,a]}s(wP,"guessServiceRegion")});var ig=g(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.convertStringToUtf8Array=At.convertUtf8ArrayToString=At.base64Encode=At.base64Decode=void 0;function vP(e){return e>64&&e<91?e-65:e>96&&e<123?e-71:e>47&&e<58?e+4:e===43?62:e===47?63:0}s(vP,"b64ToUint6");function TP(e,t){let r=e.replace(/[^A-Za-z0-9+/]/g,""),n=r.length,i=t?Math.ceil((n*3+1>>2)/t)*t:n*3+1>>2,o=new Uint8Array(i),a,c,u=0,l=0;for(let d=0;d<n;d++)if(c=d&3,u|=vP(r.charCodeAt(d))<<6*(3-c),c===3||n-d===1){for(a=0;a<3&&l<i;)o[l]=u>>>(16>>>a&24)&255,a++,l++;u=0}return o}s(TP,"base64Decode");At.base64Decode=TP;function Ks(e){return e<26?e+65:e<52?e+71:e<62?e-4:e===62?43:e===63?47:65}s(Ks,"uint6ToB64");function SP(e){let t=2,r="",n=e.length,i=0;for(let o=0;o<n;o++)t=o%3,i|=e[o]<<(16>>>t&24),(t===2||e.length-o===1)&&(r+=String.fromCodePoint(Ks(i>>>18&63),Ks(i>>>12&63),Ks(i>>>6&63),Ks(i&63)),i=0);return r.substring(0,r.length-2+t)+(t===2?"":t===1?"=":"==")}s(SP,"base64Encode");At.base64Encode=SP;function IP(e){let t="",r,n=e.length;for(let i=0;i<n;i++)r=e[i],t+=String.fromCodePoint(r>251&&r<254&&i+5<n?(r-252)*1073741824+(e[++i]-128<<24)+(e[++i]-128<<18)+(e[++i]-128<<12)+(e[++i]-128<<6)+e[++i]-128:r>247&&r<252&&i+4<n?(r-248<<24)+(e[++i]-128<<18)+(e[++i]-128<<12)+(e[++i]-128<<6)+e[++i]-128:r>239&&r<248&&i+3<n?(r-240<<18)+(e[++i]-128<<12)+(e[++i]-128<<6)+e[++i]-128:r>223&&r<240&&i+2<n?(r-224<<12)+(e[++i]-128<<6)+e[++i]-128:r>191&&r<224&&i+1<n?(r-192<<6)+e[++i]-128:r);return t}s(IP,"convertUtf8ArrayToString");At.convertUtf8ArrayToString=IP;function PP(e){let t,r=e.length,n=0;for(let c=0;c<r;c++)t=e.codePointAt(c),t>=65536&&c++,n+=t<128?1:t<2048?2:t<65536?3:t<2097152?4:t<67108864?5:6;let i=new Uint8Array(n),o=0,a=0;for(;o<n;)t=e.codePointAt(a),t<128?i[o++]=t:t<2048?(i[o++]=192+(t>>>6),i[o++]=128+(t&63)):t<65536?(i[o++]=224+(t>>>12),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63)):t<2097152?(i[o++]=240+(t>>>18),i[o++]=128+(t>>>12&63),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63),a++):t<67108864?(i[o++]=248+(t>>>24),i[o++]=128+(t>>>18&63),i[o++]=128+(t>>>12&63),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63),a++):(i[o++]=252+(t>>>30),i[o++]=128+(t>>>24&63),i[o++]=128+(t>>>18&63),i[o++]=128+(t>>>12&63),i[o++]=128+(t>>>6&63),i[o++]=128+(t&63),a++),a++;return i}s(PP,"convertStringToUtf8Array");At.convertStringToUtf8Array=PP});var og=g(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.toCLFDate=void 0;function vn(e){let t=e.toString();return`${t.length===1?"0":""}${t}`}s(vn,"numberToString");function AP(e){let t=e.getTimezoneOffset(),r=Math.abs(t),n=t>0?"-":"+",i=vn(Math.floor(r/60)),o=vn(r%60);return`${n}${i}${o}`}s(AP,"getCLFOffset");function RP(e=new Date){if(!(e instanceof Date))throw new Error("clf-date: invalid parameter");let t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=vn(e.getDate()),n=t[e.getMonth()],i=e.getFullYear(),o=vn(e.getHours()),a=vn(e.getMinutes()),c=vn(e.getSeconds()),u=AP(e);return`${r}/${n}/${i}:${o}:${a}:${c} ${u}`}s(RP,"toCLFDate");Js.toCLFDate=RP});var pg=g(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.getResponse=fr.awsLambdaHandler=fr.AwsLambdaHandlerExtensions=void 0;var OP=Sr(),sg=Xy(),Ri=C(),NP=Ut(),xP=Dd(),cg=ig(),ug=og(),ag=(0,OP.debug)("zuplo:runtime"),CP="X-Amzn-Trace-Id",LP="x-amzn-errortype",lg=[],DP=s(async(e,t,r)=>{let n=r;for await(let i of lg)n=await i(e,t,r);return n},"onSendingAwsLambdaEvent"),Ke=class extends Ri.RuntimeError{static{s(this,"AwsLambdaError")}traceId;errorType;constructor(t,r){super(`Failed to invoke AWS Lambda function. ${t}`),this.traceId=r.get(CP)??void 0,this.errorType=r.get(LP)??void 0}};fr.AwsLambdaHandlerExtensions={addSendingAwsLambdaEventHook:e=>{lg.push(e)}};async function UP(e,t){let{accessKeyId:r,secretAccessKey:n,region:i,functionName:o,useLambdaProxyIntegration:a=!0,useAwsResourcePathStyle:c=!1,binaryMediaTypes:u}=t.route.handler.options;if(!r)throw new Ri.ConfigurationError("awsAccessKeyId is not set in the handler options");if(!n)throw new Ri.ConfigurationError("secretAccessKey is not set in the handler options");if(!i)throw new Ri.ConfigurationError("region is not set in the handler options");if(!o)throw new Ri.ConfigurationError("functionName is not set in the handler options");let l=new xP.AwsClient({accessKeyId:r,secretAccessKey:n}),d=`https://lambda.${i}.amazonaws.com/2015-03-31/functions/${o}/invocations`;if(ag(`AWS Lambda URL: ${d}`),!a)return l.fetch(d,{body:await e.arrayBuffer()});let[p,m]=await HP(e,{binaryMediaTypes:u}),{options:h}=t.route.handler,y;h&&typeof h=="object"&&"payloadFormatVersion"in h&&h.payloadFormatVersion==="2.0"?y=kP(e,t):y=await MP(e,t,{useAwsResourcePathStyle:c}),ag("Calling onSendingAwsLambdaEvent hook");let E=await DP(e,t,y);E.body=p,E.isBase64Encoded=m;let T=await l.fetch(d,{body:JSON.stringify(E)});try{return dg(T)}catch(S){if(S instanceof Ke){let U=h&&typeof h=="object"&&"returnAmazonTraceIdHeader"in h&&h.returnAmazonTraceIdHeader&&S.traceId?{AMZN_TRACE_ID_HEADER:S.traceId}:void 0;return NP.HttpProblems.internalServerError(e,t,void 0,U)}throw S}}s(UP,"awsLambdaHandler");fr.awsLambdaHandler=UP;async function dg(e){let t;try{t=await e.json()}catch{throw new Ke("Lambda response did not contain valid JSON",e.headers)}if(e.status!==200)throw t&&typeof t=="object"&&"message"in t&&typeof t.message=="string"?new Ke(t.message,e.headers):new Ke(`Status: ${e.statusText}`,e.headers);if(t&&typeof t=="object"&&"errorMessage"in t&&typeof t.errorMessage=="string")throw new Ke(t.errorMessage,e.headers);if(!t||typeof t!="object"||!("statusCode"in t)||typeof t.statusCode!="number")return new Response(JSON.stringify(t),{status:e.status,headers:{"content-type":"application/json"}});let r=new Headers;if("headers"in t&&t.headers){if(typeof t.headers!="object")throw new Ke(`Response headers must be an object. Received ${typeof t.headers}`,e.headers);for(let[i,o]of Object.entries(t.headers))r.set(i,o)}if("cookies"in t&&t.cookies){if(!Array.isArray(t.cookies))throw new Ke(`Response cookies must be an array. Received ${typeof t.cookies}`,e.headers);r.set("cookie",t.cookies.join(";"))}let n;if("isBase64Encoded"in t&&typeof t.isBase64Encoded!="boolean")throw new Ke(`Response property isBase64Encoded must be a boolean. Received ${typeof t.isBase64Encoded}`,e.headers);if("isBase64Encoded"in t&&t.isBase64Encoded===!0){if(!("body"in t))throw new Ke("Response was set to base64 encoded but no body was set",e.headers);if(typeof t.body!="string")throw new Ke("Response was set to base64 encoded but body was not a string",e.headers);n=(0,cg.base64Decode)(t.body)}else"body"in t&&typeof t.body=="string"?n=t.statusCode===204&&t.body===""?null:t.body:"body"in t&&t.body!==null&&t.body!==void 0?n=JSON.stringify(t.body):n=null;if(n!==null&&"bodyEncoding"in t){if(typeof t.bodyEncoding!="string"||!(t.bodyEncoding==="gzip"||t.bodyEncoding==="deflate"))throw new Ke(`Response property bodyEncoding can only be set to 'gzip' or 'deflate'. Received ${t.bodyEncoding}`,e.headers);let i=new Blob([n]).stream().pipeThrough(new DecompressionStream(t.bodyEncoding));n=await new Response(i).arrayBuffer()}return new Response(n,{headers:r,status:t.statusCode})}s(dg,"getResponse");fr.getResponse=dg;async function MP(e,t,{useAwsResourcePathStyle:r}){let n={},i={};e.headers.forEach((l,d)=>{n[d]=l,i[d]=[l]});let o=e.query,a={};for(let[l,d]of Object.entries(o))a[l]=[d];let c=new URL(e.url);return{version:"1.0",resource:c.pathname,path:c.pathname,httpMethod:e.method,headers:n,multiValueHeaders:i,queryStringParameters:o,multiValueQueryStringParameters:a,requestContext:{accountId:null,apiId:null,authorizer:{claims:{},scopes:[]},domainName:c.hostname,domainPrefix:null,extendedRequestId:t.requestId,httpMethod:e.method,identity:{accessKey:null,accountId:null,caller:null,cognitoAuthenticationProvider:null,cognitoAuthenticationType:null,cognitoIdentityId:null,cognitoIdentityPoolId:null,principalOrgId:null,sourceIp:e.headers.get("CF-Connecting-IP"),user:null,userAgent:e.headers.get("user-agent"),userArn:null,clientCert:{clientCertPem:null,subjectDN:null,issuerDN:null,serialNumber:null,validity:{notBefore:null,notAfter:null}}},path:c.pathname,protocol:"HTTP/1.1",requestId:t.requestId,requestTime:(0,ug.toCLFDate)(),requestTimeEpoch:new Date().valueOf(),resourceId:t.route.operationId??null,resourcePath:qP(t.route.path,r),stage:null},pathParameters:e.params,stageVariables:null}}s(MP,"buildEventVersion1");function kP(e,t){let r={};e.headers.forEach((o,a)=>{r[a]=o});let n=new URL(e.url);return{version:"2.0",routeKey:null,rawPath:n.pathname,rawQueryString:n.search,cookies:[],headers:r,queryStringParameters:e.query,requestContext:{accountId:null,apiId:null,authentication:{clientCert:{clientCertPem:null,subjectDN:null,issuerDN:null,serialNumber:null,validity:{notBefore:null,notAfter:null}}},authorizer:{jwt:{claims:{},scopes:[]}},domainName:n.hostname,domainPrefix:null,http:{method:e.method,path:n.pathname,protocol:"HTTP/1.1",sourceIp:e.headers.get("CF-Connecting-IP"),userAgent:e.headers.get("user-agent")},requestId:t.requestId,routeKey:null,stage:null,time:(0,ug.toCLFDate)(),timeEpoch:new Date().valueOf()},pathParameters:e.params,stageVariables:null}}s(kP,"buildEventVersion2");async function HP(e,{binaryMediaTypes:t}){let r,n=!1,i=e.headers.get("content-type");if(e.method==="GET"||e.method==="HEAD")r=null;else if(t&&i&&FP(t,i)){let o=await e.arrayBuffer();r=(0,cg.base64Encode)(new Uint8Array(o)),n=!0}else r=await e.clone().text();return[r,n]}s(HP,"getBodyResult");function FP(e,t){let r=t.split(";")[0].trim().toLowerCase();return e.findIndex(n=>n==="*/*"?!0:n.toLowerCase()===r)>-1}s(FP,"matchesContentType");function qP(e,t=!1){if(!t)return e;let r=(0,sg.parse)(e),n=(0,sg.compile)(e),i={};return r.forEach(o=>{typeof o=="string"?i[o]=`{${o}}`:i[o.name]=`{${o.name}}`}),n(i)}s(qP,"getResourcePath")});var Sn=g(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.getHandlerUserLogFunction=Tn.logBadGatewayResponses=void 0;var $P=Be(),jP=Y(),VP=[502,503,504];async function GP(e,t){if(VP.includes(e.status)){let r=$P.SystemLogMap.getLogger(t),i=await e.clone().text(),o={};for(let[a,c]of e.headers)o[a]=c;r.warn(`BadGatewayResponse ${e.status}`,{status:e.status,statusText:e.statusText,body:i,headers:o})}}s(GP,"logBadGatewayResponses");Tn.logBadGatewayResponses=GP;var Ud;function BP(e){if(Ud===void 0){let r=jP.Environment.instance.runtime.ZUPLO_HANDLER_WRITE_LOG_LEVEL;["debug","info","warn","error"].includes(r??"")||(r="debug"),Ud=r}return e.log[Ud]}s(BP,"getHandlerUserLogFunction");Tn.getHandlerUserLogFunction=BP});var fg=g(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.openApiSpecHandler=void 0;var hg=C(),KP=ae(),Md=Y(),JP=Sn();async function zP(e,t){let r=Md.Environment.instance.build.BUILD_ID,{buildAssetsUrl:n}=Md.Environment.instance,i=t.route.handler.options,{openApiFilePath:o}=i;if(!o)throw new hg.ConfigurationError("Open API Spec Handler must have 'openApiFilePath' specified");let a=WP(o);if(!a.isValid)throw new hg.ConfigurationError(a.error);let c;Md.Environment.instance.isLocalDevelopment?c=`${n}/${o.substring(1)}`:c=`${n}/${r}${o.substring(1)}`;let u=await fetch(c,{method:e.method,body:e.body,headers:e.headers});if(u.status!==200)return KP.HttpProblems.notFound(e,t,{detail:"OpenAPI file could not be found."});let l=new Response(u.body,{headers:{"content-type":"application/json"},status:u.status,statusText:u.statusText});return(0,JP.logBadGatewayResponses)(l,t),l}s(zP,"openApiSpecHandler");zs.openApiSpecHandler=zP;var WP=s(e=>e.startsWith("./")?e.startsWith("./config")?e.endsWith(".oas.json")?{isValid:!0}:{isValid:!1,error:"'openApiFilePath' must point to a file ending in '.oas.json'"}:{isValid:!1,error:"'openApiFilePath' must point to a file in your /config directory"}:{isValid:!1,error:"'openApiFilePath' must start with './'"},"validateOpenApiPath")});var mg=g(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.redirectHandler=void 0;var QP=C();async function YP(e,t){let r=t.route.handler.options;if(!r.location)throw new QP.ConfigurationError("Redirect Handler must have 'location' specified");let n=r.status??302;return new Response(null,{status:n,headers:{location:r.location}})}s(YP,"redirectHandler");Ws.redirectHandler=YP});var gg=g(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.urlForwardHandler=void 0;var ZP=C(),yg=Sn();function XP(e,t){let r=e.endsWith("/"),n=t.startsWith("/");return r&&n?`${e.substring(0,e.length-1)}${t}`:!r&&!n?`${e}/${t}`:`${e}${t}`}s(XP,"join");async function eA(e,t){let r=(0,yg.getHandlerUserLogFunction)(t),n=t.route.handler.options,i=n.forwardSearch!==!1;if(!n.baseUrl)throw new Error("URL Forward Handler must have 'baseUrl' specified");if(!n||typeof n.__rewriteFunction!="function")throw new ZP.ConfigurationError("Invalid options for this route");let o={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},a=new URL(e.url),c=n.__rewriteFunction(e,o),u=XP(c,a.pathname),l=i?`${u}${a.search}`:u.toString(),d=Date.now();r(`URL Forwarding to '${l}'`);let p=await fetch(l,{method:e.method,body:e.body,headers:e.headers}),m=Date.now()-d;return r(`URL Forward received response ${p.status} - ${p.statusText} in ${m}ms`),(0,yg.logBadGatewayResponses)(p,t),p}s(eA,"urlForwardHandler");Qs.urlForwardHandler=eA});var _g=g(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.urlRewriteHandler=void 0;var tA=C(),bg=Sn(),rA=s((e,t)=>{let r=new URL(e),n=new URL(t);for(let[i,o]of n.searchParams.entries())r.searchParams.append(i,o);return r.toString()},"addQuery");async function nA(e,t){let r=(0,bg.getHandlerUserLogFunction)(t),n=t.route.handler.options,i=n.forwardSearch!==!1,o=n.followRedirects??!1;if(!n||typeof n.__rewriteFunction!="function")throw new tA.ConfigurationError("Invalid options for this route");let a={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},c=n.__rewriteFunction(e,a),u=i?rA(c,e.url):c,l=Date.now();r(`URL Rewriting to '${u}'`);let d=await fetch(u.toString(),{method:e.method,body:e.body,headers:e.headers,redirect:o?"follow":"manual"}),p=Date.now()-l;return r(`URL Rewrite received response ${d.status} - ${d.statusText} in ${p}ms`),(0,bg.logBadGatewayResponses)(d,t),d}s(nA,"urlRewriteHandler");Ys.urlRewriteHandler=nA});var wg=g(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.webSocketHandler=void 0;var Eg=C(),iA=Id(),oA=Ut(),sA=Y(),aA=Sn();async function cA(e,t){let r=sA.Environment.instance,n=t.route.handler.options,i=(0,aA.getHandlerUserLogFunction)(t);if(!n||!n.rewritePattern)throw new Eg.ConfigurationError("WebSocket Handler must have option 'rewritePattern' specified");let o=e.headers.get("Upgrade");if(!o||o!=="websocket")return oA.HttpProblems.badRequest(e,t,{detail:"Request must include header 'Upgrade: websocket'"});if(!n||typeof n.__rewriteFunction!="function")throw new Eg.ConfigurationError("Invalid options for this route");let a={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},c=n.__rewriteFunction(e,a),u=Date.now();if(i(`Attempting WebSocket connection to '${c}'`),r.isDeno){let p=new Headers(e.headers);if(c.startsWith("service:")){let h=await(0,iA.externalServiceTunnelConfig)(c),y=new URL(c);c=new URL(`${h.serviceBaseUrl}${y.pathname}${y.search}`).toString();for(let T in h.tunnelHeaders)p.set(T,h.tunnelHeaders[T])}c=c.replace(/^(http)/,"ws");try{if(p.get("Authorization")){let h=p.get("Authorization")?.replace("Bearer ","");c+=`?apiKey=${h}`}}catch{}let m=JSON.stringify({url:c});return new Response(m,{headers:p})}c=c.replace(/^(ws)/,"http");let l=await fetch(c,{method:e.method,headers:e.headers,body:e.body});if(l.status!==101||!l.webSocket){let p=await l.text(),m=`WebSocket connection error - ${l.status}: ${l.statusText}, content: '${p}'`;throw new Error(m)}let d=Date.now()-u;return i(`WebSocket connected, received response ${l.status} - ${l.statusText} in ${d}ms`),new Response(null,{status:101,webSocket:l.webSocket})}s(cA,"webSocketHandler");Zs.webSocketHandler=cA});var vg=g(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.webSocketPolicyProcessor=In.getWebSocketPolicyFunctions=void 0;var uA=C(),lA=s((e,t)=>e.map((n,i)=>{let o;if(typeof n.module=="object"&&(o=n.module[n.export]),!o||typeof o!="function"){let a=t==="inbound"?"WebSocketInboundPolicy":"WebSocketOutboundPolicy",c=`policy in position: ${i+1}, export name: ${n.export}`;throw new uA.ConfigurationError(`${a} - Websocket policy must be a valid function (${c})`)}return o}),"getWebSocketPolicyFunctions");In.getWebSocketPolicyFunctions=lA;var dA=s(async(e,t,r,n,i,o)=>{let a=e.data;if(o&&o.length>0){let c=[...o];for(;c.length>0;){let u=c.shift();if(!u)return a;if(a=await u(a,r,t,n,i),a===void 0)return}}return a},"webSocketPolicyProcessor");In.webSocketPolicyProcessor=dA});var Sg=g(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.webSocketPipelineHandler=void 0;var kd=C(),pA=Ut(),hA=Y(),fA=Sn(),Hd=vg();function Tg(e,t,r,n,i){e.addEventListener("close",()=>{t.close()}),e.addEventListener("error",o=>{n.log.error("WebSocket error: ",o),t.send(JSON.stringify(o))}),e.addEventListener("message",o=>{try{let c=s(async u=>{let l=await(0,Hd.webSocketPolicyProcessor)(u,e,t,r,n,i);l!==void 0&&t.send(l)},"innerPipeline")(o).catch(n.log.error);n.waitUntil(c)}catch(a){n.log.error(a)}})}s(Tg,"wireUpListeners");async function mA(e,t){let r=hA.Environment.instance,n=t.route.handler.options,i=(0,fA.getHandlerUserLogFunction)(t);if(!n||!n.rewritePattern)throw new kd.ConfigurationError("WebSocket Pipeline Handler must have option 'rewritePattern' specified");let o=e.headers.get("Upgrade");if(!o||o!=="websocket")return pA.HttpProblems.badRequest(e,t,{detail:"Request must include header 'Upgrade: websocket'"});if(!n||typeof n.__rewriteFunction!="function")throw new kd.ConfigurationError("Invalid options for this route");let a={incomingRequestProperties:t.incomingRequestProperties,requestId:t.requestId,route:t.route,custom:t.custom},c=n.__rewriteFunction(e,a),u=Date.now();if(i(`Attempting WebSocket connection to '${c}'`),r.isDeno)throw new kd.ConfigurationError("Websocket pipeline handler is currently not supported on working-copy environments");c=c.replace(/^(ws)/,"http");let l=await fetch(c,{method:e.method,headers:e.headers,body:e.body});if(l.status!==101||!l.webSocket){let S=await l.text(),U=`WebSocket connection error - ${l.status}: ${l.statusText}, content: '${S}'`;throw new Error(U)}let d=new WebSocketPair,[p,m]=Object.values(d),h=Date.now()-u;i(`WebSocket connected, received response ${l.status} - ${l.statusText} in ${h}ms`);let y=l.webSocket;y.accept(),m.accept();let E=n.policies&&n.policies.inbound?(0,Hd.getWebSocketPolicyFunctions)(n.policies.inbound,"inbound"):[],T=n.policies&&n.policies.outbound?(0,Hd.getWebSocketPolicyFunctions)(n.policies.outbound,"outbound"):[];return Tg(m,y,e,t,E),Tg(y,m,e,t,T),new Response(null,{status:101,webSocket:p})}s(mA,"webSocketPipelineHandler");Xs.webSocketPipelineHandler=mA});var Ig=g(ea=>{"use strict";Object.defineProperty(ea,"__esModule",{value:!0});ea.DynaTraceLoggingPlugin=void 0;var yA=Te(),Fd=Y(),gA=Nr(),bA=Mt(),_A=Et(),qd=class extends bA.LogPlugin{static{s(this,"DynaTraceLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new $d(this.options)}};ea.DynaTraceLoggingPlugin=qd;var $d=class{static{s(this,"DynaTraceTransport")}constructor(t){this.#e=t.url,this.#t=t.apiToken,this.#n=Fd.Environment.instance.loggingEnvironmentType,this.#i=Fd.Environment.instance.loggingEnvironmentStage,this.#r=Fd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;log(t,r){t.messages.forEach(n=>{let i={timestamp:new Date().toISOString(),message:(0,_A.stringifyNonString)((0,gA.serializeError)(n)),severity:t.level,"log.source":t.logSource,requestId:t.requestId,"custom.environment":this.#r,"custom.environmentStage":this.#i,"custom.environmentType":this.#n,"custom.loggingId":t.loggingId,"custom.rayId":t.rayId===null?void 0:t.rayId};this.batcher.enqueue(i)}),r.waitUntil(this.batcher.waitUntilFlushed())}#o=async t=>{t.length!==0&&await fetch(this.#e,{method:"POST",body:JSON.stringify(t),headers:{"content-type":"application/json; charset=utf-8",authorization:`Api-Token ${this.#t}`}})};batcher=new yA.BatchDispatch("dyna-trace-log-transport",10,this.#o)}});var Pg=g(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.LokiLoggingPlugin=void 0;var EA=Te(),jd=Y(),wA=Nr(),vA=Mt(),TA=Et(),Vd=class extends vA.LogPlugin{static{s(this,"LokiLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new Bd(this.options)}};ta.LokiLoggingPlugin=Vd;var Gd=class{static{s(this,"LokiStream")}constructor(t,r,n,i,o){this.level=t,this.environment=r,this.environmentType=n,this.environmentStage=i,this.requestId=o}job="zuplo";level;environment;environmentType;environmentStage;requestId;equals=t=>this.level===t.level&&this.requestId===t.requestId};function SA(e,t){return btoa(`${e}:${t}`)}s(SA,"createBasicDigest");var Bd=class{static{s(this,"LokiTransport")}constructor(t){this.#e=t.url,this.#t=SA(t.username,t.password),this.#n=jd.Environment.instance.loggingEnvironmentType,this.#i=jd.Environment.instance.loggingEnvironmentStage,this.#r=jd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;log(t,r){let n=new Gd(t.level,this.#r,this.#n,this.#i,t.requestId);t.messages.forEach(i=>{let o={stream:n,message:(0,TA.stringifyNonString)((0,wA.serializeError)(i)),nanoSecondEpoch:`${t.timestamp.getTime()}000000`};this.batcher.enqueue(o)}),r.waitUntil(this.batcher.waitUntilFlushed())}#o=t=>{let r={streams:[]};return t.forEach(n=>{let i=r.streams.find(o=>o.stream.equals(n.stream));i||(i={stream:n.stream,values:[]},r.streams.push(i)),i.values.push([n.nanoSecondEpoch,n.message])}),r};#s=async t=>{if(t.length===0)return;let r=this.#o(t);await fetch(this.#e,{method:"POST",body:JSON.stringify(r),headers:{"content-type":"application/json",authorization:`Basic ${this.#t}`}})};batcher=new EA.BatchDispatch("loki-log-transport",10,this.#s)}});var Ag=g(ra=>{"use strict";Object.defineProperty(ra,"__esModule",{value:!0});ra.SumoLogicLoggingPlugin=void 0;var IA=Te(),Kd=Y(),PA=Nr(),AA=Mt(),RA=Et(),Jd=class extends AA.LogPlugin{static{s(this,"SumoLogicLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new zd(this.options)}};ra.SumoLogicLoggingPlugin=Jd;var zd=class{static{s(this,"SumoLogicTransport")}constructor(t){this.#e=t.url,this.#i=t.category,this.#o=t.name,this.#r=Kd.Environment.instance.loggingEnvironmentType,this.#n=Kd.Environment.instance.loggingEnvironmentStage,this.#t=Kd.Environment.instance.deploymentName}#e;#t;#r;#n;#i;#o;log(t,r){t.messages.forEach(n=>{let i={timestamp:new Date().toISOString(),message:(0,RA.stringifyNonString)((0,PA.serializeError)(n)),severity:t.level,source:t.logSource,requestId:t.requestId,environment:this.#t,environmentType:this.#r,environmentStage:this.#n,rayId:t.rayId===null?void 0:t.rayId};this.batcher.enqueue(i)}),r.waitUntil(this.batcher.waitUntilFlushed())}#s=async t=>{if(t.length===0)return;let r=t.map(i=>JSON.stringify(i)).join(`
64
+ `),n=new Headers({"content-type":"application/json; charset=utf-8"});this.#o&&n.set("X-Sumo-Name",this.#o),this.#i&&n.set("X-Sumo-Category",this.#i),await fetch(this.#e,{method:"POST",body:r,headers:n})};batcher=new IA.BatchDispatch("sumo-logic-log-transport",10,this.#s)}});var Og=g(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});Pn.VMWareLogInsightTransport=Pn.VMWareLogInsightLoggingPlugin=void 0;var OA=C(),NA=Te(),Wd=Y(),xA=Mt(),Rg=Et(),CA="d3a5b78f-8236-48f5-b1df-4fe269d41172",Qd=class extends xA.LogPlugin{static{s(this,"VMWareLogInsightLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new na(this.options)}};Pn.VMWareLogInsightLoggingPlugin=Qd;var na=class{static{s(this,"VMWareLogInsightTransport")}constructor(t){let r;try{r=new URL(t.url)}catch{throw new OA.ConfigurationError(`Invalid option 'url' on 'VMWareLogInsightTransport' plugin. Must be a valid URL, received '${t.url}'`)}this.#e=r.origin,this.#r=Wd.Environment.instance.loggingEnvironmentType,this.#n=Wd.Environment.instance.loggingEnvironmentStage,this.#t=Wd.Environment.instance.deploymentName,this.#i=t.onMessageSending,t.fields&&(this.#o=Object.entries(t.fields).map(([n,i])=>({name:n,content:i})))}#e;#t;#r;#n;#i;#o;log(t,r){let n=this.buildEntry(t,r);this.batcher.enqueue(n),r.waitUntil(this.batcher.waitUntilFlushed())}buildEntry(t,r){let n=(0,Rg.messagesToMultilineText)(t.messages),i={timestamp:Date.now(),text:n,fields:[{name:"severity",content:t.level.toUpperCase()},{name:"request_id",content:t.requestId},{name:"environment_type",content:this.#r},{name:"environment_stage",content:this.#n},{name:"log_source",content:t.logSource},{name:"atomic_counter",content:t.vectorClock}]};return t.rayId&&i.fields.push({name:"request_ray_id",content:t.rayId}),this.#t&&i.fields.push({name:"environment",content:this.#t}),this.#o&&i.fields.push(...this.#o),r.custom&&Object.entries(r.custom).forEach(([o,a])=>{let c=(0,Rg.stringifyNonStringToText)(a);c&&i.fields.push({name:o,content:c})}),this.#i&&(i=this.#i(i)),i}#s=async t=>{if(t.length===0)return;let r=await fetch(`${this.#e}/api/v1/events/ingest/${CA}`,{method:"POST",body:JSON.stringify(t),headers:{"content-type":"application/json; charset=utf-8"}});if(r.status!==200)try{let n=await r.text();console.error("Error logging to Log Insight",n)}catch(n){console.error(n)}};batcher=new NA.BatchDispatch("vmware-log-insights-log-transport",10,this.#s)};Pn.VMWareLogInsightTransport=na});var xg=g(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.AWSLogTransport=An.AWSLoggingPlugin=void 0;var LA=Dd(),DA=Te(),Ng=Y(),UA=Nr(),MA=Mt(),kA=Et(),Yd=class extends MA.LogPlugin{static{s(this,"AWSLoggingPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new ia(this.options)}};An.AWSLoggingPlugin=Yd;var ia=class{static{s(this,"AWSLogTransport")}awsClient;environment;environmentType;logGroupName;logStreamName;region;batcher=new DA.BatchDispatch("aws-log-transport",10,async t=>{if(t.length===0)return;let r=JSON.stringify({logGroupName:this.logGroupName,logStreamName:this.logStreamName,logEvents:t});await this.awsClient.fetch(`https://logs.${this.region}.amazonaws.com`,{headers:{"Content-Type":"application/x-amz-json-1.1","x-amz-Target":"Logs_20140328.PutLogEvents"},body:r,aws:{accessKeyId:this.awsClient.accessKeyId,secretAccessKey:this.awsClient.secretAccessKey,service:this.awsClient.service,region:this.awsClient.region}})});constructor({accessKeyId:t,logStreamName:r,logGroupName:n,secretAccessKey:i,region:o}){this.awsClient=new LA.AwsClient({accessKeyId:t,secretAccessKey:i,service:"logs",region:o}),this.logGroupName=n,this.logStreamName=r,this.region=o,this.environmentType=Ng.Environment.instance.loggingEnvironmentType,this.environment=Ng.Environment.instance.deploymentName}log(t,r){t.messages.forEach(n=>{let i={timestamp:new Date().getTime(),message:JSON.stringify({data:(0,kA.stringifyNonString)((0,UA.serializeError)(n)),severity:t.level,source:t.logSource,environment:this.environment,requestId:t.requestId,environmentType:this.environmentType,rayId:t.rayId===null?void 0:t.rayId})};this.batcher.enqueue(i)}),r.waitUntil(this.batcher.waitUntilFlushed())}};An.AWSLogTransport=ia});var Cg=g(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.AWSLoggingPlugin=Ne.VMWareLogInsightLoggingPlugin=Ne.SumoLogicLoggingPlugin=Ne.LokiLoggingPlugin=Ne.GoogleCloudLoggingPlugin=Ne.DynaTraceLoggingPlugin=Ne.DataDogLoggingPlugin=void 0;var HA=cd();Object.defineProperty(Ne,"DataDogLoggingPlugin",{enumerable:!0,get:function(){return HA.DataDogLoggingPlugin}});var FA=Ig();Object.defineProperty(Ne,"DynaTraceLoggingPlugin",{enumerable:!0,get:function(){return FA.DynaTraceLoggingPlugin}});var qA=Rs();Object.defineProperty(Ne,"GoogleCloudLoggingPlugin",{enumerable:!0,get:function(){return qA.GoogleCloudLoggingPlugin}});var $A=Pg();Object.defineProperty(Ne,"LokiLoggingPlugin",{enumerable:!0,get:function(){return $A.LokiLoggingPlugin}});var jA=Ag();Object.defineProperty(Ne,"SumoLogicLoggingPlugin",{enumerable:!0,get:function(){return jA.SumoLogicLoggingPlugin}});var VA=Og();Object.defineProperty(Ne,"VMWareLogInsightLoggingPlugin",{enumerable:!0,get:function(){return VA.VMWareLogInsightLoggingPlugin}});var GA=xg();Object.defineProperty(Ne,"AWSLoggingPlugin",{enumerable:!0,get:function(){return GA.AWSLoggingPlugin}})});var Lg=g(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.DataDogMetricsError=mr.DataDogMetricsTransport=mr.DataDogMetricsPlugin=void 0;var BA=Be(),KA=Te(),JA=Io(),Zd=new WeakMap,zA={tags:[]},Xd=class extends JA.MetricsPlugin{static{s(this,"DataDogMetricsPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new oa(this.options)}static setContext(t,r){let n=Zd.get(t);n||(n=zA);let i=Object.assign({...n},r);Zd.set(t,i)}};mr.DataDogMetricsPlugin=Xd;var oa=class{static{s(this,"DataDogMetricsTransport")}#e;#t;#r;#n;#i;#o=void 0;constructor(t){this.#e=t.apiKey,this.#t=t.url??"https://api.datadoghq.com/api/v2/series",this.#r=Object.assign({latency:!0,requestContentLength:!0,responseContentLength:!0},t.metrics),this.#i=t.include??{},this.#n=t.tags??[]}pushMetrics(t,r){this.#o===void 0&&(this.#o=new KA.BatchDispatch("data-dog-metrics-transport",10,this.dispatchFunction,BA.SystemLogMap.getLogger(r)));let n=Math.floor(t.timestamp.getTime()/1e3),i=this.#n.concat(Zd.get(r)?.tags??[]);if(this.#i.country&&i.push(`country:${t.country}`),this.#i.httpMethod&&i.push(`httpMethod:${t.method}`),this.#i.statusCode&&i.push(`statusCode:${t.statusCode}`),this.#i.path){let o=t.systemRouteName||t.routePath;i.push(`path:${o}`)}this.#r.latency&&this.#o.enqueue({metric:"zuplo.request.latency",type:3,points:[{timestamp:n,value:t.durationMs}],tags:i}),this.#r.requestContentLength&&t.requestContentLength&&this.#o.enqueue({metric:"zuplo.request.content_length",type:3,points:[{timestamp:n,value:t.requestContentLength}],tags:i}),this.#r.responseContentLength&&t.responseContentLength&&this.#o.enqueue({metric:"zuplo.response.content_length",type:3,points:[{timestamp:n,value:t.responseContentLength}],tags:i}),r.waitUntil(this.#o.waitUntilFlushed())}dispatchFunction=async t=>{if(t.length===0)return;let r=JSON.stringify({series:t}),n=await fetch(this.#t,{method:"POST",body:r,headers:{"content-type":"application/json","DD-API-KEY":this.#e}});if(!n.ok)throw new sa(await n.text())}};mr.DataDogMetricsTransport=oa;var sa=class e extends Error{static{s(this,"DataDogMetricsError")}constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};mr.DataDogMetricsError=sa});var Dg=g(yr=>{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.DynaTraceMetricsError=yr.DynaTraceMetricsTransport=yr.DynatraceMetricsPlugin=void 0;var WA=Be(),QA=Te(),YA=Io(),ep=new WeakMap,ZA={dimensions:[]},tp=class extends YA.MetricsPlugin{static{s(this,"DynatraceMetricsPlugin")}options;constructor(t){super(),this.options=t}getTransport(){return new aa(this.options)}static setContext(t,r){let n=ep.get(t);n||(n=ZA);let i=Object.assign({...n},r);ep.set(t,i)}};yr.DynatraceMetricsPlugin=tp;var aa=class{static{s(this,"DynaTraceMetricsTransport")}apiToken;#e;#t;dimensions;#r;#n=void 0;constructor(t){this.apiToken=t.apiToken,this.#e=t.url,this.#t=Object.assign({latency:!0,requestContentLength:!0,responseContentLength:!0},t.metrics),this.#r=t.include??{},this.dimensions=t.dimensions??[]}pushMetrics(t,r){this.#n===void 0&&(this.#n=new QA.BatchDispatch("dynatrace-metrics-transport",10,this.dispatchFunction,WA.SystemLogMap.getLogger(r)));let n=Math.floor(t.timestamp.getTime()),i=this.dimensions.concat(ep.get(r)?.dimensions??[]);if(this.#r.country&&i.push(`country="${t.country}"`),this.#r.httpMethod&&i.push(`http_method="${t.method}"`),this.#r.statusCode&&i.push(`status_code="${t.statusCode}"`),this.#r.path){let a=t.systemRouteName||t.routePath;i.push(`path="${a}"`)}let o=i.join(",");this.#t.latency&&this.#n.enqueue(`zuplo.request.latency,${o} ${t.durationMs} ${n}`),this.#t.requestContentLength&&t.requestContentLength&&this.#n.enqueue(`zuplo.request.content_length,${o} ${t.requestContentLength} ${n}`),this.#t.responseContentLength&&t.responseContentLength&&this.#n.enqueue(`zuplo.response.content_length,${o} ${t.responseContentLength} ${n}`),r.waitUntil(this.#n.waitUntilFlushed())}dispatchFunction=async t=>{if(t.length===0)return;let r=t.join(`
65
65
  `),n=await fetch(this.#e,{method:"POST",body:r,headers:{"content-type":"text/plain",Authorization:`Api-Token ${this.apiToken}`}});if(!n.ok)throw new ca(await n.text())}};yr.DynaTraceMetricsTransport=aa;var ca=class e extends Error{static{s(this,"DynaTraceMetricsError")}constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};yr.DynaTraceMetricsError=ca});var Ug=g(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.DynatraceMetricsPlugin=Rn.DataDogMetricsPlugin=void 0;var XA=Lg();Object.defineProperty(Rn,"DataDogMetricsPlugin",{enumerable:!0,get:function(){return XA.DataDogMetricsPlugin}});var eR=Dg();Object.defineProperty(Rn,"DynatraceMetricsPlugin",{enumerable:!0,get:function(){return eR.DynatraceMetricsPlugin}})});var Mg=g(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.AuditLogDataStaxProvider=void 0;var rp=class{static{s(this,"AuditLogDataStaxProvider")}constructor(t){this.#e=t}#e;writeLogBatch=async t=>{await Promise.allSettled(t.map(async r=>{await fetch(this.#e.url,{method:"POST",headers:{"X-Cassandra-Token":this.#e.xCassandraToken,"content-type":"application/json"},body:JSON.stringify(r)})}))}};ua.AuditLogDataStaxProvider=rp});var Hg=g(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.AuditLogPlugin=void 0;var tR=gt(),rR=Te(),np=class extends tR.SystemRuntimePlugin{static{s(this,"AuditLogPlugin")}constructor(t,r){super(),this.#e=t,this.#t=r}#e;#t;async initialize(t){new ip(t,this.#e,this.#t)}};la.AuditLogPlugin=np;var kg=s(e=>{let t={};return e.forEach((r,n)=>{t[n]=r}),t},"serializableHeaders"),nR={requestFilter:async()=>!0,include:{request:{headers:!0,body:!0},response:{headers:!0,body:!0}}},ip=class{static{s(this,"AuditPluginImpl")}constructor(t,r,n){this.#t=r;let i={...nR};n?.requestFilter&&(i.requestFilter=n.requestFilter),n?.include?.request&&Object.assign(i,n.include.request),n?.include?.response&&Object.assign(i,n.include.response),this.#e=i,t.addRequestHook(this.#o),this.#r=new rR.BatchDispatch("audit-log",10,this.#n)}#e;#t;#r;#n=async t=>{await this.#t.writeLogBatch(t)};#i=async(t,r,n,i,o,a)=>{try{let c={timestamp:i,durationMs:o,routePath:n.route.path,requestId:n.requestId,userSub:a,request:{url:r.url,method:r.method,headers:this.#e.include?.request?.headers?kg(r.headers):void 0,body:this.#e.include?.request?.body?await r.text():void 0},response:{status:t.status,statusText:t.statusText,headers:this.#e.include?.response?.headers?kg(t.headers):void 0,body:this.#e.include?.response?.body?await t.text():void 0}};this.#r.enqueue(c),n.waitUntil(this.#r.waitUntilFlushed())}catch(c){n.log.error(c)}};#o=async(t,r)=>{try{if(!await this.#e.requestFilter(t,r))return t;let i=new Date,o=Date.now(),a=t.clone();return r.addResponseSendingFinalHook(async(c,u)=>{let l=Date.now(),d=c.clone(),p=this.#i(d,a,r,i,l-o,u.user?.sub).catch(m=>{r.log.error(m)});r.waitUntil(p)}),t}catch(n){return r.log.error(n),t}}}});var Fg=g(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.StripeSignatureVerificationError=On.StripeError=void 0;var da=class extends Error{static{s(this,"StripeError")}message;type;raw;rawType;headers;requestId;code;doc_url;param;detail;statusCode;charge;decline_code;payment_method_type;payment_intent;payment_method;setup_intent;source;constructor(t={}){super(t.message),this.type=this.constructor.name,this.raw=t,this.rawType=t.type,this.code=t.code,this.doc_url=t.doc_url,this.param=t.param,this.detail=t.detail,this.headers=t.headers,this.requestId=t.requestId,this.statusCode=t.statusCode,this.message=t.message,this.charge=t.charge,this.decline_code=t.decline_code,this.payment_intent=t.payment_intent,this.payment_method=t.payment_method,this.payment_method_type=t.payment_method_type,this.setup_intent=t.setup_intent,this.source=t.source}};On.StripeError=da;var op=class extends da{static{s(this,"StripeSignatureVerificationError")}header;payload;constructor(t,r,n={}){super(n),this.header=t,this.payload=r}};On.StripeSignatureVerificationError=op});var $g=g(Nn=>{"use strict";Object.defineProperty(Nn,"__esModule",{value:!0});Nn.computeHMACSignatureAsync=Nn.constructEventAsync=void 0;var Mr=Fg(),iR="v1",oR=300;async function sR(e,t,r,n=oR,i){return await cR(e,t,r,n,i),e instanceof Uint8Array?JSON.parse(new TextDecoder("utf8").decode(e)):JSON.parse(e)}s(sR,"constructEventAsync");Nn.constructEventAsync=sR;function aR(e,t){return`${t.timestamp}.${e}`}s(aR,"makeHMACContent");async function cR(e,t,r,n,i){let{decodedHeader:o,decodedPayload:a,details:c,suspectPayloadType:u}=uR(e,t,iR),l=/\s/.test(r),d=await qg(aR(a,c),r);return lR(a,o,c,d,n,u,l,i)}s(cR,"verifyHeaderAsync");function uR(e,t,r){if(!e)throw new Mr.StripeSignatureVerificationError(t,e,{message:"No webhook payload was provided."});let n=typeof e!="string"&&!(e instanceof Uint8Array),i=new TextDecoder("utf8"),o=e instanceof Uint8Array?i.decode(e):e;if(Array.isArray(t))throw new Error("Unexpected: An array was passed as a header, which should not be possible for the stripe-signature header.");if(t==null||t=="")throw new Mr.StripeSignatureVerificationError(t,e,{message:"No stripe-signature header value was provided."});let a=t instanceof Uint8Array?i.decode(t):t,c=dR(a,r);if(!c||c.timestamp===-1)throw new Mr.StripeSignatureVerificationError(a,o,{message:"Unable to extract timestamp and signatures from header"});if(!c.signatures.length)throw new Mr.StripeSignatureVerificationError(a,o,{message:"No signatures found with expected scheme"});return{decodedPayload:o,decodedHeader:a,details:c,suspectPayloadType:n}}s(uR,"parseEventDetails");function lR(e,t,r,n,i,o,a,c){let u=!!r.signatures.filter(m=>pR(m,n)).length,l=`
66
66
  Learn more about webhook signing and explore webhook integration examples for various frameworks at https://github.com/stripe/stripe-node#webhook-signing`,d=a?`
67
67
 
@@ -71,7 +71,7 @@ Signature verification is impossible without access to the original signed mater
71
71
  `+d}):new Mr.StripeSignatureVerificationError(t,e,{message:`No signatures found matching the expected signature for payload. Are you passing the raw request body you received from Stripe?
72
72
  If a webhook request is being forwarded by a third-party tool, ensure that the exact request body, including JSON formatting and new line style, is preserved.
73
73
  `+l+`
74
- `+d});let p=Math.floor((typeof c=="number"?c:Date.now())/1e3)-r.timestamp;if(i>0&&p>i)throw new Mr.StripeSignatureVerificationError(t,e,{message:"Timestamp outside the tolerance zone"});return!0}s(lR,"validateComputedSignature");function dR(e,t){return typeof e!="string"?null:e.split(",").reduce((r,n)=>{let i=n.split("=");return i[0]==="t"&&(r.timestamp=parseInt(i[1],10)),i[0]===t&&r.signatures.push(i[1]),r},{timestamp:-1,signatures:[]})}s(dR,"parseHeader");function pR(e,t){if(e.length!==t.length)return!1;let r=e.length,n=0;for(let i=0;i<r;++i)n|=e.charCodeAt(i)^t.charCodeAt(i);return n===0}s(pR,"secureCompare");async function qg(e,t){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",r.encode(t),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),i=await crypto.subtle.sign("hmac",n,r.encode(e)),o=new Uint8Array(i),a=new Array(o.length);for(let c=0;c<o.length;c++)a[c]=sp[o[c]];return a.join("")}s(qg,"computeHMACSignatureAsync");Nn.computeHMACSignatureAsync=qg;var sp=new Array(256);for(let e=0;e<sp.length;e++)sp[e]=e.toString(16).padStart(2,"0")});var $t=g(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.optionValidator=void 0;var Oi=C();function hR(e,t){let r=s((o,a,c)=>{let u=e[o];if(!(c&&u===void 0)){if(u===void 0)throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' is required, but no value was set. If using an environment variable, check that it is set correctly.`);if(a==="array"&&Array.isArray(u))throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be an array. Received type ${typeof u}.`);if(typeof u!==a)throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be of type ${a}. Received type ${typeof u}.`);if(typeof u=="string"&&u.length===0)throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be a non-empty string. The value received is empty. If using an environment variable, check that it is set correctly.`);if(typeof u=="number"&&isNaN(u))throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be valid number. If using an environment variable, check that it is set correctly.`)}},"validate"),n=s((o,a)=>(r(o,a,!0),{optional:n,required:i}),"optional"),i=s((o,a)=>(r(o,a,!1),{optional:n,required:i}),"required");return{optional:n,required:i}}s(hR,"optionValidator");pa.optionValidator=hR});var ap=g(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.StripeWebhookVerificationInboundPolicy=void 0;var fR=ae(),mR=$g(),yR=$t(),gR=s(async(e,t,r,n)=>{(0,yR.optionValidator)(r,n).required("signingSecret","string").optional("tolerance","number");let i=e.headers.get("stripe-signature");try{let o=await e.clone().text();await(0,mR.constructEventAsync)(o,i,r.signingSecret)}catch(o){return t.log.error("Error validating stripe webhook",o),fR.HttpProblems.badRequest(e,t,{title:"Webhook Error",detail:o.message})}return e},"StripeWebhookVerificationInboundPolicy");ha.StripeWebhookVerificationInboundPolicy=gR});var Vg=g(cp=>{"use strict";Object.defineProperty(cp,"__esModule",{value:!0});var jg=C(),bR={getSubscription:async({subscriptionId:e,stripeSecretKey:t,logger:r})=>{let n=await fetch(`https://api.stripe.com/v1/subscriptions/${e}`,{headers:{Authorization:`Bearer ${t}`}}),i=await n.json();if(n.status!==200){let o="Error retrieving subscription from Stripe API.";throw r.error(o,i),new jg.RuntimeError(o)}return i},getCustomer:async({customerId:e,stripeSecretKey:t,logger:r})=>{let n=await fetch(`https://api.stripe.com/v1/customers/${e}`,{headers:{Authorization:`Bearer ${t}`}}),i=await n.json();if(n.status!==200){let o="Error retrieving customer from Stripe API.";throw r.error(o,i),new jg.RuntimeError(o)}}};cp.default=bR});var Bg=g(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.isStripeWebhookEvent=void 0;var Gg=bt();function _R(e){return e!==null&&typeof e=="object"&&"id"in e&&(0,Gg.isString)(e.id)&&"type"in e&&(0,Gg.isString)(e.type)}s(_R,"isStripeWebhookEvent");fa.isStripeWebhookEvent=_R});var Kg=g(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.MeteringPlugin=void 0;var ER=gt(),up=class extends ER.SystemRuntimePlugin{static{s(this,"MeteringPlugin")}};ma.MeteringPlugin=up});var Wg=g(xn=>{"use strict";var wR=xn&&xn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xn,"__esModule",{value:!0});xn.StripeMeteringPlugin=void 0;var ya=yn(),je=C(),vR=Dt(),TR=ap(),Ni=ae(),SR=Yt(),IR=zr(),PR=ku(),AR=st(),Jg=Ke(),dp=Y(),zg=vi(),RR=wR(Vg()),OR=Bg(),NR=bt(),xR=Kg(),CR="checkout.session.completed",lp=class extends xR.MeteringPlugin{static{s(this,"StripeMeteringPlugin")}options;constructor(t){super(),this.options=t}registerRoutes(t,r){let n=s(async(c,u)=>{if(this.options.__testMode===!0)return u.log.warn("Received Stripe webhook event of in test mode."),"success";let{meteringBucketId:l,apiKeyBucketName:d}=this.options;if(!l)if(ya.environment.ZUPLO_METERING_SERVICE_BUCKET_ID)l=ya.environment.ZUPLO_METERING_SERVICE_BUCKET_ID;else throw new je.ConfigurationError("StripeMeteringPlugin - No 'meteringBucketId' property provided");if(!d)if(ya.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME)d=ya.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME;else throw new je.ConfigurationError("StripeMeteringPlugin - No 'apiKeyBucketName' property provided");if(!this.options.zuploAccountApiKey)throw new je.ConfigurationError("StripeMeteringPlugin - No 'zuploAccountApiKey' property provided");if(!dp.Environment.instance.build.ACCOUNT_NAME)throw new je.SystemError("Build environment is not configured correctly. Expected 'ACCOUNT_NAME' to be set.");let p=this.options.meteringBucketRegion??"us-central1";if(!UR(p))throw new je.ConfigurationError(`StripeMeteringPlugin - The value '${p}' on the property 'meteringBucketRegion' is invalid.`);let m=await c.json();if(!(0,OR.isStripeWebhookEvent)(m))return Ni.HttpProblems.badRequest(c,u,{detail:"The received body was not in the expected format."});u.log.info(`Received Stripe webhook event of type '${m.type}' with ID '${m.id}'.`);let h,y,E;if(m.type===CR){let ne=m,ve=ne.data?.object?.subscription;if(!ve)throw new je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.id' to be the subscription ID.");if(y=ne.data?.object?.client_reference_id,E=ne.data?.object?.customer_email,!y)throw new je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.client_reference_id' to be the customer sub.");if(!E)throw new je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.customer_email' to be the customer email.");if(!ve)throw new je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.id' to be the subscription ID.");h=await RR.default.getSubscription({logger:u.log,stripeSecretKey:this.options.stripeSecretKey,subscriptionId:ve})}else return Ni.HttpProblems.ok(c,u,{detail:"Event was ignored by Stripe metering plugin webhook."});let T=h.id,S=h.customer,U=h.items?.data.find(ne=>ne.object==="subscription_item");if(!U||!U.id)throw new je.RuntimeError("Invalid Stripe API result. Expected subscription to contain at least one subscription_item.");let $=U.plan;if(!$||!$.product)throw new je.RuntimeError("Invalid Stripe API result. Expected subscription_item to have a plan.");let O=$.product,te=await LR({apiKeyBucketName:d,stripeProductId:O,stripeSubscriptionId:T,stripeCustomerId:S,managerEmail:E,managerSub:y,context:u});if(!te)return Ni.HttpProblems.internalServerError(c,u,{detail:"No consumer was created, skipping creation of subscription"});let re="routes.oas.json";try{await DR({context:u,stripeProductId:O,stripeSubscriptionId:T,customerKey:te,productKey:re,meteringBucketId:l,meteringBucketRegion:p,customerExternalId:S})}catch(ne){return Ni.HttpProblems.internalServerError(c,u,{detail:ne.message})}return Ni.HttpProblems.ok(c,u)},"stripeWebhookHandler"),i=(0,IR.createInternalPolicyProcessor)({inboundPolicies:[{handler:TR.StripeWebhookVerificationInboundPolicy,options:{signingSecret:this.options.webhooks.signingSecret,tolerance:this.options.webhooks.tolerance}}]}),o=new vR.Pipeline({processors:[SR.metricsProcessor,i],handler:n,gateway:r}),a=new AR.SystemRouteConfiguration({label:"PLUGIN_STRIPE_WEBHOOK_ROUTE",methods:["POST"],path:this.options.webhooks.routePath??"/__plugins/stripe/webhooks",systemRouteName:PR.SystemRouteName.StripePlugin});t.addRoute(a,o.execute)}};xn.StripeMeteringPlugin=lp;async function LR({apiKeyBucketName:e,stripeSubscriptionId:t,stripeProductId:r,stripeCustomerId:n,managerEmail:i,managerSub:o,context:a}){let{authApiJWT:c}=dp.Environment.instance,u="https://api-key-management-service-eq7z4lly2a-ue.a.run.app",l=new URL(`/v1/buckets/${e}/consumers`,u);l.searchParams.set("with-api-key","true");let d=crypto.randomUUID(),p={name:d,description:`Consumer for Stripe subscription ${t}`,tags:{subscriptionExternalId:t,planExternalId:r},metadata:{stripeSubscriptionId:t,stripeProductId:r,stripeCustomerId:n},managers:[{sub:o,email:i}]},m=await(0,zg.fetchRetry)({retryDelayMs:5,retries:2,logger:Jg.SystemLogMap.getLogger(a)},l.toString(),{method:"POST",headers:{Authorization:`Bearer ${c}`,"content-type":"application/json"},body:JSON.stringify(p)}),h=await m.json();if(m.status!==200){let y="Error creating API Key Consumer";throw a.log.error(y,h),new je.RuntimeError(y)}return a.log.info("Successfully created API Key Consumer",{consumerId:d,stripeSubscriptionId:t,stripeProductId:r}),d}s(LR,"createConsumer");async function DR({context:e,stripeSubscriptionId:t,stripeProductId:r,customerKey:n,productKey:i,meteringBucketId:o,meteringBucketRegion:a,customerExternalId:c}){let u={status:"active",type:"periodic",renewalStrategy:"monthly",region:a,subscriptionExternalId:t,planExternalId:r,customerKey:n,productKey:i,customerExternalId:c},{authApiJWT:l,meteringServiceUrl:d}=dp.Environment.instance;if(!(0,NR.isNonEmptyString)(l))throw new je.SystemError("No Zuplo JWT token set.");let p=await(0,zg.fetchRetry)({retryDelayMs:5,retries:2,logger:Jg.SystemLogMap.getLogger(e)},`${d}/internal/v1/metering/${o}/subscriptions`,{headers:{Authorization:`Bearer ${l}`,"Content-Type":"application/json","zp-rid":e.requestId},method:"POST",body:JSON.stringify(u)});if(!p.ok){let m="Error creating metering subscription.",h;try{h=await p.json()}catch{h={status:p.status,statusText:p.statusText}}throw e.log.error(m,h),new je.RuntimeError(m)}e.log.info("Successfully created/updated metering subscription.",u)}s(DR,"saveSubscription");function UR(e){return e!==null&&typeof e=="string"&&["us-central1","europe-west4"].includes(e)}s(UR,"isMetricsRegion")});var eb=g(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.AmberfloMeteringInboundPolicy=Cn.AmberfloMeteringPolicy=void 0;var Qg=C(),MR=Te(),Yg=oi(),Xg=new WeakMap,Zg={},pp=class{static{s(this,"AmberfloMeteringPolicy")}static setRequestProperties(t,r){Xg.set(t,r)}};Cn.AmberfloMeteringPolicy=pp;async function kR(e,t,r,n){if(!r.statusCodes)throw new Qg.ConfigurationError(`Invalid AmberfloMeterInboundPolicy '${n}': options.statusCodes must be an array of HTTP status code numbers`);let i=Array.isArray(r.statusCodes)?r.statusCodes:(0,Yg.statusCodesStringToNumberArray)(r.statusCodes);return t.addResponseSendingFinalHook(async o=>{if(i.includes(o.status)){let a=Xg.get(t),c=r.customerId;if(r.customerIdPropertyPath){if(!e.user)throw new Qg.RuntimeError(`Unable to apply customerIdPropertyPath '${r.customerIdPropertyPath}' as request.user is 'undefined'.`);c=(0,Yg.getValueFromRequestUser)(e.user,r.customerIdPropertyPath,"customerIdPropertyPath")}let u=a?.customerId??c;if(!u){t.log.error(`Error in AmberfloMeterInboundPolicy '${n}': customerId cannot be undefined`);return}let l=a?.meterApiName??r.meterApiName;if(!l){t.log.error(`Error in AmberfloMeterInboundPolicy '${n}': meterApiName cannot be undefined`);return}let d=a?.meterValue??r.meterValue;if(!d){t.log.error(`Error in AmberfloMeterInboundPolicy '${n}': meterValue cannot be undefined`);return}let p={customerId:u,meterApiName:l,meterValue:d,meterTimeInMillis:Date.now(),dimensions:Object.apply(r.dimensions??{},a?.dimensions)},m=Zg[r.apiKey];if(!m){let h=r.apiKey,y=e.headers.get("zm-test-id")??"";m=new MR.BatchDispatch("amberflo-ingest-meter",10,async E=>{try{let T=r.url??"https://app.amberflo.io/ingest",S=await fetch(T,{method:"POST",body:JSON.stringify(E),headers:{"content-type":"application/json","x-api-key":h,"zm-test-id":y}});S.ok||t.log.error(`Unexpected response in AmberfloMeteringInboundPolicy '${n}'. ${S.status}: ${await S.text()}`)}catch(T){throw t.log.error(`Error in AmberfloMeteringInboundPolicy '${n}': ${T.message}`),T}}),Zg[h]=m}m.enqueue(p),t.waitUntil(m.waitUntilFlushed())}}),e}s(kR,"AmberfloMeteringInboundPolicy");Cn.AmberfloMeteringInboundPolicy=kR});var hp=g(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.sha256=void 0;async function HR(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest({name:"SHA-256"},t);return[...new Uint8Array(r)].map(i=>i.toString(16).padStart(2,"0")).join("")}s(HR,"sha256");ga.sha256=HR});var jt=g(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.getPolicyCacheName=void 0;var FR=hp(),tb=new Map;async function qR(e,t){let r,n=tb.get(e);return n!==void 0?r=n:(r=`zuplo-policy-${await(0,FR.sha256)(JSON.stringify({policyName:e,options:t}))}`,tb.set(e,r)),r}s(qR,"getPolicyCacheName");ba.getPolicyCacheName=qR});var yp=g(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.ApiKeyInboundPolicy=void 0;var $R=jt(),jR=Jt(),rb=yn(),fp=C(),VR=Ut(),nb=Ke(),mp=Y(),GR=vi(),ib="key-metadata-cache-type";function BR(e,t){return t.authScheme===""?e:e.replace(`${t.authScheme} `,"")}s(BR,"getKeyValue");async function KR(e,t,r,n){if(!r.bucketName)if(rb.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME)r.bucketName=rb.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME;else throw new fp.ConfigurationError(`ApiKeyInboundPolicy '${n}' - no bucketName property provided`);let i={authHeader:r.authHeader??"authorization",authScheme:r.authScheme??"Bearer",bucketName:r.bucketName,cacheTtlSeconds:r.cacheTtlSeconds??60,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests??!1,disableAutomaticallyAddingKeyHeaderToOpenApi:r.disableAutomaticallyAddingKeyHeaderToOpenApi??!1};if(i.cacheTtlSeconds<60)throw new fp.ConfigurationError(`ApiKeyInboundPolicy '${n}' - minimum cacheTtlSeconds value is 60s, '${i.cacheTtlSeconds}' is invalid`);let o=s(T=>i.allowUnauthenticatedRequests?e:VR.HttpProblems.unauthorized(e,t,{detail:T}),"unauthorizedResponse"),a=e.headers.get(i.authHeader);if(!a)return o("No Authorization Header");if(!a.toLowerCase().startsWith(i.authScheme.toLowerCase()))return o("Invalid Authorization Scheme");let c=BR(a,i);if(!c||c==="")return o("No key present");let u=await JR(c),l=await(0,$R.getPolicyCacheName)(n,i),d=new jR.MemoryZoneReadThroughCache(l,t),p=await d.get(u);if(p&&p.isValid===!0)return e.user=p.user,e;if(p&&!p.isValid)return p.typeId!==ib&&nb.SystemLogMap.getLogger(t).error(`ApiKeyInboundPolicy '${n}' - cached metadata has invalid typeId '${p.typeId}'`,p),o("Authorization Failed");let m={key:c},h=await(0,GR.fetchRetry)({retryDelayMs:5,retries:2,logger:nb.SystemLogMap.getLogger(t)},`${mp.Environment.instance.apiKeyServiceUrl}/v1/$validate/${i.bucketName}`,{method:"POST",headers:{"content-type":"application/json","zp-rid":t.requestId,"zp-dn":mp.Environment.instance.deploymentName??"unknown","User-Agent":mp.Environment.instance.systemUserAgent},body:JSON.stringify(m)});if(h.status===401)return t.log.info(`ApiKeyInboundPolicy '${n}' - 401 response from Key Service`),o("Authorization Failed");if(h.status!==200){try{let T=await h.text(),S=JSON.parse(T);t.log.error("Unexpected response from key service",S)}catch{t.log.error("Invalid response from key service")}throw new fp.RuntimeError(`ApiKeyInboundPolicy '${n}' - unexpected response from Key Service. Status: ${h.status}`)}let y=await h.json(),E={isValid:!0,typeId:ib,user:{sub:y.name,data:y.metadata}};return e.user=E.user,d.put(u,E,i.cacheTtlSeconds),e}s(KR,"ApiKeyInboundPolicy");_a.ApiKeyInboundPolicy=KR;async function JR(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("")}s(JR,"hashValue")});var ob=g(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.ApiAuthKeyInboundPolicy=void 0;var zR=yp();Ea.ApiAuthKeyInboundPolicy=zR.ApiKeyInboundPolicy});var Vt=g(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.OpenIdJwtInboundPolicy=void 0;var bp=(Is(),no(Ss)),_p=C(),WR=ae(),gp={},QR=s(async(e,t)=>{if(!t.jwkUrl||typeof t.jwkUrl!="string")throw new _p.ConfigurationError("Invalid State - jwkUrl not set");gp[t.jwkUrl]||(gp[t.jwkUrl]=(0,bp.createRemoteJWKSet)(new URL(t.jwkUrl),t.headers?{headers:t.headers}:void 0));let{payload:r}=await(0,bp.jwtVerify)(e,gp[t.jwkUrl],{issuer:t.issuer,audience:t.audience});return r},"jwkVerifier"),YR=s(async(e,t)=>{let r;if(t.secret===void 0)throw new Error("secretVerifier requires secret to be defined");if(typeof t.secret=="string"){let o=new TextEncoder().encode(t.secret);r=new Uint8Array(o)}else r=t.secret;let{payload:n}=await(0,bp.jwtVerify)(e,r,{issuer:t.issuer,audience:t.audience});return n},"secretVerifier"),ZR=s(async(e,t,r,n)=>{let i=e.headers.get("Authorization"),o="bearer ",a=s(m=>WR.HttpProblems.unauthorized(e,t,{detail:m}),"unauthorizedResponse");if(!r.jwkUrl&&!r.secret)throw new _p.ConfigurationError(`OpenIdJwtInboundPolicy policy '${n}': One of 'jwkUrl' or 'secret' options are required.`);if(r.jwkUrl&&r.secret)throw new _p.ConfigurationError(`OpenIdJwtInboundPolicy policy '${n}': Only one of 'jwkUrl' and 'secret' options should be provided.`);let c=r.jwkUrl?QR:YR,l=await s(async()=>{if(!i)return a("No authorization header");if(i.toLowerCase().indexOf(o)!==0)return a("Invalid bearer token format for authorization header");let m=i.substring(o.length);if(!m||m.length===0)return a("No bearer token on authorization header");try{return await c(m,r)}catch(h){let y=new URL(e.url);return"code"in h&&h.code==="ERR_JWT_EXPIRED"?t.log.warn(`Expired token used on url: ${y.pathname} `,h):t.log.warn(`Invalid token on: ${e.method} ${y.pathname}`,h),a("Invalid token")}},"getJwtOrRejectedResponse")();if(l instanceof Response)return r.allowUnauthenticatedRequests===!0?e:l;let d=r.subPropertyName??"sub",p=l[d];return p?(e.user={sub:p,data:l},e):a(`Token is not valid, no '${d}' property found.`)},"OpenIdJwtInboundPolicy");wa.OpenIdJwtInboundPolicy=ZR});var sb=g(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.Auth0JwtInboundPolicy=void 0;var XR=Vt(),e0=s(async(e,t,r,n)=>(0,XR.OpenIdJwtInboundPolicy)(e,t,{issuer:`https://${r.auth0Domain}/`,audience:r.audience,jwkUrl:`https://${r.auth0Domain}/.well-known/jwks.json`,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n),"Auth0JwtInboundPolicy");va.Auth0JwtInboundPolicy=e0});var ab=g(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.BasicAuthInboundPolicy=void 0;var t0=ae(),r0=s(async(e,t,r)=>{let n=e.headers.get("Authorization"),i="basic ",o=s(l=>t0.HttpProblems.unauthorized(e,t,{detail:l}),"unauthorizedResponse"),c=await s(async()=>{if(!n)return await o("No Authorization header");if(n.toLowerCase().indexOf(i)!==0)return await o("Invalid Basic token format for Authorization header");let l=n.substring(i.length);if(!l||l.length===0)return await o("No username:password provided");let d=atob(l).normalize(),p=d.indexOf(":");if(p===-1||/[\0-\x1F\x7F]/.test(d))return await o("Invalid basic token value - see https://tools.ietf.org/html/rfc5234#appendix-B.1");let m=d.substring(0,p),h=d.substring(p+1),y=r.accounts.find(E=>E.username===m&&E.password===h);return y||await o("Invalid username or password")},"getAccountOrRejectedResponse")();if(c instanceof Response)return r.allowUnauthenticatedRequests?e:c;let u=c.username;return e.user={sub:u,data:c.data},e},"BasicAuthInboundPolicy");Ta.BasicAuthInboundPolicy=r0});var cb=g(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.CachingInboundPolicy=void 0;var n0=jt(),i0=["cdn-cache-control","cloudflare-cdn-cache-control","surrogate-control","cache-tag","expires"];async function o0(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("")}s(o0,"digestMessage");var s0=s(async(e,t)=>{let r=[...t.dangerouslyIgnoreAuthorizationHeader===!0?[]:["authorization"],...t.headers??[]],n=[];for(let[d,p]of e.headers.entries())r.includes(d)&&n.push({key:d.toLowerCase(),value:p});n.sort((d,p)=>d.key.localeCompare(p.key));let i=await o0(JSON.stringify(n)),o=new URL(e.url),a=new URLSearchParams(o.searchParams);a.set("_z-hdr-dgst",i);let c=t.cacheHttpMethods?.includes(e.method.toUpperCase())&&e.method.toUpperCase()!=="GET";c&&a.set("_z-original-method",e.method);let u=`${o.origin}${o.pathname}?${a}`;return new Request(u,{method:c?"GET":e.method})},"createCacheKeyRequest");async function a0(e,t,r,n){let i=await(0,n0.getPolicyCacheName)(n,r),o=await caches.open(i),a=r?.cacheHttpMethods?.map(l=>l.toUpperCase())??["GET"],c=await s0(e,r),u=await o.match(c);return u||(t.addEventListener("responseSent",l=>{try{let d=r.statusCodes??[200,206,301,302,303,404,410],p=l.response.clone();if(!d.includes(p.status)||!a.includes(e.method.toUpperCase()))return;let m=r?.expirationSecondsTtl??60,h=new Response(p.body,p);i0.forEach(y=>h.headers.delete(y)),h.headers.set("cache-control",`s-maxage=${m}`),t.waitUntil(o.put(c,h))}catch(d){t.log.error(`Error in caching-inbound-policy '${n}': "${d.message}"`,d)}}),e)}s(a0,"CachingInboundPolicy");Sa.CachingInboundPolicy=a0});var ub=g(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.ChangeMethodInboundPolicy=void 0;var c0=C(),u0=He(),l0=s(async(e,t,r,n)=>{if(!r.method)throw new c0.ConfigurationError(`ChangeMethodInboundPolicy '${n}' options.method must be valid HttpMethod`);return new u0.ZuploRequest(e,{method:r.method})},"ChangeMethodInboundPolicy");Ia.ChangeMethodInboundPolicy=l0});var lb=g(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.ClearHeadersInboundPolicy=void 0;var d0=He(),p0=s(async(e,t,r)=>{let n=[...r.exclude??[]],i=new Headers;return n.forEach(a=>{let c=e.headers.get(a);c&&i.set(a,c)}),new d0.ZuploRequest(e,{headers:i})},"ClearHeadersInboundPolicy");Pa.ClearHeadersInboundPolicy=p0});var db=g(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.ClearHeadersOutboundPolicy=void 0;var h0=s(async(e,t,r,n)=>{let i=[...n.exclude??[]],o=new Headers;return i.forEach(c=>{let u=e.headers.get(c);u&&o.set(c,u)}),new Response(e.body,{headers:o,status:e.status,statusText:e.statusText})},"ClearHeadersOutboundPolicy");Aa.ClearHeadersOutboundPolicy=h0});var pb=g(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.ClerkJwtInboundPolicy=void 0;var f0=Vt(),m0=s(async(e,t,r,n)=>{let i=new URL(r.frontendApiUrl.startsWith("https://")||r.frontendApiUrl.startsWith("http://")?r.frontendApiUrl:`https://${r.frontendApiUrl}`),o=new URL(i);return o.pathname="/.well-known/jwks.json",(0,f0.OpenIdJwtInboundPolicy)(e,t,{issuer:i.href.slice(0,-1),jwkUrl:o.toString(),allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n)},"ClerkJwtInboundPolicy");Ra.ClerkJwtInboundPolicy=m0});var fb=g(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.CognitoJwtInboundPolicy=void 0;var hb=C(),y0=Vt(),g0=s(async(e,t,r,n)=>{if(!r.userPoolId)throw new hb.ConfigurationError("userPoolId must be set in the options for CognitoJwtInboundPolicy");if(!r.region)throw new hb.ConfigurationError("region must be set in the options for CognitoJwtInboundPolicy");return(0,y0.OpenIdJwtInboundPolicy)(e,t,{issuer:`https://cognito-idp.${r.region}.amazonaws.com/${r.userPoolId}`,jwkUrl:`https://cognito-idp.${r.region}.amazonaws.com/${r.userPoolId}/.well-known/jwks.json`,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n)},"CognitoJwtInboundPolicy");Oa.CognitoJwtInboundPolicy=g0});var yb=g(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.CompositeInboundPolicy=void 0;var b0=C(),_0=mn(),mb=zr(),E0=s(async(e,t,r,n)=>{if(!r.policies||r.policies.length===0)throw new b0.ConfigurationError(`CompositeInboundPolicy '${n}' must have valid policies defined`);let i=_0.Gateway.instance,o=(0,mb.getInboundPolicyHandlerAndOptions)(r.policies,i?.routeData.policies);return(0,mb.toStackedInboundHandler)(o)(e,t)},"CompositeInboundPolicy");Na.CompositeInboundPolicy=E0});var bb=g(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.CreditsMeteringInboundPolicy=void 0;var xi=ae(),gb=Y(),w0=s(async(e,t,r)=>{let n=e.user;if(!n)return xi.HttpProblems.unauthorized(e,t,{title:"Unable to check subscription for anonymous user",detail:"No user data on request"});let{sub:i}=n;if(!r.bucketId)return xi.HttpProblems.unauthorized(e,t,{title:"Metering bucket not configured",detail:"Specify one using the bucketId option on the policy"});let o=r.bucketId,a=await v0(o,i,t);if(!a)return xi.HttpProblems.unauthorized(e,t,{title:"No valid, active subscription found"});if(!a.quotas)return xi.HttpProblems.forbidden(e,t,{title:"Insufficient credits"});for(let c of Object.keys(a.quotas))if(a.quotas[c]<=0)return xi.HttpProblems.forbidden(e,t,{title:"Insufficient credits"});return t.custom.subscription=a,t.addResponseSendingFinalHook(async()=>{let c=t.custom.meters,u={};for(let l of Object.keys(c))u[l]=c[l];await T0(o,a.id,u,t)}),e},"CreditsMeteringInboundPolicy");xa.CreditsMeteringInboundPolicy=w0;async function v0(e,t,r){let{authApiJWT:n,meteringServiceUrl:i}=gb.Environment.instance,o=new URL(`${i}/internal/v1/metering/${e}/subscriptions`);o.search=new URLSearchParams({customerKey:t,status:"active"}).toString();let a=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${n}`,"zp-rid":r.requestId}});if(!a.ok)throw new Error(`Error retrieving subscriptions for credits metering ': ${a.status} - ${await a.text()}`);let c=await a.json();if(c.data.length!==0)return c.data.length>1&&r.log.warn(`Found more than one active subscription for customer ${t} -- using the first one.`),c.data[0]}s(v0,"getSubscription");async function T0(e,t,r,n){let{authApiJWT:i,meteringServiceUrl:o}=gb.Environment.instance,a=new URL(`${o}/internal/v1/metering/${e}/subscriptions/${t}/quotas/consume`),c=await fetch(a,{method:"POST",body:JSON.stringify({meters:r}),headers:{Authorization:`Bearer ${i}`,"zp-rid":n.requestId}});c.ok||n.log.error(`Error consuming subscription quotas for credits metering ': ${c.status} - ${await c.text()}`)}s(T0,"consumeSubscription")});var _b=g(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.CurityPhantomTokenInboundPolicy=void 0;var S0=jt(),I0=Jt(),Ca=ae(),P0=s(async(e,t,r,n)=>{let i=e.headers.get("Authorization");if(!i)return Ca.HttpProblems.unauthorized(e,t,{detail:"No authorization header"});let o=A0(i);if(!o)return Ca.HttpProblems.unauthorized(e,t,{detail:"Failed to parse token from Authorization header"});let a=await(0,S0.getPolicyCacheName)(n,r),c=new I0.MemoryZoneReadThroughCache(a,t),u=await c.get(o);if(!u){let l=await fetch(r.introspectionUrl,{headers:{Authorization:"Basic "+btoa(`${r.clientId}:${r.clientSecret}`),Accept:"application/jwt","Content-Type":"application/x-www-form-urlencoded"},method:"POST",body:"token="+o+"&token_type_hint=access_token"}),d=await l.text();if(l.status===200)u=d,c.put(o,u,r.cacheDurationSeconds??600);else return l.status>=500?(t.log.error(`Error introspecting token - ${l.status}: '${d}'`),Ca.HttpProblems.internalServerError(e,t,{detail:"Problem encountered authorizing the HTTP request"})):Ca.HttpProblems.unauthorized(e,t)}return e.headers.set("Authorization",`Bearer ${u}`),e},"CurityPhantomTokenInboundPolicy");La.CurityPhantomTokenInboundPolicy=P0;function A0(e){return e.split(" ")[0]==="Bearer"?e.split(" ")[1]:null}s(A0,"getToken")});var Eb=g(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.FirebaseJwtInboundPolicy=void 0;var R0=$t(),O0=Vt(),N0=s(async(e,t,r,n)=>((0,R0.optionValidator)(r,n).required("projectId","string").optional("allowUnauthenticatedRequests","boolean"),(0,O0.OpenIdJwtInboundPolicy)(e,t,{issuer:`https://securetoken.google.com/${r.projectId}`,audience:r.projectId,jwkUrl:"https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n)),"FirebaseJwtInboundPolicy");Da.FirebaseJwtInboundPolicy=N0});var wb=g(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.FormDataToJsonInboundPolicy=void 0;var x0=He(),C0=s(async(e,t,r)=>{let n="application/x-www-form-urlencoded",i="multipart/form-data",o=e.headers.get("content-type")?.toLowerCase();if(!o||![i,n].includes(o))return r&&r.badRequestIfNotFormData?new Response(`Bad Request - expected content-type '${n}' or ${i}`,{status:400,statusText:"Bad Request"}):e;let a=await e.formData();if(r&&r.optionalHoneypotName&&a.get(r.optionalHoneypotName)!=="")return new Response("Bad Request",{status:400,statusText:"Bad Request"});let c={};for(let[d,p]of a)c[d]=p.toString();let u=new Headers(e.headers);return u.set("content-type","application/json"),u.delete("content-length"),new x0.ZuploRequest(e,{body:JSON.stringify(c),headers:u})},"FormDataToJsonInboundPolicy");Ua.FormDataToJsonInboundPolicy=C0});var vb=g(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.GeoFilterInboundPolicy=void 0;var L0=C(),D0=ae(),Ln="__unknown__",U0=s(async(e,t,r,n)=>{let i={allow:{countries:Un(r.allow?.countries,"allow.countries",n),regionCodes:Un(r.allow?.regionCodes,"allow.regionCode",n),asns:Un(r.allow?.asns,"allow.asOrganization",n)},block:{countries:Un(r.block?.countries,"block.countries",n),regionCodes:Un(r.block?.regionCodes,"block.regionCode",n),asns:Un(r.block?.asns,"block.asOrganization",n)},ignoreUnknown:r.ignoreUnknown!==!1},o=t.incomingRequestProperties.country?.toLowerCase()??Ln,a=t.incomingRequestProperties.regionCode?.toLowerCase()??Ln,c=t.incomingRequestProperties.asn?.toString()??Ln,u=i.ignoreUnknown&&o===Ln,l=i.ignoreUnknown&&a===Ln,d=i.ignoreUnknown&&c===Ln,p=i.allow.countries,m=i.allow.regionCodes,h=i.allow.asns;if(p.length>0&&!p.includes(o)&&!u||m.length>0&&!m.includes(a)&&!l||h.length>0&&!h.includes(c)&&!d)return Dn(e,t,n,o,a,c);let y=i.block.countries,E=i.block.regionCodes,T=i.block.asns;return y.length>0&&y.includes(o)&&!u||E.length>0&&E.includes(a)&&!l||T.length>0&&T.includes(c)&&!d?Dn(e,t,n,o,a,c):e},"GeoFilterInboundPolicy");Ma.GeoFilterInboundPolicy=U0;function Dn(e,t,r,n,i,o){return t.log.debug(`Request blocked by GeoFilterInboundPolicy '${r}' (country: '${n}', regionCode: '${i}', asn: '${o}')`),D0.HttpProblems.forbidden(e,t,{geographicContext:{country:n,regionCode:i,asn:o}})}s(Dn,"blockedResponse");function Un(e,t,r){if(typeof e=="string")return e.split(",").map(n=>n.trim().toLowerCase());if(typeof e>"u")return[];if(Array.isArray(e))return e.map(n=>n.trim().toLowerCase());throw new L0.ConfigurationError(`Invalid '${t}' for GeoFilterInboundPolicy '${r}': '${e}', must be a string or string[]`)}s(Un,"toLowerStringArray")});var Tb=g(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.JWTScopeValidationInboundPolicy=void 0;var M0=s(async(e,t,r)=>{let n=e.user?.data.scope.split(" ")||[];if(!s((o,a)=>a.every(c=>o.includes(c)),"scopeChecker")(n,r.scopes)){let o={code:"UNAUTHORIZED",help_url:"https://zup.fail/UNAUTHORIZED",message:`JWT must have all the following scopes: ${r.scopes}`};return new Response(JSON.stringify(o),{status:401,statusText:"Unauthorized",headers:{"content-type":"application/json"}})}return e},"JWTScopeValidationInboundPolicy");ka.JWTScopeValidationInboundPolicy=M0});var Ib=g(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.MockApiInboundPolicy=void 0;var k0=ae(),H0=s(async(e,t,r,n)=>{let i=t.route.raw().responses;if(!i)return Ep(n,e,t,"No responses defined in the OpenAPI document. Add some responses with examples to use this policy.");let o=Object.keys(i),a=[];if(o.length===0)return Ep(n,e,t,"No response object defined under responses in the OpenAPI document. Add some response objects with examples to use this policy.");if(o.forEach(c=>{i[c].content&&Object.keys(i[c].content).forEach(l=>{let d=i[c].content[l].examples;d&&Object.keys(d).forEach(m=>{a.push({responseName:c,contentName:l,exampleName:m,exampleValue:d[m]})})})}),a=a.filter(c=>!(r.responsePrefixFilter&&!c.responseName.startsWith(r.responsePrefixFilter)||r.contentType&&c.contentName!==r.contentType||r.exampleName&&c.exampleName!==r.exampleName)),r.random&&a.length>1){let c=Math.floor(Math.random()*a.length);return Sb(a[c])}else return a.length>0?Sb(a[0]):Ep(n,e,t,"No examples matching the mocking options found in the OpenAPI document. Add examples to the OpenAPI document matching the options for this policy or change the mocking options to match the examples in the OpenAPI document.")},"MockApiInboundPolicy");Ha.MockApiInboundPolicy=H0;function Sb(e){let t=JSON.stringify(e.exampleValue,null,2),r=new Headers;switch(r.set("Content-Type",e.contentName),e.responseName){case"1XX":return new Response(t,{status:100,headers:r});case"2XX":return new Response(t,{status:200,headers:r});case"3XX":return new Response(t,{status:300,headers:r});case"4XX":return new Response(t,{status:400,headers:r});case"5XX":case"default":return new Response(t,{status:500,headers:r});default:return new Response(t,{status:Number(e.responseName),headers:r})}}s(Sb,"generateResponse");var Ep=s((e,t,r,n)=>{let i=`Error in policy: ${e} - On route ${t.method} ${r.route.path}. ${n}`;return k0.HttpProblems.internalServerError(t,r,{detail:i})},"getProblemDetailResponse")});var Nb=g(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.MoesifInboundPolicy=Mn.setMoesifContext=void 0;var F0=C(),q0=Te(),$0="Incoming",j0={logRequestBody:!0,logResponseBody:!0};function Pb(e){let t={};return e.forEach((r,n)=>{t[n]=r}),t}s(Pb,"headersToObject");function Ab(){return new Date().toISOString()}s(Ab,"timestamp");var wp=new WeakMap,V0={};function G0(e,t){let r=wp.get(e);r||(r=V0);let n=Object.assign({...r},t);wp.set(e,n)}s(G0,"setMoesifContext");Mn.setMoesifContext=G0;async function Rb(e,t){let r=e.headers.get("content-type");if(r&&r.indexOf("json")!==0)try{return await e.clone().json()}catch(i){t.log.error(i)}let n=await e.clone().text();return t.log.debug({textBody:n}),n}s(Rb,"readBody");var B0={},vp;function Ob(){if(!vp)throw new F0.RuntimeError("Invalid State - no _lastLogger");return vp}s(Ob,"getLastLogger");function K0(e){let t=B0[e];return t||(t=new q0.BatchDispatch("moesif-inbound",100,async r=>{let n=JSON.stringify(r);Ob().debug("posting",n);let i=await fetch("https://api.moesif.net/v1/events/batch",{method:"POST",headers:{"content-type":"application/json","X-Moesif-Application-Id":e},body:n});i.ok||Ob().error({status:i.status,body:await i.text()})})),t}s(K0,"getDispatcher");async function J0(e,t,r,n){vp=t.log;let i=Ab(),o=Object.assign(j0,r);if(!o.applicationId)throw new Error(`Invalid configuration for MoesifInboundPolicy '${n}' - applicationId is required`);let a=o.logRequestBody?await Rb(e,t):void 0;return t.addResponseSendingFinalHook(async(c,u)=>{let l=K0(o.applicationId),d=e.headers.get("true-client-ip"),p=wp.get(t)??{},m={time:i,uri:e.url,verb:e.method,body:a,ip_address:d??void 0,api_version:p.apiVersion,headers:Pb(e.headers)},h=o.logResponseBody?await Rb(c,t):void 0,y={time:Ab(),status:c.status,headers:Pb(c.headers),body:h},E={request:m,response:y,user_id:p.userId??u.user?.sub,session_token:p.sessionToken,company_id:p.companyId,metadata:p.metadata,direction:$0};l.enqueue(E),t.waitUntil(l.waitUntilFlushed())}),e}s(J0,"MoesifInboundPolicy");Mn.MoesifInboundPolicy=J0});var xb=g(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.OktaJwtInboundPolicy=void 0;var z0=Vt(),W0=s(async(e,t,r,n)=>(0,z0.OpenIdJwtInboundPolicy)(e,t,{issuer:r.issuerUrl,audience:r.audience,jwkUrl:`${r.issuerUrl}/v1/keys`,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n),"OktaJwtInboundPolicy");Fa.OktaJwtInboundPolicy=W0});var Cb=g(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.PropelAuthJwtInboundPolicy=void 0;var Q0=(Is(),no(Ss)),Y0=Vt(),Tp,Z0=s(async(e,t,r,n)=>{if(!Tp)try{Tp=await(0,Q0.importSPKI)(r.verifierKey,"RS256")}catch(i){throw t.log.error("Could not import verifier key"),i}return(0,Y0.OpenIdJwtInboundPolicy)(e,t,{issuer:r.authUrl,secret:Tp,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests,subPropertyName:"user_id"},n)},"PropelAuthJwtInboundPolicy");qa.PropelAuthJwtInboundPolicy=Z0});var Lb=g(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.throwIfStateNotObject=G.throwIfStateNotNumber=G.throwIfStateNotString=G.throwIfStateUndefinedOrNull=G.throwIfStateUndefined=G.throwIfOptionNotObject=G.throwIfOptionNotNumber=G.throwIfOptionNotString=G.throwIfOptionUndefinedOrNull=G.throwIfOptionUndefined=G.OptionTypeError=G.OptionUndefinedError=G.throwIfNotNumber=G.throwIfNotString=G.throwIfUndefinedOrNull=G.throwIfUndefined=G.ArgumentTypeError=G.ArgumentUndefinedError=G.ValidationError=void 0;var Ve=bt(),tt=class extends Error{static{s(this,"ValidationError")}constructor(t){super(t)}};G.ValidationError=tt;var Ci=class extends tt{static{s(this,"ArgumentUndefinedError")}constructor(t){super(`The argument '${t}' is undefined.`)}};G.ArgumentUndefinedError=Ci;var Li=class extends tt{static{s(this,"ArgumentTypeError")}constructor(t,r){super(`The argument '${t}' must be of type '${r}'.`)}};G.ArgumentTypeError=Li;function X0(e,t){if((0,Ve.isUndefined)(e))throw new Ci(t)}s(X0,"throwIfUndefined");G.throwIfUndefined=X0;function Sp(e,t){if((0,Ve.isUndefinedOrNull)(e))throw new Ci(t)}s(Sp,"throwIfUndefinedOrNull");G.throwIfUndefinedOrNull=Sp;function eO(e,t){if(Sp(e,t),!(0,Ve.isString)(e))throw new Li(t,"string")}s(eO,"throwIfNotString");G.throwIfNotString=eO;function tO(e,t){if(Sp(e,t),!(0,Ve.isNumber)(e))throw new Li(t,"number")}s(tO,"throwIfNotNumber");G.throwIfNotNumber=tO;var Di=class extends tt{static{s(this,"OptionUndefinedError")}constructor(t,r,n){super(`The option '${n}' on the ${t} named '${r}' is undefined.`)}};G.OptionUndefinedError=Di;var kn=class extends tt{static{s(this,"OptionTypeError")}constructor(t,r,n,i){super(`The option '${n}' on the ${t} named '${r}' must be of type '${i}'.`)}};G.OptionTypeError=kn;function rO(e,t,r,n){if((0,Ve.isUndefined)(n))throw new Di(e,t,r)}s(rO,"throwIfOptionUndefined");G.throwIfOptionUndefined=rO;function $a(e,t,r,n){if((0,Ve.isUndefinedOrNull)(n))throw new Di(e,t,r)}s($a,"throwIfOptionUndefinedOrNull");G.throwIfOptionUndefinedOrNull=$a;function nO(e,t,r,n){if($a(e,t,r,n),!(0,Ve.isString)(n))throw new kn(e,t,r,"string")}s(nO,"throwIfOptionNotString");G.throwIfOptionNotString=nO;function iO(e,t,r,n){if($a(e,t,r,n),!(0,Ve.isNumber)(n))throw new kn(e,t,r,"number")}s(iO,"throwIfOptionNotNumber");G.throwIfOptionNotNumber=iO;function oO(e,t,r,n){if($a(e,t,r,n),!(0,Ve.isObject)(n))throw new kn(e,t,r,"object")}s(oO,"throwIfOptionNotObject");G.throwIfOptionNotObject=oO;function sO(e,t){if((0,Ve.isUndefined)(e))throw new tt(t)}s(sO,"throwIfStateUndefined");G.throwIfStateUndefined=sO;function ja(e,t){if((0,Ve.isUndefinedOrNull)(e))throw new tt(t)}s(ja,"throwIfStateUndefinedOrNull");G.throwIfStateUndefinedOrNull=ja;function aO(e,t){if(ja(e,t),!(0,Ve.isString)(e))throw new tt(t);return!0}s(aO,"throwIfStateNotString");G.throwIfStateNotString=aO;function cO(e,t){if(ja(e,t),!(0,Ve.isNumber)(e))throw new tt(t);return!0}s(cO,"throwIfStateNotNumber");G.throwIfStateNotNumber=cO;function uO(e,t){if(ja(e,t),!(0,Ve.isObject)(e))throw new tt(t);return!0}s(uO,"throwIfStateNotObject");G.throwIfStateNotObject=uO});var Db=g(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.InMemoryRedisClient=Hn.StandardRedisClient=void 0;var Ip=C(),Va=Lb(),Pp=class e{static{s(this,"StandardRedisClient")}static instance;redisClientUrl;clientAuthToken;userAgent;deploymentName;constructor(t,r,n,i){this.redisClientUrl=t,this.clientAuthToken=r,this.deploymentName=n,this.userAgent=i}static initialize(t,r,n,i){return(0,Va.throwIfNotString)(t,"redisClientUrl"),(0,Va.throwIfNotString)(r,"clientAuthToken"),e.instance||(e.instance=new e(t,r,n,i)),e.instance}isEnabled(){return this.redisClientUrl!==void 0&&this.clientAuthToken!==void 0}async fetch({url:t,body:r,method:n,requestId:i}){(0,Va.throwIfNotString)(t,"url");let o=await fetch(`${this.redisClientUrl}${t}`,{method:n,body:r,headers:{"content-type":"application/json",authorization:`Bearer ${this.clientAuthToken}`,"zp-rid":i,"zp-dn":this.deploymentName,"User-Agent":this.userAgent}}),a=o.headers.get("Content-Type")?.includes("application/json")?await o.json():await o.text();if(o.ok)return a;throw o.status===401?new Ip.SystemError("Redis client failed with 401: Unauthorized"):new Ip.SystemError(`Redis client failed with (${o.status}): ${typeof a=="string"?a:JSON.stringify(a,null,2)}`)}};Hn.StandardRedisClient=Pp;var Ap=class{static{s(this,"InMemoryRedisClient")}keyValueStore;constructor(){this.keyValueStore=new Map}isEnabled(){return!0}fetch({url:t,body:r,method:n}){if((0,Va.throwIfNotString)(t,"url"),n==="POST"&&t==="/rate-limit"){let{incrBy:i,expire:o,key:a}=JSON.parse(r),c=Date.now()+o*1e3,u=this.keyValueStore.get(a);u?Date.now()>u.expiresAt?this.keyValueStore.set(a,{value:i,expiresAt:c}):this.keyValueStore.set(a,{value:u.value+i,expiresAt:u.expiresAt}):this.keyValueStore.set(a,{value:i,expiresAt:c});let l=this.keyValueStore.get(a);return Promise.resolve({count:l.value,ttlSeconds:Math.round((l.expiresAt-Date.now())/1e3)})}throw new Ip.SystemError("The in-memory redis client only supports /rate-limit calls")}};Hn.InMemoryRedisClient=Ap});var Fb=g(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.RateLimitInboundPolicy=void 0;var lO=Sr(),dO=jt(),pO=ti(),Rt=C(),hO=ae(),Ub=Ke(),Ui=Y(),Mb=Db(),kb=bt(),Ga=(0,lO.debug)("zuplo:policies:RateLimitInboundPolicy"),fO="strict",mO=s(e=>{let t=e.headers.get("cf-connecting-ip")??e.headers.get("true-client-ip");if(t)return t;let r=e.headers.get("x-forwarded-for");return r?r.split(",")[0]:"127.0.0.1"},"getRealIP"),yO=s(async e=>({key:`ip-${mO(e)}`}),"getIP"),gO=s(async e=>({key:`user-${e.user?.sub??"anonymous"}`}),"getUser"),bO=s(async()=>({key:"all-2d77ce9d-9a3c-4206-9ab2-668cfd271095"}),"getAll"),Ba;function _O(e,t){let r;if(Ba)return Ba;if(Ui.Environment.instance.isLocalDevelopment)return t.info("Using in-memory redis client for local development."),r=new Mb.InMemoryRedisClient,Ba=r,r;let{authApiJWT:n,redisURL:i}=Ui.Environment.instance;if(!(0,kb.isString)(i))throw new Rt.SystemError(`RateLimitInboundPolicy '${e}' - rate limit service URL not configured`);if(!(0,kb.isString)(n))throw new Rt.SystemError(`RateLimitInboundPolicy '${e}' - service authentication not configured`);if(i&&(r=Mb.StandardRedisClient.initialize(i,n,Ui.Environment.instance.deploymentName??"unknown",Ui.Environment.instance.systemUserAgent)),!r||!r.isEnabled())throw new Rt.SystemError(`RateLimitInboundPolicy '${e}' - no redis ('${r}') or redis.isEnabled ('${r?.isEnabled}) is false`);return Ba=r,r}s(_O,"getRedisClient");async function Hb(e,t,r,n,i){let o=Math.floor(t*60);return await r.fetch({url:"/rate-limit",method:"POST",body:JSON.stringify({incrBy:1,expire:o,key:e}),requestId:i})}s(Hb,"getCountAndUpdateExpiry");function EO(e,t){let r;if(e.rateLimitBy==="function"){if(!e.identifier)throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - If rateLimitBy set to 'function' options.identifier must be specified`);if(!e.identifier.module)throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - If rateLimitBy set to 'function' options.identifier.module must be specified`);if(!e.identifier.export)throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - If rateLimitBy set to 'function' options.identifier.export must be specified`);if(r=e.identifier.module[e.identifier.export],!r||typeof r!="function")throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - Custom rate limit function must be a valid function`)}return s(async(i,o,a)=>{let c=await r(i,o,a);if(!c.key){let u=`RateLimitInboundPolicy '${a}' - Custom rate limit function must return a valid key property '${JSON.stringify(c,null,2)}'`;throw o.log.error(u),new Rt.RuntimeError(u)}return c},"outerFunction")}s(EO,"wrapUserFunction");var wO="Retry-After",vO=s(async(e,t,r,n)=>{let i=Date.now(),o=Ub.SystemLogMap.getLogger(t),a=s((u,l)=>{if(r.throwOnFailure)throw new Rt.SystemError(u,{cause:l});o.error(u,l)},"throwOrLog"),c=s((u,l)=>{let d={};return(!u||u==="retry-after")&&(d[wO]=l.toString()),hO.HttpProblems.tooManyRequests(e,t,void 0,d)},"rateLimited");try{let l={function:EO(r,n),user:gO,ip:yO,all:bO}[r.rateLimitBy],d=await l(e,t,n),p=d.key,m=d.requestsAllowed??r.requestsAllowed,h=d.timeWindowMinutes??r.timeWindowMinutes,y=r.headerMode??"retry-after",E=_O(n,o),S=`bucket/${Ui.Environment.instance.build.BUILD_ID}/${n}/${p}`;if((r.mode??fO)==="async"){let O=await(0,dO.getPolicyCacheName)(n,r),te=new pO.ZoneCache(O,{logger:Ub.SystemLogMap.getLogger(t)}),re=Hb(S,h,E,o,t.requestId),ne=await te.get(S);if(ne!==void 0&&ne<=Date.now()){Ga(`RateLimitInboundPolicy '${n}' - returning 429 from cache for '${S}' (async mode)`);let ve=Math.round((ne-Date.now())/1e3);return c(y,ve)}return t.addEventListener("responseSending",ve=>{try{let w=ve,H=w.mutableResponse;w.mutableResponse=(async()=>{let Le=await re;if(Le.count>m){let au=Date.now()+Le.ttlSeconds*1e3,AE=te.put(S,au,Le.ttlSeconds).catch(mh=>{throw o.error(new Rt.SystemError("Error caching rate limit result.",{cause:mh})),mh});return t.waitUntil(AE),Ga(`RateLimitInboundPolicy '${n}' - returning 429 from redis for '${S}' (async mode)`),c(y,Le.ttlSeconds)}return H})()}catch(w){o.error(`RateLimitInboundPolicy '${n}' -error in responseSending`,w)}}),e}let $=await Hb(S,h,E,o,t.requestId);return $.count>m?(Ga(`RateLimitInboundPolicy '${n}' - returning 429 from redis for '${S}' (strict mode)`),c(y,$.ttlSeconds)):e}catch(u){return a(u.message,u),e}finally{let u=Date.now()-i;Ga(`RateLimitInboundPolicy '${n}' - latency ${u}ms`)}},"RateLimitInboundPolicy");Ka.RateLimitInboundPolicy=vO});var Vb=g(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.ReadmeMetricsInboundPolicy=void 0;var TO=Te(),Rp=Y(),qb=oi(),Op;function $b(e){let t=[];for(let[r,n]of e)t.push({name:r,value:n});return t}s($b,"headersToNameValuePairs");function SO(e){let t=[];return Object.entries(e).forEach(([r,n])=>{t.push({name:r,value:n})}),t}s(SO,"queryToNameValueParis");function IO(e){if(e===null)return;let t=parseFloat(e);if(!isNaN(t))return t}s(IO,"parseIntOrUndefined");var jb={};async function PO(e,t,r,n){let i=new Date,o=Date.now();return Op||(Op={name:"zuplo",version:Rp.Environment.instance.build.ZUPLO_VERSION,comment:`zuplo/${Rp.Environment.instance.build.ZUPLO_VERSION}`}),t.addResponseSendingFinalHook(async a=>{try{let c=r.userLabelPropertyPath&&e.user?(0,qb.getValueFromRequestUser)(e.user,r.userLabelPropertyPath,"userLabelPropertyPath"):e.user?.sub,u=r.userEmailPropertyPath&&e.user?(0,qb.getValueFromRequestUser)(e.user,r.userEmailPropertyPath,"userEmailPropertyPath"):void 0,l={clientIPAddress:e.headers.get("true-client-ip")??"",development:r.development!==void 0?r.development:Rp.Environment.instance.isDeno,group:{label:c,email:u,id:e.user?.sub??"anonymous"},request:{log:{creator:Op,entries:[{startedDateTime:i.toISOString(),time:Date.now()-o,request:{method:e.method,url:r.useFullRequestPath?new URL(e.url).pathname:t.route.path,httpVersion:"2",headers:$b(e.headers),queryString:SO(e.query)},response:{status:a.status,statusText:a.statusText,headers:$b(a.headers),content:{size:IO(e.headers.get("content-length"))}}}]}}},d=jb[r.apiKey];if(!d){let p=r.apiKey;d=new TO.BatchDispatch("readme-metering-inbound-policy",10,async m=>{try{let h=r.url??"https://metrics.readme.io/request",y=await fetch(h,{method:"POST",body:JSON.stringify(m),headers:{"content-type":"application/json",authorization:`Basic ${btoa(p+":")}`}});y.status!==202&&t.log.error(`Unexpected response in ReadmeMeteringInboundPolicy '${n}'. ${y.status}: '${await y.text()}'`)}catch(h){throw t.log.error(`Error in ReadmeMeteringInboundPolicy '${n}': '${h.message}'`),h}}),jb[p]=d}d.enqueue(l),t.waitUntil(d.waitUntilFlushed())}catch(c){t.log.error(c)}}),e}s(PO,"ReadmeMetricsInboundPolicy");Ja.ReadmeMetricsInboundPolicy=PO});var Gb=g(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.RemoveHeadersInboundPolicy=void 0;var AO=C(),RO=He(),OO=s(async(e,t,r,n)=>{let i=r?.headers;if(!i||!Array.isArray(i)||i.length===0)throw new AO.ConfigurationError(`RemoveHeadersInboundPolicy '${n}' options.headers must be a non-empty string array of header names`);let o=new Headers(e.headers);return i.forEach(c=>{o.delete(c)}),new RO.ZuploRequest(e,{headers:o})},"RemoveHeadersInboundPolicy");za.RemoveHeadersInboundPolicy=OO});var Bb=g(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.RemoveHeadersOutboundPolicy=void 0;var NO=C(),xO=s(async(e,t,r,n,i)=>{let o=n?.headers;if(!o||!Array.isArray(o)||o.length===0)throw new NO.ConfigurationError(`RemoveHeadersOutboundPolicy '${i}' options.headers must be a non-empty string array of header names`);let a=new Headers(e.headers);return o.forEach(u=>{a.delete(u)}),new Response(e.body,{headers:a,status:e.status,statusText:e.statusText})},"RemoveHeadersOutboundPolicy");Wa.RemoveHeadersOutboundPolicy=xO});var Kb=g(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.RemoveQueryParamsInboundPolicy=void 0;var CO=C(),LO=He(),DO=s(async(e,t,r,n)=>{let i=r.params;if(!i||!Array.isArray(i)||i.length===0)throw new CO.ConfigurationError(`RemoveQueryParamsInboundPolicy '${n}' options.params must be a non-empty string array of header names`);let o=new URL(e.url);return i.forEach(c=>{o.searchParams.delete(c)}),new LO.ZuploRequest(o.toString(),e)},"RemoveQueryParamsInboundPolicy");Qa.RemoveQueryParamsInboundPolicy=DO});var Jb=g(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.ReplaceStringOutboundPolicy=void 0;var UO=s(async(e,t,r,n)=>{let i=await e.text(),o=n.mode==="regexp"?new RegExp(n.match,"gm"):n.match,a=i.replaceAll(o,n.replaceWith);return new Response(a,{headers:e.headers,status:e.status,statusText:e.statusText})},"ReplaceStringOutboundPolicy");Ya.ReplaceStringOutboundPolicy=UO});var Wb=g(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.RequestSizeLimitInboundPolicy=void 0;var zb=s(()=>new Response("Maximum request size exceeded",{status:413,statusText:"Payload Too Large"}),"payloadTooLarge"),MO=s(async(e,t,r)=>{let n=r.trustContentLengthHeader??!1;if(["GET","HEAD"].includes(e.method))return e;let i=e.headers.get("content-length"),o=i!==null?parseInt(i):void 0;return o&&!isNaN(o)&&o>r.maxSizeInBytes?zb():o&&n?e:(await e.clone().text()).length>r.maxSizeInBytes?zb():e},"RequestSizeLimitInboundPolicy");Za.RequestSizeLimitInboundPolicy=MO});var Xa=g(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.sanitizedIdentifierName=rt.getIdForRefSchema=rt.getIdForRequestBodySchema=rt.getIdForParameterSchema=rt.getRawOperationDataIdentifierName=void 0;function kO(e,t,r){return`_${kr(e+"_"+t+"_"+r)}`}s(kO,"getRawOperationDataIdentifierName");rt.getRawOperationDataIdentifierName=kO;function HO(e,t,r,n){return`_${kr(e.toLowerCase())}_`+t.toLowerCase()+"_"+r.toLowerCase()+`_${n.toLowerCase()}`}s(HO,"getIdForParameterSchema");rt.getIdForParameterSchema=HO;function FO(e,t,r){return`_${kr(e.toLowerCase())}_`+t.toLowerCase()+`_rb_${kr(r.toLowerCase())}`}s(FO,"getIdForRequestBodySchema");rt.getIdForRequestBodySchema=FO;function qO(e,t){return`_${kr(e)}__${kr(t)}`}s(qO,"getIdForRefSchema");rt.getIdForRefSchema=qO;function kr(e){let t=[];for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);n>="0".charCodeAt(0)&&n<="9".charCodeAt(0)||n>="A".charCodeAt(0)&&n<="Z".charCodeAt(0)||n>="a".charCodeAt(0)&&n<="z".charCodeAt(0)?t.push(e.charAt(r)):t.push("_")}return t.join("")}s(kr,"sanitizedIdentifierName");rt.sanitizedIdentifierName=kr});var Mi=g(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.getErrorsFromValidator=De.shouldReject=De.shouldLog=De.logErrors=De.validateParameters=De.getParametersForOperation=void 0;var $O=mn(),jO=Xa(),VO=s(e=>{let t=e.route.raw();return t.parameters?t.parameters.map(n=>({name:n.name,location:n.in,required:n.required,deprecated:n.deprecated,allowEmptyValue:n.allowEmptyValue})):[]},"getParametersForOperation");De.getParametersForOperation=VO;var GO=s((e,t,r,n,i)=>{let o=[],a=!0,c=[];return e.forEach(u=>{let l=u.required||i==="path";if(l&&!t[u.name])a=!1,o.push(`Required ${i} parameter '${u.name}' not found`);else if(!(!l&&!t[u.name])){let d=(0,jO.getIdForParameterSchema)(r,n,i,u.name),p=$O.Gateway.instance.schemaValidator[d],m=p(t[u.name]),h=(0,De.getErrorsFromValidator)(p.errors);m||(a=!1,c.push(`${i} parameter: ${u.name} : ${t[u.name]}`),o.push(`Invalid value for ${i} parameter: '${u.name}' ${h.join(", ")}`))}}),{isValid:a,invalidValues:c,errors:o}},"validateParameters");De.validateParameters=GO;var BO=s((e,t,r,n,i)=>{n?e.log[t](r,n,i):e.log[t](r,i)},"logErrors");De.logErrors=BO;var KO=s(e=>e==="log-only"||e==="reject-and-log","shouldLog");De.shouldLog=KO;var JO=s(e=>e==="reject-only"||e==="reject-and-log","shouldReject");De.shouldReject=JO;var zO=s(e=>e?.map(t=>t.instancePath===void 0||t.instancePath===""?t.message??"Unknown validation error":t.instancePath.replace("/","")+" "+t.message)??["Unknown validation error"],"getErrorsFromValidator");De.getErrorsFromValidator=zO});var Qb=g(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});tc.handleBodyValidation=void 0;var WO=mn(),ec=ae(),QO=Xa(),ze=Mi();async function YO(e,t,r){if(!r.validateBody||r.validateBody==="none")return;let n;try{n=await t.clone().json()}catch(h){let y=`Error in request body for method : ${t.method} in route: ${e.route.path} with content-type: ${t.headers.get("Content-Type")}`,E=ec.HttpProblems.badRequest(t,e,{detail:`${y}, see errors property for more details`,errors:`${h}`});if((0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",y,[n],h),(0,ze.shouldReject)(r.validateBody))return E}if(!t.headers.get("Content-Type")){let h=`No content-type header defined in incoming request to ${t.method} in route: ${e.route.path}`,y=ec.HttpProblems.badRequest(t,e,{detail:h});return(0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",h,[n],[h]),(0,ze.shouldReject)(r.validateBody)?y:void 0}let i=t.headers.get("Content-Type"),o=i.indexOf(";");o>-1&&(i=i.substring(0,o));let a=(0,QO.getIdForRequestBodySchema)(e.route.path,t.method,i),c=WO.Gateway.instance.schemaValidator[a];if(!c){let h=`No schema defined for method: ${t.method} in route: ${e.route.path} with content-type: ${t.headers.get("Content-Type")}`,y=ec.HttpProblems.badRequest(t,e,{detail:h});return(0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",h,[n],[h]),(0,ze.shouldReject)(r.validateBody)?y:void 0}if(c(n))return;let l=c.errors,d="Request body did not pass validation",p=(0,ze.getErrorsFromValidator)(l),m=ec.HttpProblems.badRequest(t,e,{detail:`${d}, see errors property for more details`,errors:p});if((0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",d,[n],p),(0,ze.shouldReject)(r.validateBody))return m}s(YO,"handleBodyValidation");tc.handleBodyValidation=YO});var Yb=g(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});rc.handleHeadersValidation=void 0;var ZO=ae(),ki=Mi();function XO(e,t,r){if(!r.validateHeaders||r.validateHeaders==="none")return;let n={};t.headers.forEach((a,c)=>{n[c]=a});let i=(0,ki.getParametersForOperation)(e),o=(0,ki.validateParameters)(i.filter(a=>a.location==="header"),n,e.route.path,t.method.toLowerCase(),"header");if(!o.isValid){let a="Header validation failed",c=ZO.HttpProblems.badRequest(t,e,{detail:`${a}, see errors property for more details`,errors:o.errors});if((0,ki.shouldLog)(r.validateHeaders)&&(0,ki.logErrors)(e,r.logLevel??"info",a,o.invalidValues,o.errors),(0,ki.shouldReject)(r.validateHeaders))return c}}s(XO,"handleHeadersValidation");rc.handleHeadersValidation=XO});var Zb=g(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.handlePathParameterValidation=void 0;var eN=ae(),Hi=Mi();function tN(e,t,r){if(!r.validatePathParameters||r.validatePathParameters==="none")return;let n=(0,Hi.getParametersForOperation)(e),i=(0,Hi.validateParameters)(n.filter(o=>o.location==="path"),t.params,e.route.path,t.method.toLowerCase(),"path");if(!i.isValid){let o="Path parameters validation failed",a=eN.HttpProblems.badRequest(t,e,{detail:`${o}, see errors property for more details`,errors:i.errors});if((0,Hi.shouldLog)(r.validatePathParameters)&&(0,Hi.logErrors)(e,r.logLevel??"info",o,i.invalidValues,i.errors),(0,Hi.shouldReject)(r.validatePathParameters))return a}}s(tN,"handlePathParameterValidation");nc.handlePathParameterValidation=tN});var Xb=g(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.handleQueryParameterValidation=void 0;var rN=ae(),Fi=Mi();function nN(e,t,r){if(!r.validateQueryParameters||r.validateQueryParameters==="none")return;let n=(0,Fi.getParametersForOperation)(e),i=(0,Fi.validateParameters)(n.filter(o=>o.location==="query"),t.query,e.route.path,t.method.toLowerCase(),"query");if(!i.isValid){let o="Query parameters validation failed",a=rN.HttpProblems.badRequest(t,e,{detail:`${o}, see errors property for more details`,errors:i.errors});if((0,Fi.shouldLog)(r.validateQueryParameters)&&(0,Fi.logErrors)(e,r.logLevel??"info",o,i.invalidValues,i.errors),(0,Fi.shouldReject)(r.validateQueryParameters))return a}}s(nN,"handleQueryParameterValidation");ic.handleQueryParameterValidation=nN});var e_=g(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.SchemaBasedRequestValidation=Hr.RequestValidationInboundPolicy=void 0;var iN=Qb(),oN=Yb(),sN=Zb(),aN=Xb(),cN=s(async(e,t,r)=>{let n=(0,aN.handleQueryParameterValidation)(t,e,r);if(n!==void 0||(n=(0,sN.handlePathParameterValidation)(t,e,r),n!==void 0)||(n=(0,oN.handleHeadersValidation)(t,e,r),n!==void 0))return n;let i=await(0,iN.handleBodyValidation)(t,e,r);return i!==void 0?i:e},"RequestValidationInboundPolicy");Hr.RequestValidationInboundPolicy=cN;Hr.SchemaBasedRequestValidation=Hr.RequestValidationInboundPolicy});var t_=g(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});oc.RequireOriginInboundPolicy=void 0;var uN=C(),lN=ae(),dN=s(async(e,t,r,n)=>{if(r.origins===void 0||r.origins.length===0)throw new uN.ConfigurationError(`RequireOriginInboundPolicy '${n}' configuration error - no allowed origins specified`);let i=typeof r.origins=="string"?r.origins.split(","):r.origins;i=i.map(a=>a.trim());let o=e.headers.get("origin");if(!o||!i.includes(o)){let a=r.failureDetail??"Forbidden";return lN.HttpProblems.forbidden(e,t,{detail:a})}return e},"RequireOriginInboundPolicy");oc.RequireOriginInboundPolicy=dN});var r_=g(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.SetBodyInboundPolicy=void 0;var pN=He(),hN=s(async(e,t,r)=>new pN.ZuploRequest(e,{body:r.body}),"SetBodyInboundPolicy");sc.SetBodyInboundPolicy=hN});var i_=g(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});ac.SetHeadersInboundPolicy=void 0;var n_=C(),fN=He(),mN=s(async(e,t,r,n)=>{let i=r.headers;if(!i||!Array.isArray(i)||i.length==0)throw new n_.ConfigurationError(`SetHeadersInboundPolicy '${n}' options.headers must be a valid array of { name, value }`);let o=new Headers(e.headers);return i.forEach(c=>{if(!c.name||c.name.length===0)throw new n_.ConfigurationError(`SetHeadersInboundPolicy '${n}' each option.headers[] entry must have a name property`);let u=c.overwrite===void 0?!0:c.overwrite;(!o.has(c.name)||u)&&o.set(c.name,c.value)}),new fN.ZuploRequest(e,{headers:o})},"SetHeadersInboundPolicy");ac.SetHeadersInboundPolicy=mN});var s_=g(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});cc.SetHeadersOutboundPolicy=void 0;var o_=C(),yN=s(async(e,t,r,n,i)=>{let o=n.headers;if(!o||!Array.isArray(o)||o.length==0)throw new o_.ConfigurationError(`SetHeadersOutboundPolicy '${i}' options.headers must be a valid array of { name, value }`);let a=new Headers(e.headers);return o.forEach(u=>{if(!u.name||u.name.length===0)throw new o_.ConfigurationError(`SetHeadersOutboundPolicy '${i}' each option.headers[] entry must have a name property`);let l=u.overwrite===void 0?!0:u.overwrite;(!a.has(u.name)||l)&&a.set(u.name,u.value)}),new Response(e.body,{headers:a,status:e.status,statusText:e.statusText})},"SetHeadersOutboundPolicy");cc.SetHeadersOutboundPolicy=yN});var c_=g(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});uc.SetQueryParamsInboundPolicy=void 0;var a_=C(),gN=He(),bN=s(async(e,t,r,n)=>{let i=r.params;if(!i||!Array.isArray(i)||i.length==0)throw new a_.ConfigurationError(`SetQueryParamsInboundPolicy '${n}' options.params must be a valid array of { name, value }`);let o=new URL(e.url);return i.forEach(c=>{if(!c.name||c.name.length===0)throw new a_.ConfigurationError(`SetQueryParamsInboundPolicy '${n}' each option.params[] entry must have a name property`);let u=c.overwrite===void 0?!0:c.overwrite;(!o.searchParams.has(c.name)||u)&&o.searchParams.set(c.name,c.value)}),new gN.ZuploRequest(o.toString(),e)},"SetQueryParamsInboundPolicy");uc.SetQueryParamsInboundPolicy=bN});var u_=g(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.SetStatusOutboundPolicy=void 0;var _N=s(async(e,t,r,n,i)=>{if(!n.status||isNaN(n.status)||n.status<100||n.status>599)throw new Error(`Invalid SetStatusOutboundPolicy '${i}' - status must be a valid number between 100 and 599, not '${n.status}'`);return new Response(e.body,{headers:e.headers,status:n.status,statusText:n.statusText??e.statusText})},"SetStatusOutboundPolicy");lc.SetStatusOutboundPolicy=_N});var l_=g(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});dc.SleepInboundPolicy=void 0;var EN=C(),wN=s(async e=>new Promise(r=>{setTimeout(r,e)}),"sleep"),vN=s(async(e,t,r,n)=>{if(!r||r.sleepInMs===void 0||isNaN(r.sleepInMs))throw new EN.ConfigurationError(`SleepInboundPolicy '${n} must have a valid options.sleepInMs value`);return await wN(r.sleepInMs),e},"SleepInboundPolicy");dc.SleepInboundPolicy=vN});var p_=g(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});pc.SupabaseJwtInboundPolicy=void 0;var d_=C(),TN=ae(),SN=He(),IN=$t(),PN=Vt(),AN=s(async(e,t,r,n)=>{(0,IN.optionValidator)(r,n).required("secret","string").optional("allowUnauthenticatedRequests","boolean").optional("requiredClaims","object");let i={secret:r.secret,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests??!1},o=await(0,PN.OpenIdJwtInboundPolicy)(e,t,i,n);if(o instanceof Response)return o;if(!(o instanceof SN.ZuploRequest))throw new d_.SystemError("Invalid State - SupabaseJwtInboundPolicy encountered a non-response that wasn't a ZuploRequest type')");let a=r.requiredClaims;if(!a)return o;let c=e.user?.data.app_metadata;if(!c)throw new d_.RuntimeError(`SupabaseJwtInboundPolicy policy '${n}' - has requiredClaims but the JWT token had no app_metadata property`);let u=Object.keys(a),l=[];return u.forEach(d=>{let p=a[d];Array.isArray(p)?p.includes(c[d])||l.push(d):p!==c[d]&&l.push(d)}),l.length>0?TN.HttpProblems.unauthorized(e,t,{detail:`Invalid JWT token - missing valid claims ${l.join(", ")}`}):o},"SupabaseJwtInboundPolicy");pc.SupabaseJwtInboundPolicy=AN});var f_=g(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});hc.UpstreamAzureAdServiceAuthInboundPolicy=void 0;var RN=jt(),ON=Jt(),h_=C(),NN=vi(),xN=$t(),CN=s(async(e,t,r,n)=>{(0,xN.optionValidator)(r,n).required("activeDirectoryTenantId","string").required("activeDirectoryClientId","string").required("activeDirectoryClientSecret","string").optional("tokenRetries","number").optional("expirationOffsetSeconds","number");let i=await(0,RN.getPolicyCacheName)(n,r),o=new ON.MemoryZoneReadThroughCache(i,t),a=await o.get(n);if(!a){let c=await LN(r,t);o.put(n,c.access_token,c.expires_in-(r.expirationOffsetSeconds??300)),a=c.access_token}return e.headers.set("Authorization",`Bearer ${a}`),e},"UpstreamAzureAdServiceAuthInboundPolicy");hc.UpstreamAzureAdServiceAuthInboundPolicy=CN;async function LN(e,t){let r=new URLSearchParams({client_id:e.activeDirectoryClientId,scope:`${e.activeDirectoryClientId}/.default`,client_secret:e.activeDirectoryClientSecret,grant_type:"client_credentials"}),n=await(0,NN.fetchRetry)({retries:e.tokenRetries??3,retryDelayMs:10},`https://login.microsoftonline.com/${e.activeDirectoryTenantId}/oauth2/v2.0/token`,{headers:{"content-type":"application/x-www-form-urlencoded"},method:"POST",body:r});if(n.status!==200){try{let o=await n.text();t.log.error("Could not get token from Azure AD",o)}catch{}throw new h_.RuntimeError("Could not get token from Azure AD")}let i=await n.json();if(i&&typeof i=="object"&&"access_token"in i&&typeof i.access_token=="string"&&"expires_in"in i&&typeof i.expires_in=="number")return{access_token:i.access_token,expires_in:i.expires_in};throw new h_.RuntimeError("Response returned from Azure AD is not in the expected format.")}s(LN,"getAccessToken")});var y_=g(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});fc.UpstreamFirebaseAdminAuthInboundPolicy=void 0;var DN=jt(),UN=Jt(),MN=C(),Np=pn(),kN=$t(),m_="https://accounts.google.com/o/oauth2/token",xp,HN=s(async(e,t,r,n)=>{(0,kN.optionValidator)(r,n).required("serviceAccountJson","string"),xp||(xp=await Np.GcpServiceAccount.init(r.serviceAccountJson));let i={scope:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/firebase.database","https://www.googleapis.com/auth/firebase.messaging","https://www.googleapis.com/auth/identitytoolkit","https://www.googleapis.com/auth/userinfo.email"].join(" ")},o=await(0,DN.getPolicyCacheName)(n,r),a=new UN.MemoryZoneReadThroughCache(o,t),c=await a.get(n);if(!c){let u=await(0,Np.getTokenFromGcpServiceAccount)({serviceAccount:xp,audience:m_,payload:i}),l=await(0,Np.exchangeGgpJwtForIdToken)(m_,u,{retries:r.tokenRetries??3,retryDelayMs:10});if(!l.access_token)throw new MN.RuntimeError("Invalid OAuth response from Firebase");c=l.access_token,a.put(n,c,(l.expires_in??3600)-(r.expirationOffsetSeconds??300))}return e.headers.set("Authorization",`Bearer ${c}`),e},"UpstreamFirebaseAdminAuthInboundPolicy");fc.UpstreamFirebaseAdminAuthInboundPolicy=HN});var g_=g(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.UpstreamFirebaseUserAuthInboundPolicy=void 0;var FN=jt(),qN=Jt(),Fn=C(),$N=hp(),Cp=pn(),jN=oi(),VN=$t(),GN="https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",BN=["acr","amr","at_hash","aud","auth_time","azp","cnf","c_hash","exp","iat","iss","jti","nbf","nonce"],Lp,KN=s(async(e,t,r,n)=>{if((0,VN.optionValidator)(r,n).required("serviceAccountJson","string").required("webApiKey","string").optional("developerClaims","object").optional("userId","string").optional("userIdPropertyPath","string"),!r.userId&&!r.userIdPropertyPath)throw new Fn.ConfigurationError(`Either 'userId' or 'userIdPropertyPath' options must be set on policy '${n}'.`);let i={};if(typeof r.developerClaims<"u"){for(let p in r.developerClaims)if(Object.prototype.hasOwnProperty.call(r.developerClaims,p)){if(BN.indexOf(p)!==-1)throw new Fn.ConfigurationError(`Developer claim "${p}" is reserved and cannot be specified.`);i[p]=r.developerClaims[p]}}Lp||(Lp=await Cp.GcpServiceAccount.init(r.serviceAccountJson));let o=r.userId;if(!o&&!r.userIdPropertyPath){if(!e.user)throw new Fn.RuntimeError("Unable to set userId for upstream auth policy as request.user is 'undefined'. Do you have an authentication policy before this policy?.");o=e.user?.sub}else if(r.userIdPropertyPath){if(!e.user)throw new Fn.RuntimeError(`Unable to apply userIdPropertyPath '${r.userIdPropertyPath}' as request.user is 'undefined'. Do you have an authentication policy before this policy?`);o=(0,jN.getValueFromRequestUser)(e.user,r.userIdPropertyPath,"userIdPropertyPath")}if(!o)throw new Fn.RuntimeError(`Unable to determine user from for the policy ${n}`);let a=await(0,FN.getPolicyCacheName)(n,r),c=new qN.MemoryZoneReadThroughCache(a,t),u={uid:o,claims:i},l=await(0,$N.sha256)(JSON.stringify(u)),d=await c.get(l);if(!d){let p=await(0,Cp.getTokenFromGcpServiceAccount)({serviceAccount:Lp,audience:GN,payload:u}),m=`https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=${r.webApiKey}`,h=await(0,Cp.exchangeFirebaseJwtForIdToken)(m,p,{retries:r.tokenRetries??3,retryDelayMs:10});if(!h.idToken)throw new Fn.RuntimeError("Invalid token response from Firebase");d=h.idToken,c.put(l,d,(h.expiresIn?parseInt(h.expiresIn):3600)-(r.expirationOffsetSeconds??300))}return e.headers.set("Authorization",`Bearer ${d}`),e},"UpstreamFirebaseUserAuthInboundPolicy");mc.UpstreamFirebaseUserAuthInboundPolicy=KN});var __=g(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.UpstreamGcpJwtInboundPolicy=void 0;var b_=pn(),JN=$t(),Dp,zN=s(async(e,t,r,n)=>{(0,JN.optionValidator)(r,n).required("audience","string").required("serviceAccountJson","string"),Dp||(Dp=await b_.GcpServiceAccount.init(r.serviceAccountJson));let i=await(0,b_.getTokenFromGcpServiceAccount)({serviceAccount:Dp,audience:r.audience});return e.headers.set("Authorization",`Bearer ${i}`),e},"UpstreamGcpJwtInboundPolicy");yc.UpstreamGcpJwtInboundPolicy=zN});var w_=g(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});gc.UpstreamGcpServiceAuthInboundPolicy=void 0;var WN=jt(),QN=fu(),YN=Jt(),ZN=C(),Up=pn(),XN=$t(),E_="https://www.googleapis.com/oauth2/v4/token",Mp,ex=s(async(e,t,r,n)=>{(0,XN.optionValidator)(r,n).required("audience","string").required("serviceAccountJson","string").optional("tokenRetries","number").optional("expirationOffsetSeconds","number"),Mp||(Mp=await Up.GcpServiceAccount.init(r.serviceAccountJson));let i=await(0,WN.getPolicyCacheName)(n,r),o;r.useMemoryCacheOnly?o=new QN.MemoryCache(i):o=new YN.MemoryZoneReadThroughCache(i,t);let a=await o.get(n);if(!a){let c=await(0,Up.getTokenFromGcpServiceAccount)({serviceAccount:Mp,audience:E_,payload:{target_audience:`${r.audience}`}}),{id_token:u}=await(0,Up.exchangeGgpJwtForIdToken)(E_,c,{retries:r.tokenRetries??3,retryDelayMs:10});if(!u)throw new ZN.RuntimeError("Invalid token response from GCP");a=u,o.put(n,a,3600-(r.expirationOffsetSeconds??300))}return e.headers.set("Authorization",`Bearer ${a}`),e},"UpstreamGcpServiceAuthInboundPolicy");gc.UpstreamGcpServiceAuthInboundPolicy=ex});var T_=g(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});bc.ValidateJsonSchemaInbound=void 0;var tx=C(),v_=ae(),rx=s(async(e,t,r)=>{let n=e.clone(),i;try{i=await n.json()}catch{return v_.HttpProblems.badRequest(e,t,{detail:"Invalid JSON body - expected well-formed JSON document"})}if(r.validator(i))return e;let{errors:a}=r.validator;if(!a)throw new tx.SystemError("Invalid state - validator error object is undefined even though validation failed.");let c=a.map(u=>u.instancePath===void 0||u.instancePath===""?"Body "+u.message:u.instancePath.replace("/","")+" "+u.message);return v_.HttpProblems.badRequest(e,t,{detail:"Incoming body did not pass schema validation",errors:c})},"ValidateJsonSchemaInbound");bc.ValidateJsonSchemaInbound=rx});var P_=g(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.MeteringInboundPolicy=void 0;var S_=Gs(),I_=yn(),_c=C(),nx=ae(),ix=Ke(),ox=Y(),sx=s(async(e,t,r,n)=>{let i=ix.SystemLogMap.getLogger(t);t.addResponseSendingFinalHook(async(d,p,m)=>{let h=S_.ContextData.get(m,"subscription");if((r.allowRequestsWithoutSubscription??!1)&&!h)return;if(!r.bucketId)if(I_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID)r.bucketId=I_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID;else throw new _c.ConfigurationError(`MeteringInboundPolicy '${n}' - no bucketId property provided`);let{authApiJWT:E,meteringServiceUrl:T}=ox.Environment.instance;if(d.ok&&h&&r.meters)try{let S=await fetch(`${T}/internal/v1/metering/${r.bucketId}/subscriptions/${h.id}/quotas/consume`,{headers:{Authorization:`Bearer ${E}`,"zp-rid":m.requestId},method:"POST",body:JSON.stringify({meters:r.meters})});S.ok||(m.log.error(`MeteringInboundPolicy '${n}' -error in serviceResponse: ${S.status} - ${S.statusText}`),i.error(`MeteringInboundPolicy '${n}' -error in serviceResponse: ${S.status} - ${S.statusText}`))}catch(S){m.log.error(`MeteringInboundPolicy '${n}' -error in serviceResponse`),i.error(`MeteringInboundPolicy '${n}' -error in serviceResponse`,S)}});let o=S_.ContextData.get(t,"subscription"),a=r.allowRequestsWithoutSubscription??!1,c=r.allowRequestsOverQuota??!1;if(!o){if(a)return e;throw new _c.ConfigurationError("Subscription is not available for user")}if(o&&Object.keys(o.quotas).length===0)throw new _c.ConfigurationError("Quota is not set up for the user's subscription");let l=Object.keys(r.meters).filter(d=>!Object.keys(o.quotas).includes(d));if(l.length>0)throw new _c.ConfigurationError(`The following policy meters are not present in the subscription: ${l.join(", ")}`);for(let d of Object.keys(o.quotas))if(o.quotas[d]<=0&&!c)return nx.HttpProblems.tooManyRequests(e,t,{detail:`Quota exceeded for meter '${d}'`,title:"Quota Exceeded"});return e},"MeteringInboundPolicy");Ec.MeteringInboundPolicy=sx});var O_=g(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.LoadSubscriptionInboundPolicy=void 0;var ax=ti(),cx=Gs(),A_=yn(),ux=C(),kp=ae(),R_=Ke(),lx=Y(),dx=s(async(e,t,r,n)=>{let i=R_.SystemLogMap.getLogger(t),o=r.allowRequestsWithoutSubscription??!1,a=e.user;if(!a)return o?e:kp.HttpProblems.unauthorized(e,t,{detail:"Unable to check subscription for anonymous user"});if(!r.bucketId)if(A_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID)r.bucketId=A_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID;else throw new ux.ConfigurationError(`LoadSubscriptionInboundPolicy '${n}' - no bucketId property provided`);let{authApiJWT:c,meteringServiceUrl:u}=lx.Environment.instance,{sub:l}=a,d;try{let m=`${r.bucketId}-${l}`,h=new ax.ZoneCache(m,{logger:R_.SystemLogMap.getLogger(t)}),y=await h.get(m);if(y)d=y;else{let E=await fetch(`${u}/internal/v1/metering/${r.bucketId}/subscriptions?customerKey=${l}&status=active`,{headers:{Authorization:`Bearer ${c}`,"zp-rid":t.requestId},method:"GET"});if(!E.ok)return t.log.error(await E.text()),kp.HttpProblems.forbidden(e,t);d=await E.json(),h.put(m,d,15).catch(T=>{throw i.error(T),T})}}catch(m){i.error(`LoadSubscriptionInboundPolicy '${n}' -error in serviceResponse`,m)}if((!d||!d.data||d.data.length===0)&&!o)return kp.HttpProblems.unauthorized(e,t,{detail:"No valid, active subscription found"});if((!d||!d.data||d.data.length===0)&&o)return e;let p=d&&d.data?d.data[0]:void 0;return cx.ContextData.set(t,"subscription",p),e},"LoadSubscriptionInboundPolicy");wc.LoadSubscriptionInboundPolicy=dx});var N_=g(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.ServiceProviderImpl=void 0;var px=C(),Hp=class{static{s(this,"ServiceProviderImpl")}services=new Map;addService(t,r){if(this.services.get(t))throw new px.SystemError(`A service with the name ${t} already exists -- you cannot have duplicate services`);this.services.set(t,r)}getService(t){return this.services.get(t)}};vc.ServiceProviderImpl=Hp});var $_=g(f=>{"use strict";var hx=f&&f.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Fp=f&&f.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&hx(t,e,r)},fx=f&&f.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0});f.RateLimitInboundPolicy=f.BasicRateLimitInboundPolicy=f.PropelAuthJwtInboundPolicy=f.OpenIdJwtInboundPolicy=f.OktaJwtInboundPolicy=f.setMoesifContext=f.MoesifInboundPolicy=f.MockApiInboundPolicy=f.JWTScopeValidationInboundPolicy=f.GeoFilterInboundPolicy=f.FormDataToJsonInboundPolicy=f.FirebaseJwtInboundPolicy=f.CurityPhantomTokenInboundPolicy=f.CreditsMeteringInboundPolicy=f.CompositeInboundPolicy=f.CognitoJwtInboundPolicy=f.ClerkJwtInboundPolicy=f.ClearHeadersOutboundPolicy=f.ClearHeadersInboundPolicy=f.ChangeMethodInboundPolicy=f.CachingInboundPolicy=f.BasicAuthInboundPolicy=f.Auth0JwtInboundPolicy=f.ApiKeyInboundPolicy=f.ApiAuthKeyInboundPolicy=f.AmberfloMeteringPolicy=f.AmberfloMeteringInboundPolicy=f.AuditLogPlugin=f.AuditLogDataStaxProvider=f.HttpStatusCode=f.webSocketPipelineHandler=f.webSocketHandler=f.urlRewriteHandler=f.urlForwardHandler=f.redirectHandler=f.openApiSpecHandler=f.awsLambdaHandler=f.AwsLambdaHandlerExtensions=f.purgeGatewayCache=f.Handler=f.originalFetch=f.ConfigurationError=f.isZuploReadableEnvVariableName=f.isRestrictedEnvVariableName=f.environment=f.ContextData=f.ResponseSentEvent=f.ResponseSendingEvent=f.ZoneCache=f.MemoryZoneReadThroughCache=void 0;f.sanitizedIdentifierName=f.getRawOperationDataIdentifierName=f.getIdForRequestBodySchema=f.getIdForRefSchema=f.getIdForParameterSchema=f.SystemLogMap=f.httpStatuses=f.SYSTEM_LOGGER=f.API_KEY=f.ServiceProviderImpl=f.serialize=f.ContentTypes=f.Router=f.LookupResult=f.SystemRouteName=f.ZuploRequest=f.ProblemResponseFormatter=f.HttpProblems=f.LoadSubscriptionInboundPolicy=f.MeteringInboundPolicy=f.ValidateJsonSchemaInbound=f.UpstreamGcpServiceAuthInboundPolicy=f.UpstreamGcpJwtInboundPolicy=f.UpstreamFirebaseUserAuthInboundPolicy=f.UpstreamFirebaseAdminAuthInboundPolicy=f.UpstreamAzureAdServiceAuthInboundPolicy=f.SupabaseJwtInboundPolicy=f.StripeWebhookVerificationInboundPolicy=f.SleepInboundPolicy=f.SetStatusOutboundPolicy=f.SetQueryParamsInboundPolicy=f.SetHeadersOutboundPolicy=f.SetHeadersInboundPolicy=f.SetBodyInboundPolicy=f.RequireOriginInboundPolicy=f.SchemaBasedRequestValidation=f.RequestValidationInboundPolicy=f.RequestSizeLimitInboundPolicy=f.ReplaceStringOutboundPolicy=f.RemoveQueryParamsInboundPolicy=f.RemoveHeadersOutboundPolicy=f.RemoveHeadersInboundPolicy=f.ReadmeMetricsInboundPolicy=void 0;wh();var mx=Jt();Object.defineProperty(f,"MemoryZoneReadThroughCache",{enumerable:!0,get:function(){return mx.MemoryZoneReadThroughCache}});var yx=ti();Object.defineProperty(f,"ZoneCache",{enumerable:!0,get:function(){return yx.ZoneCache}});var x_=Ir();Object.defineProperty(f,"ResponseSendingEvent",{enumerable:!0,get:function(){return x_.ResponseSendingEvent}});Object.defineProperty(f,"ResponseSentEvent",{enumerable:!0,get:function(){return x_.ResponseSentEvent}});var gx=Gs();Object.defineProperty(f,"ContextData",{enumerable:!0,get:function(){return gx.ContextData}});var qp=yn();Object.defineProperty(f,"environment",{enumerable:!0,get:function(){return qp.environment}});Object.defineProperty(f,"isRestrictedEnvVariableName",{enumerable:!0,get:function(){return qp.isRestrictedEnvVariableName}});Object.defineProperty(f,"isZuploReadableEnvVariableName",{enumerable:!0,get:function(){return qp.isZuploReadableEnvVariableName}});var bx=C();Object.defineProperty(f,"ConfigurationError",{enumerable:!0,get:function(){return bx.ConfigurationError}});var _x=Pd();Object.defineProperty(f,"originalFetch",{enumerable:!0,get:function(){return _x.originalFetch}});var C_=Wy();Object.defineProperty(f,"Handler",{enumerable:!0,get:function(){return C_.Handler}});Object.defineProperty(f,"purgeGatewayCache",{enumerable:!0,get:function(){return C_.purgeGatewayCache}});var L_=pg();Object.defineProperty(f,"AwsLambdaHandlerExtensions",{enumerable:!0,get:function(){return L_.AwsLambdaHandlerExtensions}});Object.defineProperty(f,"awsLambdaHandler",{enumerable:!0,get:function(){return L_.awsLambdaHandler}});var Ex=fg();Object.defineProperty(f,"openApiSpecHandler",{enumerable:!0,get:function(){return Ex.openApiSpecHandler}});var wx=mg();Object.defineProperty(f,"redirectHandler",{enumerable:!0,get:function(){return wx.redirectHandler}});var vx=gg();Object.defineProperty(f,"urlForwardHandler",{enumerable:!0,get:function(){return vx.urlForwardHandler}});var Tx=_g();Object.defineProperty(f,"urlRewriteHandler",{enumerable:!0,get:function(){return Tx.urlRewriteHandler}});var Sx=wg();Object.defineProperty(f,"webSocketHandler",{enumerable:!0,get:function(){return Sx.webSocketHandler}});var Ix=Sg();Object.defineProperty(f,"webSocketPipelineHandler",{enumerable:!0,get:function(){return Ix.webSocketPipelineHandler}});var Px=Hu();Object.defineProperty(f,"HttpStatusCode",{enumerable:!0,get:function(){return Px.HttpStatusCode}});Fp(Cg(),f);Fp(Ug(),f);var Ax=Mg();Object.defineProperty(f,"AuditLogDataStaxProvider",{enumerable:!0,get:function(){return Ax.AuditLogDataStaxProvider}});var Rx=Hg();Object.defineProperty(f,"AuditLogPlugin",{enumerable:!0,get:function(){return Rx.AuditLogPlugin}});Fp(Wg(),f);var D_=eb();Object.defineProperty(f,"AmberfloMeteringInboundPolicy",{enumerable:!0,get:function(){return D_.AmberfloMeteringInboundPolicy}});Object.defineProperty(f,"AmberfloMeteringPolicy",{enumerable:!0,get:function(){return D_.AmberfloMeteringPolicy}});var Ox=ob();Object.defineProperty(f,"ApiAuthKeyInboundPolicy",{enumerable:!0,get:function(){return Ox.ApiAuthKeyInboundPolicy}});var Nx=yp();Object.defineProperty(f,"ApiKeyInboundPolicy",{enumerable:!0,get:function(){return Nx.ApiKeyInboundPolicy}});var xx=sb();Object.defineProperty(f,"Auth0JwtInboundPolicy",{enumerable:!0,get:function(){return xx.Auth0JwtInboundPolicy}});var Cx=ab();Object.defineProperty(f,"BasicAuthInboundPolicy",{enumerable:!0,get:function(){return Cx.BasicAuthInboundPolicy}});var Lx=cb();Object.defineProperty(f,"CachingInboundPolicy",{enumerable:!0,get:function(){return Lx.CachingInboundPolicy}});var Dx=ub();Object.defineProperty(f,"ChangeMethodInboundPolicy",{enumerable:!0,get:function(){return Dx.ChangeMethodInboundPolicy}});var Ux=lb();Object.defineProperty(f,"ClearHeadersInboundPolicy",{enumerable:!0,get:function(){return Ux.ClearHeadersInboundPolicy}});var Mx=db();Object.defineProperty(f,"ClearHeadersOutboundPolicy",{enumerable:!0,get:function(){return Mx.ClearHeadersOutboundPolicy}});var kx=pb();Object.defineProperty(f,"ClerkJwtInboundPolicy",{enumerable:!0,get:function(){return kx.ClerkJwtInboundPolicy}});var Hx=fb();Object.defineProperty(f,"CognitoJwtInboundPolicy",{enumerable:!0,get:function(){return Hx.CognitoJwtInboundPolicy}});var Fx=yb();Object.defineProperty(f,"CompositeInboundPolicy",{enumerable:!0,get:function(){return Fx.CompositeInboundPolicy}});var qx=bb();Object.defineProperty(f,"CreditsMeteringInboundPolicy",{enumerable:!0,get:function(){return qx.CreditsMeteringInboundPolicy}});var $x=_b();Object.defineProperty(f,"CurityPhantomTokenInboundPolicy",{enumerable:!0,get:function(){return $x.CurityPhantomTokenInboundPolicy}});var jx=Eb();Object.defineProperty(f,"FirebaseJwtInboundPolicy",{enumerable:!0,get:function(){return jx.FirebaseJwtInboundPolicy}});var Vx=wb();Object.defineProperty(f,"FormDataToJsonInboundPolicy",{enumerable:!0,get:function(){return Vx.FormDataToJsonInboundPolicy}});var Gx=vb();Object.defineProperty(f,"GeoFilterInboundPolicy",{enumerable:!0,get:function(){return Gx.GeoFilterInboundPolicy}});var Bx=Tb();Object.defineProperty(f,"JWTScopeValidationInboundPolicy",{enumerable:!0,get:function(){return Bx.JWTScopeValidationInboundPolicy}});var Kx=Ib();Object.defineProperty(f,"MockApiInboundPolicy",{enumerable:!0,get:function(){return Kx.MockApiInboundPolicy}});var U_=Nb();Object.defineProperty(f,"MoesifInboundPolicy",{enumerable:!0,get:function(){return U_.MoesifInboundPolicy}});Object.defineProperty(f,"setMoesifContext",{enumerable:!0,get:function(){return U_.setMoesifContext}});var Jx=xb();Object.defineProperty(f,"OktaJwtInboundPolicy",{enumerable:!0,get:function(){return Jx.OktaJwtInboundPolicy}});var zx=Vt();Object.defineProperty(f,"OpenIdJwtInboundPolicy",{enumerable:!0,get:function(){return zx.OpenIdJwtInboundPolicy}});var Wx=Cb();Object.defineProperty(f,"PropelAuthJwtInboundPolicy",{enumerable:!0,get:function(){return Wx.PropelAuthJwtInboundPolicy}});var M_=Fb();Object.defineProperty(f,"BasicRateLimitInboundPolicy",{enumerable:!0,get:function(){return M_.RateLimitInboundPolicy}});Object.defineProperty(f,"RateLimitInboundPolicy",{enumerable:!0,get:function(){return M_.RateLimitInboundPolicy}});var Qx=Vb();Object.defineProperty(f,"ReadmeMetricsInboundPolicy",{enumerable:!0,get:function(){return Qx.ReadmeMetricsInboundPolicy}});var Yx=Gb();Object.defineProperty(f,"RemoveHeadersInboundPolicy",{enumerable:!0,get:function(){return Yx.RemoveHeadersInboundPolicy}});var Zx=Bb();Object.defineProperty(f,"RemoveHeadersOutboundPolicy",{enumerable:!0,get:function(){return Zx.RemoveHeadersOutboundPolicy}});var Xx=Kb();Object.defineProperty(f,"RemoveQueryParamsInboundPolicy",{enumerable:!0,get:function(){return Xx.RemoveQueryParamsInboundPolicy}});var eC=Jb();Object.defineProperty(f,"ReplaceStringOutboundPolicy",{enumerable:!0,get:function(){return eC.ReplaceStringOutboundPolicy}});var tC=Wb();Object.defineProperty(f,"RequestSizeLimitInboundPolicy",{enumerable:!0,get:function(){return tC.RequestSizeLimitInboundPolicy}});var k_=e_();Object.defineProperty(f,"RequestValidationInboundPolicy",{enumerable:!0,get:function(){return k_.RequestValidationInboundPolicy}});Object.defineProperty(f,"SchemaBasedRequestValidation",{enumerable:!0,get:function(){return k_.SchemaBasedRequestValidation}});var rC=t_();Object.defineProperty(f,"RequireOriginInboundPolicy",{enumerable:!0,get:function(){return rC.RequireOriginInboundPolicy}});var nC=r_();Object.defineProperty(f,"SetBodyInboundPolicy",{enumerable:!0,get:function(){return nC.SetBodyInboundPolicy}});var iC=i_();Object.defineProperty(f,"SetHeadersInboundPolicy",{enumerable:!0,get:function(){return iC.SetHeadersInboundPolicy}});var oC=s_();Object.defineProperty(f,"SetHeadersOutboundPolicy",{enumerable:!0,get:function(){return oC.SetHeadersOutboundPolicy}});var sC=c_();Object.defineProperty(f,"SetQueryParamsInboundPolicy",{enumerable:!0,get:function(){return sC.SetQueryParamsInboundPolicy}});var aC=u_();Object.defineProperty(f,"SetStatusOutboundPolicy",{enumerable:!0,get:function(){return aC.SetStatusOutboundPolicy}});var cC=l_();Object.defineProperty(f,"SleepInboundPolicy",{enumerable:!0,get:function(){return cC.SleepInboundPolicy}});var uC=ap();Object.defineProperty(f,"StripeWebhookVerificationInboundPolicy",{enumerable:!0,get:function(){return uC.StripeWebhookVerificationInboundPolicy}});var lC=p_();Object.defineProperty(f,"SupabaseJwtInboundPolicy",{enumerable:!0,get:function(){return lC.SupabaseJwtInboundPolicy}});var dC=f_();Object.defineProperty(f,"UpstreamAzureAdServiceAuthInboundPolicy",{enumerable:!0,get:function(){return dC.UpstreamAzureAdServiceAuthInboundPolicy}});var pC=y_();Object.defineProperty(f,"UpstreamFirebaseAdminAuthInboundPolicy",{enumerable:!0,get:function(){return pC.UpstreamFirebaseAdminAuthInboundPolicy}});var hC=g_();Object.defineProperty(f,"UpstreamFirebaseUserAuthInboundPolicy",{enumerable:!0,get:function(){return hC.UpstreamFirebaseUserAuthInboundPolicy}});var fC=__();Object.defineProperty(f,"UpstreamGcpJwtInboundPolicy",{enumerable:!0,get:function(){return fC.UpstreamGcpJwtInboundPolicy}});var mC=w_();Object.defineProperty(f,"UpstreamGcpServiceAuthInboundPolicy",{enumerable:!0,get:function(){return mC.UpstreamGcpServiceAuthInboundPolicy}});var yC=T_();Object.defineProperty(f,"ValidateJsonSchemaInbound",{enumerable:!0,get:function(){return yC.ValidateJsonSchemaInbound}});var gC=P_();Object.defineProperty(f,"MeteringInboundPolicy",{enumerable:!0,get:function(){return gC.MeteringInboundPolicy}});var bC=O_();Object.defineProperty(f,"LoadSubscriptionInboundPolicy",{enumerable:!0,get:function(){return bC.LoadSubscriptionInboundPolicy}});var _C=ae();Object.defineProperty(f,"HttpProblems",{enumerable:!0,get:function(){return _C.HttpProblems}});var EC=go();Object.defineProperty(f,"ProblemResponseFormatter",{enumerable:!0,get:function(){return EC.ProblemResponseFormatter}});var wC=He();Object.defineProperty(f,"ZuploRequest",{enumerable:!0,get:function(){return wC.ZuploRequest}});var vC=Ar();Object.defineProperty(f,"SystemRouteName",{enumerable:!0,get:function(){return vC.SystemRouteName}});var H_=gd();Object.defineProperty(f,"LookupResult",{enumerable:!0,get:function(){return H_.LookupResult}});Object.defineProperty(f,"Router",{enumerable:!0,get:function(){return H_.Router}});var F_=Ou();Object.defineProperty(f,"ContentTypes",{enumerable:!0,get:function(){return F_.ContentTypes}});Object.defineProperty(f,"serialize",{enumerable:!0,get:function(){return F_.serialize}});var TC=N_();Object.defineProperty(f,"ServiceProviderImpl",{enumerable:!0,get:function(){return TC.ServiceProviderImpl}});var q_=Yu();Object.defineProperty(f,"API_KEY",{enumerable:!0,get:function(){return q_.API_KEY}});Object.defineProperty(f,"SYSTEM_LOGGER",{enumerable:!0,get:function(){return q_.SYSTEM_LOGGER}});var SC=qu();Object.defineProperty(f,"httpStatuses",{enumerable:!0,get:function(){return fx(SC).default}});var IC=Ke();Object.defineProperty(f,"SystemLogMap",{enumerable:!0,get:function(){return IC.SystemLogMap}});var qi=Xa();Object.defineProperty(f,"getIdForParameterSchema",{enumerable:!0,get:function(){return qi.getIdForParameterSchema}});Object.defineProperty(f,"getIdForRefSchema",{enumerable:!0,get:function(){return qi.getIdForRefSchema}});Object.defineProperty(f,"getIdForRequestBodySchema",{enumerable:!0,get:function(){return qi.getIdForRequestBodySchema}});Object.defineProperty(f,"getRawOperationDataIdentifierName",{enumerable:!0,get:function(){return qi.getRawOperationDataIdentifierName}});Object.defineProperty(f,"sanitizedIdentifierName",{enumerable:!0,get:function(){return qi.sanitizedIdentifierName}})});var j_=g(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.BaseCryptoBeta=qn.supportedDigests=void 0;qn.supportedDigests=["sha-1","sha-256","sha-384","sha-512"];var $p=class{static{s(this,"BaseCryptoBeta")}};qn.BaseCryptoBeta=$p});var V_=g(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.WorkerCryptoBeta=void 0;var jp=j_(),PC=C(),Vp=class extends jp.BaseCryptoBeta{static{s(this,"WorkerCryptoBeta")}async digest(t,r){if(!jp.supportedDigests.includes(t.toLowerCase()))throw new PC.RuntimeError(`Algorithm ${t} is not supported. Try using ${jp.supportedDigests.join(", ")}`);let n=new TextEncoder().encode(r),i=await crypto.subtle.digest(t,n);return Array.from(new Uint8Array(i)).map(c=>c.toString(16).padStart(2,"0")).join("")}};Tc.WorkerCryptoBeta=Vp});var G_=g(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.BaseKeyValueStore=void 0;var Gp=class{static{s(this,"BaseKeyValueStore")}context;constructor(t){this.context=t}};Sc.BaseKeyValueStore=Gp});var K_=g(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});Ic.WorkerKeyValueStore=void 0;var B_=C(),AC=G_(),Bp=class extends AC.BaseKeyValueStore{static{s(this,"WorkerKeyValueStore")}#e;constructor(t){super(t);let n=globalThis.ZUPLO_KV;if(!n)throw new B_.FeatureNotEnabledError("The Key Value Store feature is not enabled for this project.");this.#e=n}put(t,r,n){if(typeof t!="string")throw new B_.ConfigurationError("value must be of type string");return this.#e.put(t,r,n?{expirationTtl:n.expirationSecondsTtl}:void 0)}get(t,r){return this.#e.get(t,{type:"text",cacheTtl:r?.cacheSecondsTtl})}delete(t){return this.#e.delete(t)}};Ic.WorkerKeyValueStore=Bp});var Ut=g(dt=>{"use strict";var RC=dt&&dt.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OC=dt&&dt.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&RC(t,e,r)};Object.defineProperty(dt,"__esModule",{value:!0});dt.KeyValueStore=dt.CryptoBeta=void 0;OC($_(),dt);var NC=V_();Object.defineProperty(dt,"CryptoBeta",{enumerable:!0,get:function(){return NC.WorkerCryptoBeta}});var xC=K_();Object.defineProperty(dt,"KeyValueStore",{enumerable:!0,get:function(){return xC.WorkerKeyValueStore}})});var HL={};ro(HL,{GraphQLComplexityLimitInboundPolicy:()=>SE,GraphQLDisableIntrospectionInboundPolicy:()=>PE});module.exports=no(HL);var Zn=gh(Ut());function B(e,t){if(!!!e)throw new Error(t)}s(B,"devAssert");function Ee(e){return typeof e=="object"&&e!==null}s(Ee,"isObjectLike");function Ot(e,t){if(!!!e)throw new Error(t??"Unexpected invariant triggered.")}s(Ot,"invariant");var CC=/\r\n|[\n\r]/g;function $n(e,t){let r=0,n=1;for(let i of e.body.matchAll(CC)){if(typeof i.index=="number"||Ot(!1),i.index>=t)break;r=i.index+i[0].length,n+=1}return{line:n,column:t+1-r}}s($n,"getLocation");function Kp(e){return Pc(e.source,$n(e.source,e.start))}s(Kp,"printLocation");function Pc(e,t){let r=e.locationOffset.column-1,n="".padStart(r)+e.body,i=t.line-1,o=e.locationOffset.line-1,a=t.line+o,c=t.line===1?r:0,u=t.column+c,l=`${e.name}:${a}:${u}
74
+ `+d});let p=Math.floor((typeof c=="number"?c:Date.now())/1e3)-r.timestamp;if(i>0&&p>i)throw new Mr.StripeSignatureVerificationError(t,e,{message:"Timestamp outside the tolerance zone"});return!0}s(lR,"validateComputedSignature");function dR(e,t){return typeof e!="string"?null:e.split(",").reduce((r,n)=>{let i=n.split("=");return i[0]==="t"&&(r.timestamp=parseInt(i[1],10)),i[0]===t&&r.signatures.push(i[1]),r},{timestamp:-1,signatures:[]})}s(dR,"parseHeader");function pR(e,t){if(e.length!==t.length)return!1;let r=e.length,n=0;for(let i=0;i<r;++i)n|=e.charCodeAt(i)^t.charCodeAt(i);return n===0}s(pR,"secureCompare");async function qg(e,t){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",r.encode(t),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),i=await crypto.subtle.sign("hmac",n,r.encode(e)),o=new Uint8Array(i),a=new Array(o.length);for(let c=0;c<o.length;c++)a[c]=sp[o[c]];return a.join("")}s(qg,"computeHMACSignatureAsync");Nn.computeHMACSignatureAsync=qg;var sp=new Array(256);for(let e=0;e<sp.length;e++)sp[e]=e.toString(16).padStart(2,"0")});var $t=g(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.optionValidator=void 0;var Oi=C();function hR(e,t){let r=s((o,a,c)=>{let u=e[o];if(!(c&&u===void 0)){if(u===void 0)throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' is required, but no value was set. If using an environment variable, check that it is set correctly.`);if(a==="array"&&Array.isArray(u))throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be an array. Received type ${typeof u}.`);if(typeof u!==a)throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be of type ${a}. Received type ${typeof u}.`);if(typeof u=="string"&&u.length===0)throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be a non-empty string. The value received is empty. If using an environment variable, check that it is set correctly.`);if(typeof u=="number"&&isNaN(u))throw new Oi.ConfigurationError(`Value of '${String(o)}' on policy '${t}' must be valid number. If using an environment variable, check that it is set correctly.`)}},"validate"),n=s((o,a)=>(r(o,a,!0),{optional:n,required:i}),"optional"),i=s((o,a)=>(r(o,a,!1),{optional:n,required:i}),"required");return{optional:n,required:i}}s(hR,"optionValidator");pa.optionValidator=hR});var ap=g(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.StripeWebhookVerificationInboundPolicy=void 0;var fR=ae(),mR=$g(),yR=$t(),gR=s(async(e,t,r,n)=>{(0,yR.optionValidator)(r,n).required("signingSecret","string").optional("tolerance","number");let i=e.headers.get("stripe-signature");try{let o=await e.clone().text();await(0,mR.constructEventAsync)(o,i,r.signingSecret)}catch(o){return t.log.error("Error validating stripe webhook",o),fR.HttpProblems.badRequest(e,t,{title:"Webhook Error",detail:o.message})}return e},"StripeWebhookVerificationInboundPolicy");ha.StripeWebhookVerificationInboundPolicy=gR});var Vg=g(cp=>{"use strict";Object.defineProperty(cp,"__esModule",{value:!0});var jg=C(),bR={getSubscription:async({subscriptionId:e,stripeSecretKey:t,logger:r})=>{let n=await fetch(`https://api.stripe.com/v1/subscriptions/${e}`,{headers:{Authorization:`Bearer ${t}`}}),i=await n.json();if(n.status!==200){let o="Error retrieving subscription from Stripe API.";throw r.error(o,i),new jg.RuntimeError(o)}return i},getCustomer:async({customerId:e,stripeSecretKey:t,logger:r})=>{let n=await fetch(`https://api.stripe.com/v1/customers/${e}`,{headers:{Authorization:`Bearer ${t}`}}),i=await n.json();if(n.status!==200){let o="Error retrieving customer from Stripe API.";throw r.error(o,i),new jg.RuntimeError(o)}}};cp.default=bR});var Bg=g(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.isStripeWebhookEvent=void 0;var Gg=bt();function _R(e){return e!==null&&typeof e=="object"&&"id"in e&&(0,Gg.isString)(e.id)&&"type"in e&&(0,Gg.isString)(e.type)}s(_R,"isStripeWebhookEvent");fa.isStripeWebhookEvent=_R});var Kg=g(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.MeteringPlugin=void 0;var ER=gt(),up=class extends ER.SystemRuntimePlugin{static{s(this,"MeteringPlugin")}};ma.MeteringPlugin=up});var Wg=g(xn=>{"use strict";var wR=xn&&xn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xn,"__esModule",{value:!0});xn.StripeMeteringPlugin=void 0;var ya=yn(),Je=C(),vR=Dt(),TR=ap(),Ni=ae(),SR=Yt(),IR=zr(),PR=ku(),AR=st(),Jg=Be(),dp=Y(),zg=vi(),RR=wR(Vg()),OR=Bg(),NR=bt(),xR=Kg(),CR="checkout.session.completed",lp=class extends xR.MeteringPlugin{static{s(this,"StripeMeteringPlugin")}options;constructor(t){super(),this.options=t}registerRoutes(t,r){let n=s(async(c,u)=>{if(this.options.__testMode===!0)return u.log.warn("Received Stripe webhook event of in test mode."),"success";let{meteringBucketId:l,apiKeyBucketName:d}=this.options;if(!l)if(ya.environment.ZUPLO_METERING_SERVICE_BUCKET_ID)l=ya.environment.ZUPLO_METERING_SERVICE_BUCKET_ID;else throw new Je.ConfigurationError("StripeMeteringPlugin - No 'meteringBucketId' property provided");if(!d)if(ya.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME)d=ya.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME;else throw new Je.ConfigurationError("StripeMeteringPlugin - No 'apiKeyBucketName' property provided");if(!dp.Environment.instance.build.ACCOUNT_NAME)throw new Je.SystemError("Build environment is not configured correctly. Expected 'ACCOUNT_NAME' to be set.");let p=this.options.meteringBucketRegion??"us-central1";if(!UR(p))throw new Je.ConfigurationError(`StripeMeteringPlugin - The value '${p}' on the property 'meteringBucketRegion' is invalid.`);let m=await c.json();if(!(0,OR.isStripeWebhookEvent)(m))return Ni.HttpProblems.badRequest(c,u,{detail:"The received body was not in the expected format."});u.log.info(`Received Stripe webhook event of type '${m.type}' with ID '${m.id}'.`);let h,y,E;if(m.type===CR){let ne=m,ve=ne.data?.object?.subscription;if(!ve)throw new Je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.id' to be the subscription ID.");if(y=ne.data?.object?.client_reference_id,E=ne.data?.object?.customer_email,!y)throw new Je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.client_reference_id' to be the customer sub.");if(!E)throw new Je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.customer_email' to be the customer email.");if(!ve)throw new Je.RuntimeError("Invalid Stripe webhook event. Expected '.data.object.id' to be the subscription ID.");h=await RR.default.getSubscription({logger:u.log,stripeSecretKey:this.options.stripeSecretKey,subscriptionId:ve})}else return Ni.HttpProblems.ok(c,u,{detail:"Event was ignored by Stripe metering plugin webhook."});let T=h.id,S=h.customer,U=h.items?.data.find(ne=>ne.object==="subscription_item");if(!U||!U.id)throw new Je.RuntimeError("Invalid Stripe API result. Expected subscription to contain at least one subscription_item.");let $=U.plan;if(!$||!$.product)throw new Je.RuntimeError("Invalid Stripe API result. Expected subscription_item to have a plan.");let O=$.product,te=await LR({apiKeyBucketName:d,stripeProductId:O,stripeSubscriptionId:T,stripeCustomerId:S,managerEmail:E,managerSub:y,context:u});if(!te)return Ni.HttpProblems.internalServerError(c,u,{detail:"No consumer was created, skipping creation of subscription"});let re="routes.oas.json";try{await DR({context:u,stripeProductId:O,stripeSubscriptionId:T,customerKey:te,productKey:re,meteringBucketId:l,meteringBucketRegion:p,customerExternalId:S})}catch(ne){return Ni.HttpProblems.internalServerError(c,u,{detail:ne.message})}return Ni.HttpProblems.ok(c,u)},"stripeWebhookHandler"),i=(0,IR.createInternalPolicyProcessor)({inboundPolicies:[{handler:TR.StripeWebhookVerificationInboundPolicy,options:{signingSecret:this.options.webhooks.signingSecret,tolerance:this.options.webhooks.tolerance}}]}),o=new vR.Pipeline({processors:[SR.metricsProcessor,i],handler:n,gateway:r}),a=new AR.SystemRouteConfiguration({label:"PLUGIN_STRIPE_WEBHOOK_ROUTE",methods:["POST"],path:this.options.webhooks.routePath??"/__plugins/stripe/webhooks",systemRouteName:PR.SystemRouteName.StripePlugin});t.addRoute(a,o.execute)}};xn.StripeMeteringPlugin=lp;async function LR({apiKeyBucketName:e,stripeSubscriptionId:t,stripeProductId:r,stripeCustomerId:n,managerEmail:i,managerSub:o,context:a}){let{authApiJWT:c}=dp.Environment.instance,u="https://api-key-management-service-eq7z4lly2a-ue.a.run.app",l=new URL(`/v1/buckets/${e}/consumers`,u);l.searchParams.set("with-api-key","true");let d=crypto.randomUUID(),p={name:d,description:`Consumer for Stripe subscription ${t}`,tags:{subscriptionExternalId:t,planExternalId:r},metadata:{stripeSubscriptionId:t,stripeProductId:r,stripeCustomerId:n},managers:[{sub:o,email:i}]},m=await(0,zg.fetchRetry)({retryDelayMs:5,retries:2,logger:Jg.SystemLogMap.getLogger(a)},l.toString(),{method:"POST",headers:{Authorization:`Bearer ${c}`,"content-type":"application/json"},body:JSON.stringify(p)}),h=await m.json();if(m.status!==200){let y="Error creating API Key Consumer";throw a.log.error(y,h),new Je.RuntimeError(y)}return a.log.info("Successfully created API Key Consumer",{consumerId:d,stripeSubscriptionId:t,stripeProductId:r}),d}s(LR,"createConsumer");async function DR({context:e,stripeSubscriptionId:t,stripeProductId:r,customerKey:n,productKey:i,meteringBucketId:o,meteringBucketRegion:a,customerExternalId:c}){let u={status:"active",type:"periodic",renewalStrategy:"monthly",region:a,subscriptionExternalId:t,planExternalId:r,customerKey:n,productKey:i,customerExternalId:c},{authApiJWT:l,meteringServiceUrl:d}=dp.Environment.instance;if(!(0,NR.isNonEmptyString)(l))throw new Je.SystemError("No Zuplo JWT token set.");let p=await(0,zg.fetchRetry)({retryDelayMs:5,retries:2,logger:Jg.SystemLogMap.getLogger(e)},`${d}/internal/v1/metering/${o}/subscriptions`,{headers:{Authorization:`Bearer ${l}`,"Content-Type":"application/json","zp-rid":e.requestId},method:"POST",body:JSON.stringify(u)});if(!p.ok){let m="Error creating metering subscription.",h;try{h=await p.json()}catch{h={status:p.status,statusText:p.statusText}}throw e.log.error(m,h),new Je.RuntimeError(m)}e.log.info("Successfully created/updated metering subscription.",u)}s(DR,"saveSubscription");function UR(e){return e!==null&&typeof e=="string"&&["us-central1","europe-west4"].includes(e)}s(UR,"isMetricsRegion")});var eb=g(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.AmberfloMeteringInboundPolicy=Cn.AmberfloMeteringPolicy=void 0;var Qg=C(),MR=Te(),Yg=oi(),Xg=new WeakMap,Zg={},pp=class{static{s(this,"AmberfloMeteringPolicy")}static setRequestProperties(t,r){Xg.set(t,r)}};Cn.AmberfloMeteringPolicy=pp;async function kR(e,t,r,n){if(!r.statusCodes)throw new Qg.ConfigurationError(`Invalid AmberfloMeterInboundPolicy '${n}': options.statusCodes must be an array of HTTP status code numbers`);let i=Array.isArray(r.statusCodes)?r.statusCodes:(0,Yg.statusCodesStringToNumberArray)(r.statusCodes);return t.addResponseSendingFinalHook(async o=>{if(i.includes(o.status)){let a=Xg.get(t),c=r.customerId;if(r.customerIdPropertyPath){if(!e.user)throw new Qg.RuntimeError(`Unable to apply customerIdPropertyPath '${r.customerIdPropertyPath}' as request.user is 'undefined'.`);c=(0,Yg.getValueFromRequestUser)(e.user,r.customerIdPropertyPath,"customerIdPropertyPath")}let u=a?.customerId??c;if(!u){t.log.error(`Error in AmberfloMeterInboundPolicy '${n}': customerId cannot be undefined`);return}let l=a?.meterApiName??r.meterApiName;if(!l){t.log.error(`Error in AmberfloMeterInboundPolicy '${n}': meterApiName cannot be undefined`);return}let d=a?.meterValue??r.meterValue;if(!d){t.log.error(`Error in AmberfloMeterInboundPolicy '${n}': meterValue cannot be undefined`);return}let p={customerId:u,meterApiName:l,meterValue:d,meterTimeInMillis:Date.now(),dimensions:Object.apply(r.dimensions??{},a?.dimensions)},m=Zg[r.apiKey];if(!m){let h=r.apiKey,y=e.headers.get("zm-test-id")??"";m=new MR.BatchDispatch("amberflo-ingest-meter",10,async E=>{try{let T=r.url??"https://app.amberflo.io/ingest",S=await fetch(T,{method:"POST",body:JSON.stringify(E),headers:{"content-type":"application/json","x-api-key":h,"zm-test-id":y}});S.ok||t.log.error(`Unexpected response in AmberfloMeteringInboundPolicy '${n}'. ${S.status}: ${await S.text()}`)}catch(T){throw t.log.error(`Error in AmberfloMeteringInboundPolicy '${n}': ${T.message}`),T}}),Zg[h]=m}m.enqueue(p),t.waitUntil(m.waitUntilFlushed())}}),e}s(kR,"AmberfloMeteringInboundPolicy");Cn.AmberfloMeteringInboundPolicy=kR});var hp=g(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.sha256=void 0;async function HR(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest({name:"SHA-256"},t);return[...new Uint8Array(r)].map(i=>i.toString(16).padStart(2,"0")).join("")}s(HR,"sha256");ga.sha256=HR});var jt=g(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.getPolicyCacheName=void 0;var FR=hp(),tb=new Map;async function qR(e,t){let r,n=tb.get(e);return n!==void 0?r=n:(r=`zuplo-policy-${await(0,FR.sha256)(JSON.stringify({policyName:e,options:t}))}`,tb.set(e,r)),r}s(qR,"getPolicyCacheName");ba.getPolicyCacheName=qR});var yp=g(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.ApiKeyInboundPolicy=void 0;var $R=jt(),jR=Jt(),rb=yn(),fp=C(),VR=Ut(),nb=Be(),mp=Y(),GR=vi(),ib="key-metadata-cache-type";function BR(e,t){return t.authScheme===""?e:e.replace(`${t.authScheme} `,"")}s(BR,"getKeyValue");async function KR(e,t,r,n){if(!r.bucketName)if(rb.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME)r.bucketName=rb.environment.ZUPLO_API_KEY_SERVICE_BUCKET_NAME;else throw new fp.ConfigurationError(`ApiKeyInboundPolicy '${n}' - no bucketName property provided`);let i={authHeader:r.authHeader??"authorization",authScheme:r.authScheme??"Bearer",bucketName:r.bucketName,cacheTtlSeconds:r.cacheTtlSeconds??60,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests??!1,disableAutomaticallyAddingKeyHeaderToOpenApi:r.disableAutomaticallyAddingKeyHeaderToOpenApi??!1};if(i.cacheTtlSeconds<60)throw new fp.ConfigurationError(`ApiKeyInboundPolicy '${n}' - minimum cacheTtlSeconds value is 60s, '${i.cacheTtlSeconds}' is invalid`);let o=s(T=>i.allowUnauthenticatedRequests?e:VR.HttpProblems.unauthorized(e,t,{detail:T}),"unauthorizedResponse"),a=e.headers.get(i.authHeader);if(!a)return o("No Authorization Header");if(!a.toLowerCase().startsWith(i.authScheme.toLowerCase()))return o("Invalid Authorization Scheme");let c=BR(a,i);if(!c||c==="")return o("No key present");let u=await JR(c),l=await(0,$R.getPolicyCacheName)(n,i),d=new jR.MemoryZoneReadThroughCache(l,t),p=await d.get(u);if(p&&p.isValid===!0)return e.user=p.user,e;if(p&&!p.isValid)return p.typeId!==ib&&nb.SystemLogMap.getLogger(t).error(`ApiKeyInboundPolicy '${n}' - cached metadata has invalid typeId '${p.typeId}'`,p),o("Authorization Failed");let m={key:c},h=await(0,GR.fetchRetry)({retryDelayMs:5,retries:2,logger:nb.SystemLogMap.getLogger(t)},`${mp.Environment.instance.apiKeyServiceUrl}/v1/$validate/${i.bucketName}`,{method:"POST",headers:{"content-type":"application/json","zp-rid":t.requestId,"zp-dn":mp.Environment.instance.deploymentName??"unknown","User-Agent":mp.Environment.instance.systemUserAgent},body:JSON.stringify(m)});if(h.status===401)return t.log.info(`ApiKeyInboundPolicy '${n}' - 401 response from Key Service`),o("Authorization Failed");if(h.status!==200){try{let T=await h.text(),S=JSON.parse(T);t.log.error("Unexpected response from key service",S)}catch{t.log.error("Invalid response from key service")}throw new fp.RuntimeError(`ApiKeyInboundPolicy '${n}' - unexpected response from Key Service. Status: ${h.status}`)}let y=await h.json(),E={isValid:!0,typeId:ib,user:{sub:y.name,data:y.metadata}};return e.user=E.user,d.put(u,E,i.cacheTtlSeconds),e}s(KR,"ApiKeyInboundPolicy");_a.ApiKeyInboundPolicy=KR;async function JR(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("")}s(JR,"hashValue")});var ob=g(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.ApiAuthKeyInboundPolicy=void 0;var zR=yp();Ea.ApiAuthKeyInboundPolicy=zR.ApiKeyInboundPolicy});var Vt=g(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.OpenIdJwtInboundPolicy=void 0;var bp=(Is(),no(Ss)),_p=C(),WR=ae(),gp={},QR=s(async(e,t)=>{if(!t.jwkUrl||typeof t.jwkUrl!="string")throw new _p.ConfigurationError("Invalid State - jwkUrl not set");gp[t.jwkUrl]||(gp[t.jwkUrl]=(0,bp.createRemoteJWKSet)(new URL(t.jwkUrl),t.headers?{headers:t.headers}:void 0));let{payload:r}=await(0,bp.jwtVerify)(e,gp[t.jwkUrl],{issuer:t.issuer,audience:t.audience});return r},"jwkVerifier"),YR=s(async(e,t)=>{let r;if(t.secret===void 0)throw new Error("secretVerifier requires secret to be defined");if(typeof t.secret=="string"){let o=new TextEncoder().encode(t.secret);r=new Uint8Array(o)}else r=t.secret;let{payload:n}=await(0,bp.jwtVerify)(e,r,{issuer:t.issuer,audience:t.audience});return n},"secretVerifier"),ZR=s(async(e,t,r,n)=>{let i=e.headers.get("Authorization"),o="bearer ",a=s(m=>WR.HttpProblems.unauthorized(e,t,{detail:m}),"unauthorizedResponse");if(!r.jwkUrl&&!r.secret)throw new _p.ConfigurationError(`OpenIdJwtInboundPolicy policy '${n}': One of 'jwkUrl' or 'secret' options are required.`);if(r.jwkUrl&&r.secret)throw new _p.ConfigurationError(`OpenIdJwtInboundPolicy policy '${n}': Only one of 'jwkUrl' and 'secret' options should be provided.`);let c=r.jwkUrl?QR:YR,l=await s(async()=>{if(!i)return a("No authorization header");if(i.toLowerCase().indexOf(o)!==0)return a("Invalid bearer token format for authorization header");let m=i.substring(o.length);if(!m||m.length===0)return a("No bearer token on authorization header");try{return await c(m,r)}catch(h){let y=new URL(e.url);return"code"in h&&h.code==="ERR_JWT_EXPIRED"?t.log.warn(`Expired token used on url: ${y.pathname} `,h):t.log.warn(`Invalid token on: ${e.method} ${y.pathname}`,h),a("Invalid token")}},"getJwtOrRejectedResponse")();if(l instanceof Response)return r.allowUnauthenticatedRequests===!0?e:l;let d=r.subPropertyName??"sub",p=l[d];return p?(e.user={sub:p,data:l},e):a(`Token is not valid, no '${d}' property found.`)},"OpenIdJwtInboundPolicy");wa.OpenIdJwtInboundPolicy=ZR});var sb=g(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.Auth0JwtInboundPolicy=void 0;var XR=Vt(),e0=s(async(e,t,r,n)=>(0,XR.OpenIdJwtInboundPolicy)(e,t,{issuer:`https://${r.auth0Domain}/`,audience:r.audience,jwkUrl:`https://${r.auth0Domain}/.well-known/jwks.json`,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n),"Auth0JwtInboundPolicy");va.Auth0JwtInboundPolicy=e0});var ab=g(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.BasicAuthInboundPolicy=void 0;var t0=ae(),r0=s(async(e,t,r)=>{let n=e.headers.get("Authorization"),i="basic ",o=s(l=>t0.HttpProblems.unauthorized(e,t,{detail:l}),"unauthorizedResponse"),c=await s(async()=>{if(!n)return await o("No Authorization header");if(n.toLowerCase().indexOf(i)!==0)return await o("Invalid Basic token format for Authorization header");let l=n.substring(i.length);if(!l||l.length===0)return await o("No username:password provided");let d=atob(l).normalize(),p=d.indexOf(":");if(p===-1||/[\0-\x1F\x7F]/.test(d))return await o("Invalid basic token value - see https://tools.ietf.org/html/rfc5234#appendix-B.1");let m=d.substring(0,p),h=d.substring(p+1),y=r.accounts.find(E=>E.username===m&&E.password===h);return y||await o("Invalid username or password")},"getAccountOrRejectedResponse")();if(c instanceof Response)return r.allowUnauthenticatedRequests?e:c;let u=c.username;return e.user={sub:u,data:c.data},e},"BasicAuthInboundPolicy");Ta.BasicAuthInboundPolicy=r0});var cb=g(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.CachingInboundPolicy=void 0;var n0=jt(),i0=["cdn-cache-control","cloudflare-cdn-cache-control","surrogate-control","cache-tag","expires"];async function o0(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("")}s(o0,"digestMessage");var s0=s(async(e,t)=>{let r=[...t.dangerouslyIgnoreAuthorizationHeader===!0?[]:["authorization"],...t.headers??[]],n=[];for(let[d,p]of e.headers.entries())r.includes(d)&&n.push({key:d.toLowerCase(),value:p});n.sort((d,p)=>d.key.localeCompare(p.key));let i=await o0(JSON.stringify(n)),o=new URL(e.url),a=new URLSearchParams(o.searchParams);a.set("_z-hdr-dgst",i);let c=t.cacheHttpMethods?.includes(e.method.toUpperCase())&&e.method.toUpperCase()!=="GET";c&&a.set("_z-original-method",e.method);let u=`${o.origin}${o.pathname}?${a}`;return new Request(u,{method:c?"GET":e.method})},"createCacheKeyRequest");async function a0(e,t,r,n){let i=await(0,n0.getPolicyCacheName)(n,r),o=await caches.open(i),a=r?.cacheHttpMethods?.map(l=>l.toUpperCase())??["GET"],c=await s0(e,r),u=await o.match(c);return u||(t.addEventListener("responseSent",l=>{try{let d=r.statusCodes??[200,206,301,302,303,404,410],p=l.response.clone();if(!d.includes(p.status)||!a.includes(e.method.toUpperCase()))return;let m=r?.expirationSecondsTtl??60,h=new Response(p.body,p);i0.forEach(y=>h.headers.delete(y)),h.headers.set("cache-control",`s-maxage=${m}`),t.waitUntil(o.put(c,h))}catch(d){t.log.error(`Error in caching-inbound-policy '${n}': "${d.message}"`,d)}}),e)}s(a0,"CachingInboundPolicy");Sa.CachingInboundPolicy=a0});var ub=g(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.ChangeMethodInboundPolicy=void 0;var c0=C(),u0=He(),l0=s(async(e,t,r,n)=>{if(!r.method)throw new c0.ConfigurationError(`ChangeMethodInboundPolicy '${n}' options.method must be valid HttpMethod`);return new u0.ZuploRequest(e,{method:r.method})},"ChangeMethodInboundPolicy");Ia.ChangeMethodInboundPolicy=l0});var lb=g(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.ClearHeadersInboundPolicy=void 0;var d0=He(),p0=s(async(e,t,r)=>{let n=[...r.exclude??[]],i=new Headers;return n.forEach(a=>{let c=e.headers.get(a);c&&i.set(a,c)}),new d0.ZuploRequest(e,{headers:i})},"ClearHeadersInboundPolicy");Pa.ClearHeadersInboundPolicy=p0});var db=g(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.ClearHeadersOutboundPolicy=void 0;var h0=s(async(e,t,r,n)=>{let i=[...n.exclude??[]],o=new Headers;return i.forEach(c=>{let u=e.headers.get(c);u&&o.set(c,u)}),new Response(e.body,{headers:o,status:e.status,statusText:e.statusText})},"ClearHeadersOutboundPolicy");Aa.ClearHeadersOutboundPolicy=h0});var pb=g(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.ClerkJwtInboundPolicy=void 0;var f0=Vt(),m0=s(async(e,t,r,n)=>{let i=new URL(r.frontendApiUrl.startsWith("https://")||r.frontendApiUrl.startsWith("http://")?r.frontendApiUrl:`https://${r.frontendApiUrl}`),o=new URL(i);return o.pathname="/.well-known/jwks.json",(0,f0.OpenIdJwtInboundPolicy)(e,t,{issuer:i.href.slice(0,-1),jwkUrl:o.toString(),allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n)},"ClerkJwtInboundPolicy");Ra.ClerkJwtInboundPolicy=m0});var fb=g(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.CognitoJwtInboundPolicy=void 0;var hb=C(),y0=Vt(),g0=s(async(e,t,r,n)=>{if(!r.userPoolId)throw new hb.ConfigurationError("userPoolId must be set in the options for CognitoJwtInboundPolicy");if(!r.region)throw new hb.ConfigurationError("region must be set in the options for CognitoJwtInboundPolicy");return(0,y0.OpenIdJwtInboundPolicy)(e,t,{issuer:`https://cognito-idp.${r.region}.amazonaws.com/${r.userPoolId}`,jwkUrl:`https://cognito-idp.${r.region}.amazonaws.com/${r.userPoolId}/.well-known/jwks.json`,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n)},"CognitoJwtInboundPolicy");Oa.CognitoJwtInboundPolicy=g0});var yb=g(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.CompositeInboundPolicy=void 0;var b0=C(),_0=mn(),mb=zr(),E0=s(async(e,t,r,n)=>{if(!r.policies||r.policies.length===0)throw new b0.ConfigurationError(`CompositeInboundPolicy '${n}' must have valid policies defined`);let i=_0.Gateway.instance,o=(0,mb.getInboundPolicyHandlerAndOptions)(r.policies,i?.routeData.policies);return(0,mb.toStackedInboundHandler)(o)(e,t)},"CompositeInboundPolicy");Na.CompositeInboundPolicy=E0});var bb=g(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.CreditsMeteringInboundPolicy=void 0;var xi=ae(),gb=Y(),w0=s(async(e,t,r)=>{let n=e.user;if(!n)return xi.HttpProblems.unauthorized(e,t,{title:"Unable to check subscription for anonymous user",detail:"No user data on request"});let{sub:i}=n;if(!r.bucketId)return xi.HttpProblems.unauthorized(e,t,{title:"Metering bucket not configured",detail:"Specify one using the bucketId option on the policy"});let o=r.bucketId,a=await v0(o,i,t);if(!a)return xi.HttpProblems.unauthorized(e,t,{title:"No valid, active subscription found"});if(!a.quotas)return xi.HttpProblems.forbidden(e,t,{title:"Insufficient credits"});for(let c of Object.keys(a.quotas))if(a.quotas[c]<=0)return xi.HttpProblems.forbidden(e,t,{title:"Insufficient credits"});return t.custom.subscription=a,t.addResponseSendingFinalHook(async()=>{let c=t.custom.meters,u={};for(let l of Object.keys(c))u[l]=c[l];await T0(o,a.id,u,t)}),e},"CreditsMeteringInboundPolicy");xa.CreditsMeteringInboundPolicy=w0;async function v0(e,t,r){let{authApiJWT:n,meteringServiceUrl:i}=gb.Environment.instance,o=new URL(`${i}/internal/v1/metering/${e}/subscriptions`);o.search=new URLSearchParams({customerKey:t,status:"active"}).toString();let a=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${n}`,"zp-rid":r.requestId}});if(!a.ok)throw new Error(`Error retrieving subscriptions for credits metering ': ${a.status} - ${await a.text()}`);let c=await a.json();if(c.data.length!==0)return c.data.length>1&&r.log.warn(`Found more than one active subscription for customer ${t} -- using the first one.`),c.data[0]}s(v0,"getSubscription");async function T0(e,t,r,n){let{authApiJWT:i,meteringServiceUrl:o}=gb.Environment.instance,a=new URL(`${o}/internal/v1/metering/${e}/subscriptions/${t}/quotas/consume`),c=await fetch(a,{method:"POST",body:JSON.stringify({meters:r}),headers:{Authorization:`Bearer ${i}`,"zp-rid":n.requestId}});c.ok||n.log.error(`Error consuming subscription quotas for credits metering ': ${c.status} - ${await c.text()}`)}s(T0,"consumeSubscription")});var _b=g(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.CurityPhantomTokenInboundPolicy=void 0;var S0=jt(),I0=Jt(),Ca=ae(),P0=s(async(e,t,r,n)=>{let i=e.headers.get("Authorization");if(!i)return Ca.HttpProblems.unauthorized(e,t,{detail:"No authorization header"});let o=A0(i);if(!o)return Ca.HttpProblems.unauthorized(e,t,{detail:"Failed to parse token from Authorization header"});let a=await(0,S0.getPolicyCacheName)(n,r),c=new I0.MemoryZoneReadThroughCache(a,t),u=await c.get(o);if(!u){let l=await fetch(r.introspectionUrl,{headers:{Authorization:"Basic "+btoa(`${r.clientId}:${r.clientSecret}`),Accept:"application/jwt","Content-Type":"application/x-www-form-urlencoded"},method:"POST",body:"token="+o+"&token_type_hint=access_token"}),d=await l.text();if(l.status===200)u=d,c.put(o,u,r.cacheDurationSeconds??600);else return l.status>=500?(t.log.error(`Error introspecting token - ${l.status}: '${d}'`),Ca.HttpProblems.internalServerError(e,t,{detail:"Problem encountered authorizing the HTTP request"})):Ca.HttpProblems.unauthorized(e,t)}return e.headers.set("Authorization",`Bearer ${u}`),e},"CurityPhantomTokenInboundPolicy");La.CurityPhantomTokenInboundPolicy=P0;function A0(e){return e.split(" ")[0]==="Bearer"?e.split(" ")[1]:null}s(A0,"getToken")});var Eb=g(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.FirebaseJwtInboundPolicy=void 0;var R0=$t(),O0=Vt(),N0=s(async(e,t,r,n)=>((0,R0.optionValidator)(r,n).required("projectId","string").optional("allowUnauthenticatedRequests","boolean"),(0,O0.OpenIdJwtInboundPolicy)(e,t,{issuer:`https://securetoken.google.com/${r.projectId}`,audience:r.projectId,jwkUrl:"https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n)),"FirebaseJwtInboundPolicy");Da.FirebaseJwtInboundPolicy=N0});var wb=g(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.FormDataToJsonInboundPolicy=void 0;var x0=He(),C0=s(async(e,t,r)=>{let n="application/x-www-form-urlencoded",i="multipart/form-data",o=e.headers.get("content-type")?.toLowerCase();if(!o||![i,n].includes(o))return r&&r.badRequestIfNotFormData?new Response(`Bad Request - expected content-type '${n}' or ${i}`,{status:400,statusText:"Bad Request"}):e;let a=await e.formData();if(r&&r.optionalHoneypotName&&a.get(r.optionalHoneypotName)!=="")return new Response("Bad Request",{status:400,statusText:"Bad Request"});let c={};for(let[d,p]of a)c[d]=p.toString();let u=new Headers(e.headers);return u.set("content-type","application/json"),u.delete("content-length"),new x0.ZuploRequest(e,{body:JSON.stringify(c),headers:u})},"FormDataToJsonInboundPolicy");Ua.FormDataToJsonInboundPolicy=C0});var vb=g(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.GeoFilterInboundPolicy=void 0;var L0=C(),D0=ae(),Ln="__unknown__",U0=s(async(e,t,r,n)=>{let i={allow:{countries:Un(r.allow?.countries,"allow.countries",n),regionCodes:Un(r.allow?.regionCodes,"allow.regionCode",n),asns:Un(r.allow?.asns,"allow.asOrganization",n)},block:{countries:Un(r.block?.countries,"block.countries",n),regionCodes:Un(r.block?.regionCodes,"block.regionCode",n),asns:Un(r.block?.asns,"block.asOrganization",n)},ignoreUnknown:r.ignoreUnknown!==!1},o=t.incomingRequestProperties.country?.toLowerCase()??Ln,a=t.incomingRequestProperties.regionCode?.toLowerCase()??Ln,c=t.incomingRequestProperties.asn?.toString()??Ln,u=i.ignoreUnknown&&o===Ln,l=i.ignoreUnknown&&a===Ln,d=i.ignoreUnknown&&c===Ln,p=i.allow.countries,m=i.allow.regionCodes,h=i.allow.asns;if(p.length>0&&!p.includes(o)&&!u||m.length>0&&!m.includes(a)&&!l||h.length>0&&!h.includes(c)&&!d)return Dn(e,t,n,o,a,c);let y=i.block.countries,E=i.block.regionCodes,T=i.block.asns;return y.length>0&&y.includes(o)&&!u||E.length>0&&E.includes(a)&&!l||T.length>0&&T.includes(c)&&!d?Dn(e,t,n,o,a,c):e},"GeoFilterInboundPolicy");Ma.GeoFilterInboundPolicy=U0;function Dn(e,t,r,n,i,o){return t.log.debug(`Request blocked by GeoFilterInboundPolicy '${r}' (country: '${n}', regionCode: '${i}', asn: '${o}')`),D0.HttpProblems.forbidden(e,t,{geographicContext:{country:n,regionCode:i,asn:o}})}s(Dn,"blockedResponse");function Un(e,t,r){if(typeof e=="string")return e.split(",").map(n=>n.trim().toLowerCase());if(typeof e>"u")return[];if(Array.isArray(e))return e.map(n=>n.trim().toLowerCase());throw new L0.ConfigurationError(`Invalid '${t}' for GeoFilterInboundPolicy '${r}': '${e}', must be a string or string[]`)}s(Un,"toLowerStringArray")});var Tb=g(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.JWTScopeValidationInboundPolicy=void 0;var M0=s(async(e,t,r)=>{let n=e.user?.data.scope.split(" ")||[];if(!s((o,a)=>a.every(c=>o.includes(c)),"scopeChecker")(n,r.scopes)){let o={code:"UNAUTHORIZED",help_url:"https://zup.fail/UNAUTHORIZED",message:`JWT must have all the following scopes: ${r.scopes}`};return new Response(JSON.stringify(o),{status:401,statusText:"Unauthorized",headers:{"content-type":"application/json"}})}return e},"JWTScopeValidationInboundPolicy");ka.JWTScopeValidationInboundPolicy=M0});var Ib=g(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.MockApiInboundPolicy=void 0;var k0=ae(),H0=s(async(e,t,r,n)=>{let i=t.route.raw().responses;if(!i)return Ep(n,e,t,"No responses defined in the OpenAPI document. Add some responses with examples to use this policy.");let o=Object.keys(i),a=[];if(o.length===0)return Ep(n,e,t,"No response object defined under responses in the OpenAPI document. Add some response objects with examples to use this policy.");if(o.forEach(c=>{i[c].content&&Object.keys(i[c].content).forEach(l=>{let d=i[c].content[l].examples;d&&Object.keys(d).forEach(m=>{a.push({responseName:c,contentName:l,exampleName:m,exampleValue:d[m]})})})}),a=a.filter(c=>!(r.responsePrefixFilter&&!c.responseName.startsWith(r.responsePrefixFilter)||r.contentType&&c.contentName!==r.contentType||r.exampleName&&c.exampleName!==r.exampleName)),r.random&&a.length>1){let c=Math.floor(Math.random()*a.length);return Sb(a[c])}else return a.length>0?Sb(a[0]):Ep(n,e,t,"No examples matching the mocking options found in the OpenAPI document. Add examples to the OpenAPI document matching the options for this policy or change the mocking options to match the examples in the OpenAPI document.")},"MockApiInboundPolicy");Ha.MockApiInboundPolicy=H0;function Sb(e){let t=JSON.stringify(e.exampleValue,null,2),r=new Headers;switch(r.set("Content-Type",e.contentName),e.responseName){case"1XX":return new Response(t,{status:100,headers:r});case"2XX":return new Response(t,{status:200,headers:r});case"3XX":return new Response(t,{status:300,headers:r});case"4XX":return new Response(t,{status:400,headers:r});case"5XX":case"default":return new Response(t,{status:500,headers:r});default:return new Response(t,{status:Number(e.responseName),headers:r})}}s(Sb,"generateResponse");var Ep=s((e,t,r,n)=>{let i=`Error in policy: ${e} - On route ${t.method} ${r.route.path}. ${n}`;return k0.HttpProblems.internalServerError(t,r,{detail:i})},"getProblemDetailResponse")});var Nb=g(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.MoesifInboundPolicy=Mn.setMoesifContext=void 0;var F0=C(),q0=Te(),$0="Incoming",j0={logRequestBody:!0,logResponseBody:!0};function Pb(e){let t={};return e.forEach((r,n)=>{t[n]=r}),t}s(Pb,"headersToObject");function Ab(){return new Date().toISOString()}s(Ab,"timestamp");var wp=new WeakMap,V0={};function G0(e,t){let r=wp.get(e);r||(r=V0);let n=Object.assign({...r},t);wp.set(e,n)}s(G0,"setMoesifContext");Mn.setMoesifContext=G0;async function Rb(e,t){let r=e.headers.get("content-type");if(r&&r.indexOf("json")!==0)try{return await e.clone().json()}catch(i){t.log.error(i)}let n=await e.clone().text();return t.log.debug({textBody:n}),n}s(Rb,"readBody");var B0={},vp;function Ob(){if(!vp)throw new F0.RuntimeError("Invalid State - no _lastLogger");return vp}s(Ob,"getLastLogger");function K0(e){let t=B0[e];return t||(t=new q0.BatchDispatch("moesif-inbound",100,async r=>{let n=JSON.stringify(r);Ob().debug("posting",n);let i=await fetch("https://api.moesif.net/v1/events/batch",{method:"POST",headers:{"content-type":"application/json","X-Moesif-Application-Id":e},body:n});i.ok||Ob().error({status:i.status,body:await i.text()})})),t}s(K0,"getDispatcher");async function J0(e,t,r,n){vp=t.log;let i=Ab(),o=Object.assign(j0,r);if(!o.applicationId)throw new Error(`Invalid configuration for MoesifInboundPolicy '${n}' - applicationId is required`);let a=o.logRequestBody?await Rb(e,t):void 0;return t.addResponseSendingFinalHook(async(c,u)=>{let l=K0(o.applicationId),d=e.headers.get("true-client-ip"),p=wp.get(t)??{},m={time:i,uri:e.url,verb:e.method,body:a,ip_address:d??void 0,api_version:p.apiVersion,headers:Pb(e.headers)},h=o.logResponseBody?await Rb(c,t):void 0,y={time:Ab(),status:c.status,headers:Pb(c.headers),body:h},E={request:m,response:y,user_id:p.userId??u.user?.sub,session_token:p.sessionToken,company_id:p.companyId,metadata:p.metadata,direction:$0};l.enqueue(E),t.waitUntil(l.waitUntilFlushed())}),e}s(J0,"MoesifInboundPolicy");Mn.MoesifInboundPolicy=J0});var xb=g(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.OktaJwtInboundPolicy=void 0;var z0=Vt(),W0=s(async(e,t,r,n)=>(0,z0.OpenIdJwtInboundPolicy)(e,t,{issuer:r.issuerUrl,audience:r.audience,jwkUrl:`${r.issuerUrl}/v1/keys`,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests},n),"OktaJwtInboundPolicy");Fa.OktaJwtInboundPolicy=W0});var Cb=g(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.PropelAuthJwtInboundPolicy=void 0;var Q0=(Is(),no(Ss)),Y0=Vt(),Tp,Z0=s(async(e,t,r,n)=>{if(!Tp)try{Tp=await(0,Q0.importSPKI)(r.verifierKey,"RS256")}catch(i){throw t.log.error("Could not import verifier key"),i}return(0,Y0.OpenIdJwtInboundPolicy)(e,t,{issuer:r.authUrl,secret:Tp,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests,subPropertyName:"user_id"},n)},"PropelAuthJwtInboundPolicy");qa.PropelAuthJwtInboundPolicy=Z0});var Lb=g(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.throwIfStateNotObject=G.throwIfStateNotNumber=G.throwIfStateNotString=G.throwIfStateUndefinedOrNull=G.throwIfStateUndefined=G.throwIfOptionNotObject=G.throwIfOptionNotNumber=G.throwIfOptionNotString=G.throwIfOptionUndefinedOrNull=G.throwIfOptionUndefined=G.OptionTypeError=G.OptionUndefinedError=G.throwIfNotNumber=G.throwIfNotString=G.throwIfUndefinedOrNull=G.throwIfUndefined=G.ArgumentTypeError=G.ArgumentUndefinedError=G.ValidationError=void 0;var je=bt(),tt=class extends Error{static{s(this,"ValidationError")}constructor(t){super(t)}};G.ValidationError=tt;var Ci=class extends tt{static{s(this,"ArgumentUndefinedError")}constructor(t){super(`The argument '${t}' is undefined.`)}};G.ArgumentUndefinedError=Ci;var Li=class extends tt{static{s(this,"ArgumentTypeError")}constructor(t,r){super(`The argument '${t}' must be of type '${r}'.`)}};G.ArgumentTypeError=Li;function X0(e,t){if((0,je.isUndefined)(e))throw new Ci(t)}s(X0,"throwIfUndefined");G.throwIfUndefined=X0;function Sp(e,t){if((0,je.isUndefinedOrNull)(e))throw new Ci(t)}s(Sp,"throwIfUndefinedOrNull");G.throwIfUndefinedOrNull=Sp;function eO(e,t){if(Sp(e,t),!(0,je.isString)(e))throw new Li(t,"string")}s(eO,"throwIfNotString");G.throwIfNotString=eO;function tO(e,t){if(Sp(e,t),!(0,je.isNumber)(e))throw new Li(t,"number")}s(tO,"throwIfNotNumber");G.throwIfNotNumber=tO;var Di=class extends tt{static{s(this,"OptionUndefinedError")}constructor(t,r,n){super(`The option '${n}' on the ${t} named '${r}' is undefined.`)}};G.OptionUndefinedError=Di;var kn=class extends tt{static{s(this,"OptionTypeError")}constructor(t,r,n,i){super(`The option '${n}' on the ${t} named '${r}' must be of type '${i}'.`)}};G.OptionTypeError=kn;function rO(e,t,r,n){if((0,je.isUndefined)(n))throw new Di(e,t,r)}s(rO,"throwIfOptionUndefined");G.throwIfOptionUndefined=rO;function $a(e,t,r,n){if((0,je.isUndefinedOrNull)(n))throw new Di(e,t,r)}s($a,"throwIfOptionUndefinedOrNull");G.throwIfOptionUndefinedOrNull=$a;function nO(e,t,r,n){if($a(e,t,r,n),!(0,je.isString)(n))throw new kn(e,t,r,"string")}s(nO,"throwIfOptionNotString");G.throwIfOptionNotString=nO;function iO(e,t,r,n){if($a(e,t,r,n),!(0,je.isNumber)(n))throw new kn(e,t,r,"number")}s(iO,"throwIfOptionNotNumber");G.throwIfOptionNotNumber=iO;function oO(e,t,r,n){if($a(e,t,r,n),!(0,je.isObject)(n))throw new kn(e,t,r,"object")}s(oO,"throwIfOptionNotObject");G.throwIfOptionNotObject=oO;function sO(e,t){if((0,je.isUndefined)(e))throw new tt(t)}s(sO,"throwIfStateUndefined");G.throwIfStateUndefined=sO;function ja(e,t){if((0,je.isUndefinedOrNull)(e))throw new tt(t)}s(ja,"throwIfStateUndefinedOrNull");G.throwIfStateUndefinedOrNull=ja;function aO(e,t){if(ja(e,t),!(0,je.isString)(e))throw new tt(t);return!0}s(aO,"throwIfStateNotString");G.throwIfStateNotString=aO;function cO(e,t){if(ja(e,t),!(0,je.isNumber)(e))throw new tt(t);return!0}s(cO,"throwIfStateNotNumber");G.throwIfStateNotNumber=cO;function uO(e,t){if(ja(e,t),!(0,je.isObject)(e))throw new tt(t);return!0}s(uO,"throwIfStateNotObject");G.throwIfStateNotObject=uO});var Db=g(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.InMemoryRedisClient=Hn.StandardRedisClient=void 0;var Ip=C(),Va=Lb(),Pp=class e{static{s(this,"StandardRedisClient")}static instance;redisClientUrl;clientAuthToken;userAgent;deploymentName;constructor(t,r,n,i){this.redisClientUrl=t,this.clientAuthToken=r,this.deploymentName=n,this.userAgent=i}static initialize(t,r,n,i){return(0,Va.throwIfNotString)(t,"redisClientUrl"),(0,Va.throwIfNotString)(r,"clientAuthToken"),e.instance||(e.instance=new e(t,r,n,i)),e.instance}isEnabled(){return this.redisClientUrl!==void 0&&this.clientAuthToken!==void 0}async fetch({url:t,body:r,method:n,requestId:i}){(0,Va.throwIfNotString)(t,"url");let o=await fetch(`${this.redisClientUrl}${t}`,{method:n,body:r,headers:{"content-type":"application/json",authorization:`Bearer ${this.clientAuthToken}`,"zp-rid":i,"zp-dn":this.deploymentName,"User-Agent":this.userAgent}}),a=o.headers.get("Content-Type")?.includes("application/json")?await o.json():await o.text();if(o.ok)return a;throw o.status===401?new Ip.SystemError("Redis client failed with 401: Unauthorized"):new Ip.SystemError(`Redis client failed with (${o.status}): ${typeof a=="string"?a:JSON.stringify(a,null,2)}`)}};Hn.StandardRedisClient=Pp;var Ap=class{static{s(this,"InMemoryRedisClient")}keyValueStore;constructor(){this.keyValueStore=new Map}isEnabled(){return!0}fetch({url:t,body:r,method:n}){if((0,Va.throwIfNotString)(t,"url"),n==="POST"&&t==="/rate-limit"){let{incrBy:i,expire:o,key:a}=JSON.parse(r),c=Date.now()+o*1e3,u=this.keyValueStore.get(a);u?Date.now()>u.expiresAt?this.keyValueStore.set(a,{value:i,expiresAt:c}):this.keyValueStore.set(a,{value:u.value+i,expiresAt:u.expiresAt}):this.keyValueStore.set(a,{value:i,expiresAt:c});let l=this.keyValueStore.get(a);return Promise.resolve({count:l.value,ttlSeconds:Math.round((l.expiresAt-Date.now())/1e3)})}throw new Ip.SystemError("The in-memory redis client only supports /rate-limit calls")}};Hn.InMemoryRedisClient=Ap});var Fb=g(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.RateLimitInboundPolicy=void 0;var lO=Sr(),dO=jt(),pO=ti(),Rt=C(),hO=ae(),Ub=Be(),Ui=Y(),Mb=Db(),kb=bt(),Ga=(0,lO.debug)("zuplo:policies:RateLimitInboundPolicy"),fO="strict",mO=s(e=>{let t=e.headers.get("cf-connecting-ip")??e.headers.get("true-client-ip");if(t)return t;let r=e.headers.get("x-forwarded-for");return r?r.split(",")[0]:"127.0.0.1"},"getRealIP"),yO=s(async e=>({key:`ip-${mO(e)}`}),"getIP"),gO=s(async e=>({key:`user-${e.user?.sub??"anonymous"}`}),"getUser"),bO=s(async()=>({key:"all-2d77ce9d-9a3c-4206-9ab2-668cfd271095"}),"getAll"),Ba;function _O(e,t){let r;if(Ba)return Ba;if(Ui.Environment.instance.isLocalDevelopment)return t.info("Using in-memory redis client for local development."),r=new Mb.InMemoryRedisClient,Ba=r,r;let{authApiJWT:n,redisURL:i}=Ui.Environment.instance;if(!(0,kb.isString)(i))throw new Rt.SystemError(`RateLimitInboundPolicy '${e}' - rate limit service URL not configured`);if(!(0,kb.isString)(n))throw new Rt.SystemError(`RateLimitInboundPolicy '${e}' - service authentication not configured`);if(i&&(r=Mb.StandardRedisClient.initialize(i,n,Ui.Environment.instance.deploymentName??"unknown",Ui.Environment.instance.systemUserAgent)),!r||!r.isEnabled())throw new Rt.SystemError(`RateLimitInboundPolicy '${e}' - no redis ('${r}') or redis.isEnabled ('${r?.isEnabled}) is false`);return Ba=r,r}s(_O,"getRedisClient");async function Hb(e,t,r,n,i){let o=Math.floor(t*60);return await r.fetch({url:"/rate-limit",method:"POST",body:JSON.stringify({incrBy:1,expire:o,key:e}),requestId:i})}s(Hb,"getCountAndUpdateExpiry");function EO(e,t){let r;if(e.rateLimitBy==="function"){if(!e.identifier)throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - If rateLimitBy set to 'function' options.identifier must be specified`);if(!e.identifier.module)throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - If rateLimitBy set to 'function' options.identifier.module must be specified`);if(!e.identifier.export)throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - If rateLimitBy set to 'function' options.identifier.export must be specified`);if(r=e.identifier.module[e.identifier.export],!r||typeof r!="function")throw new Rt.ConfigurationError(`RateLimitInboundPolicy '${t}' - Custom rate limit function must be a valid function`)}return s(async(i,o,a)=>{let c=await r(i,o,a);if(!c.key){let u=`RateLimitInboundPolicy '${a}' - Custom rate limit function must return a valid key property '${JSON.stringify(c,null,2)}'`;throw o.log.error(u),new Rt.RuntimeError(u)}return c},"outerFunction")}s(EO,"wrapUserFunction");var wO="Retry-After",vO=s(async(e,t,r,n)=>{let i=Date.now(),o=Ub.SystemLogMap.getLogger(t),a=s((u,l)=>{if(r.throwOnFailure)throw new Rt.SystemError(u,{cause:l});o.error(u,l)},"throwOrLog"),c=s((u,l)=>{let d={};return(!u||u==="retry-after")&&(d[wO]=l.toString()),hO.HttpProblems.tooManyRequests(e,t,void 0,d)},"rateLimited");try{let l={function:EO(r,n),user:gO,ip:yO,all:bO}[r.rateLimitBy],d=await l(e,t,n),p=d.key,m=d.requestsAllowed??r.requestsAllowed,h=d.timeWindowMinutes??r.timeWindowMinutes,y=r.headerMode??"retry-after",E=_O(n,o),S=`bucket/${Ui.Environment.instance.build.BUILD_ID}/${n}/${p}`;if((r.mode??fO)==="async"){let O=await(0,dO.getPolicyCacheName)(n,r),te=new pO.ZoneCache(O,{logger:Ub.SystemLogMap.getLogger(t)}),re=Hb(S,h,E,o,t.requestId),ne=await te.get(S);if(ne!==void 0&&ne<=Date.now()){Ga(`RateLimitInboundPolicy '${n}' - returning 429 from cache for '${S}' (async mode)`);let ve=Math.round((ne-Date.now())/1e3);return c(y,ve)}return t.addEventListener("responseSending",ve=>{try{let w=ve,H=w.mutableResponse;w.mutableResponse=(async()=>{let Le=await re;if(Le.count>m){let au=Date.now()+Le.ttlSeconds*1e3,AE=te.put(S,au,Le.ttlSeconds).catch(mh=>{throw o.error(new Rt.SystemError("Error caching rate limit result.",{cause:mh})),mh});return t.waitUntil(AE),Ga(`RateLimitInboundPolicy '${n}' - returning 429 from redis for '${S}' (async mode)`),c(y,Le.ttlSeconds)}return H})()}catch(w){o.error(`RateLimitInboundPolicy '${n}' -error in responseSending`,w)}}),e}let $=await Hb(S,h,E,o,t.requestId);return $.count>m?(Ga(`RateLimitInboundPolicy '${n}' - returning 429 from redis for '${S}' (strict mode)`),c(y,$.ttlSeconds)):e}catch(u){return a(u.message,u),e}finally{let u=Date.now()-i;Ga(`RateLimitInboundPolicy '${n}' - latency ${u}ms`)}},"RateLimitInboundPolicy");Ka.RateLimitInboundPolicy=vO});var Vb=g(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.ReadmeMetricsInboundPolicy=void 0;var TO=Te(),Rp=Y(),qb=oi(),Op;function $b(e){let t=[];for(let[r,n]of e)t.push({name:r,value:n});return t}s($b,"headersToNameValuePairs");function SO(e){let t=[];return Object.entries(e).forEach(([r,n])=>{t.push({name:r,value:n})}),t}s(SO,"queryToNameValueParis");function IO(e){if(e===null)return;let t=parseFloat(e);if(!isNaN(t))return t}s(IO,"parseIntOrUndefined");var jb={};async function PO(e,t,r,n){let i=new Date,o=Date.now();return Op||(Op={name:"zuplo",version:Rp.Environment.instance.build.ZUPLO_VERSION,comment:`zuplo/${Rp.Environment.instance.build.ZUPLO_VERSION}`}),t.addResponseSendingFinalHook(async a=>{try{let c=r.userLabelPropertyPath&&e.user?(0,qb.getValueFromRequestUser)(e.user,r.userLabelPropertyPath,"userLabelPropertyPath"):e.user?.sub,u=r.userEmailPropertyPath&&e.user?(0,qb.getValueFromRequestUser)(e.user,r.userEmailPropertyPath,"userEmailPropertyPath"):void 0,l={clientIPAddress:e.headers.get("true-client-ip")??"",development:r.development!==void 0?r.development:Rp.Environment.instance.isDeno,group:{label:c,email:u,id:e.user?.sub??"anonymous"},request:{log:{creator:Op,entries:[{startedDateTime:i.toISOString(),time:Date.now()-o,request:{method:e.method,url:r.useFullRequestPath?new URL(e.url).pathname:t.route.path,httpVersion:"2",headers:$b(e.headers),queryString:SO(e.query)},response:{status:a.status,statusText:a.statusText,headers:$b(a.headers),content:{size:IO(e.headers.get("content-length"))}}}]}}},d=jb[r.apiKey];if(!d){let p=r.apiKey;d=new TO.BatchDispatch("readme-metering-inbound-policy",10,async m=>{try{let h=r.url??"https://metrics.readme.io/request",y=await fetch(h,{method:"POST",body:JSON.stringify(m),headers:{"content-type":"application/json",authorization:`Basic ${btoa(p+":")}`}});y.status!==202&&t.log.error(`Unexpected response in ReadmeMeteringInboundPolicy '${n}'. ${y.status}: '${await y.text()}'`)}catch(h){throw t.log.error(`Error in ReadmeMeteringInboundPolicy '${n}': '${h.message}'`),h}}),jb[p]=d}d.enqueue(l),t.waitUntil(d.waitUntilFlushed())}catch(c){t.log.error(c)}}),e}s(PO,"ReadmeMetricsInboundPolicy");Ja.ReadmeMetricsInboundPolicy=PO});var Gb=g(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.RemoveHeadersInboundPolicy=void 0;var AO=C(),RO=He(),OO=s(async(e,t,r,n)=>{let i=r?.headers;if(!i||!Array.isArray(i)||i.length===0)throw new AO.ConfigurationError(`RemoveHeadersInboundPolicy '${n}' options.headers must be a non-empty string array of header names`);let o=new Headers(e.headers);return i.forEach(c=>{o.delete(c)}),new RO.ZuploRequest(e,{headers:o})},"RemoveHeadersInboundPolicy");za.RemoveHeadersInboundPolicy=OO});var Bb=g(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.RemoveHeadersOutboundPolicy=void 0;var NO=C(),xO=s(async(e,t,r,n,i)=>{let o=n?.headers;if(!o||!Array.isArray(o)||o.length===0)throw new NO.ConfigurationError(`RemoveHeadersOutboundPolicy '${i}' options.headers must be a non-empty string array of header names`);let a=new Headers(e.headers);return o.forEach(u=>{a.delete(u)}),new Response(e.body,{headers:a,status:e.status,statusText:e.statusText})},"RemoveHeadersOutboundPolicy");Wa.RemoveHeadersOutboundPolicy=xO});var Kb=g(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.RemoveQueryParamsInboundPolicy=void 0;var CO=C(),LO=He(),DO=s(async(e,t,r,n)=>{let i=r.params;if(!i||!Array.isArray(i)||i.length===0)throw new CO.ConfigurationError(`RemoveQueryParamsInboundPolicy '${n}' options.params must be a non-empty string array of header names`);let o=new URL(e.url);return i.forEach(c=>{o.searchParams.delete(c)}),new LO.ZuploRequest(o.toString(),e)},"RemoveQueryParamsInboundPolicy");Qa.RemoveQueryParamsInboundPolicy=DO});var Jb=g(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.ReplaceStringOutboundPolicy=void 0;var UO=s(async(e,t,r,n)=>{let i=await e.text(),o=n.mode==="regexp"?new RegExp(n.match,"gm"):n.match,a=i.replaceAll(o,n.replaceWith);return new Response(a,{headers:e.headers,status:e.status,statusText:e.statusText})},"ReplaceStringOutboundPolicy");Ya.ReplaceStringOutboundPolicy=UO});var Wb=g(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.RequestSizeLimitInboundPolicy=void 0;var zb=s(()=>new Response("Maximum request size exceeded",{status:413,statusText:"Payload Too Large"}),"payloadTooLarge"),MO=s(async(e,t,r)=>{let n=r.trustContentLengthHeader??!1;if(["GET","HEAD"].includes(e.method))return e;let i=e.headers.get("content-length"),o=i!==null?parseInt(i):void 0;return o&&!isNaN(o)&&o>r.maxSizeInBytes?zb():o&&n?e:(await e.clone().text()).length>r.maxSizeInBytes?zb():e},"RequestSizeLimitInboundPolicy");Za.RequestSizeLimitInboundPolicy=MO});var Xa=g(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.sanitizedIdentifierName=rt.getIdForRefSchema=rt.getIdForRequestBodySchema=rt.getIdForParameterSchema=rt.getRawOperationDataIdentifierName=void 0;function kO(e,t,r){return`_${kr(e+"_"+t+"_"+r)}`}s(kO,"getRawOperationDataIdentifierName");rt.getRawOperationDataIdentifierName=kO;function HO(e,t,r,n){return`_${kr(e.toLowerCase())}_`+t.toLowerCase()+"_"+r.toLowerCase()+`_${n.toLowerCase()}`}s(HO,"getIdForParameterSchema");rt.getIdForParameterSchema=HO;function FO(e,t,r){return`_${kr(e.toLowerCase())}_`+t.toLowerCase()+`_rb_${kr(r.toLowerCase())}`}s(FO,"getIdForRequestBodySchema");rt.getIdForRequestBodySchema=FO;function qO(e,t){return`_${kr(e)}__${kr(t)}`}s(qO,"getIdForRefSchema");rt.getIdForRefSchema=qO;function kr(e){let t=[];for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);n>="0".charCodeAt(0)&&n<="9".charCodeAt(0)||n>="A".charCodeAt(0)&&n<="Z".charCodeAt(0)||n>="a".charCodeAt(0)&&n<="z".charCodeAt(0)?t.push(e.charAt(r)):t.push("_")}return t.join("")}s(kr,"sanitizedIdentifierName");rt.sanitizedIdentifierName=kr});var Mi=g(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.getErrorsFromValidator=De.shouldReject=De.shouldLog=De.logErrors=De.validateParameters=De.getParametersForOperation=void 0;var $O=mn(),jO=Xa(),VO=s(e=>{let t=e.route.raw();return t.parameters?t.parameters.map(n=>({name:n.name,location:n.in,required:n.required,deprecated:n.deprecated,allowEmptyValue:n.allowEmptyValue})):[]},"getParametersForOperation");De.getParametersForOperation=VO;var GO=s((e,t,r,n,i)=>{let o=[],a=!0,c=[];return e.forEach(u=>{let l=u.required||i==="path";if(l&&!t[u.name])a=!1,o.push(`Required ${i} parameter '${u.name}' not found`);else if(!(!l&&!t[u.name])){let d=(0,jO.getIdForParameterSchema)(r,n,i,u.name),p=$O.Gateway.instance.schemaValidator[d],m=p(t[u.name]),h=(0,De.getErrorsFromValidator)(p.errors);m||(a=!1,c.push(`${i} parameter: ${u.name} : ${t[u.name]}`),o.push(`Invalid value for ${i} parameter: '${u.name}' ${h.join(", ")}`))}}),{isValid:a,invalidValues:c,errors:o}},"validateParameters");De.validateParameters=GO;var BO=s((e,t,r,n,i)=>{n?e.log[t](r,n,i):e.log[t](r,i)},"logErrors");De.logErrors=BO;var KO=s(e=>e==="log-only"||e==="reject-and-log","shouldLog");De.shouldLog=KO;var JO=s(e=>e==="reject-only"||e==="reject-and-log","shouldReject");De.shouldReject=JO;var zO=s(e=>e?.map(t=>t.instancePath===void 0||t.instancePath===""?t.message??"Unknown validation error":t.instancePath.replace("/","")+" "+t.message)??["Unknown validation error"],"getErrorsFromValidator");De.getErrorsFromValidator=zO});var Qb=g(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});tc.handleBodyValidation=void 0;var WO=mn(),ec=ae(),QO=Xa(),ze=Mi();async function YO(e,t,r){if(!r.validateBody||r.validateBody==="none")return;let n;try{n=await t.clone().json()}catch(h){let y=`Error in request body for method : ${t.method} in route: ${e.route.path} with content-type: ${t.headers.get("Content-Type")}`,E=ec.HttpProblems.badRequest(t,e,{detail:`${y}, see errors property for more details`,errors:`${h}`});if((0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",y,[n],h),(0,ze.shouldReject)(r.validateBody))return E}if(!t.headers.get("Content-Type")){let h=`No content-type header defined in incoming request to ${t.method} in route: ${e.route.path}`,y=ec.HttpProblems.badRequest(t,e,{detail:h});return(0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",h,[n],[h]),(0,ze.shouldReject)(r.validateBody)?y:void 0}let i=t.headers.get("Content-Type"),o=i.indexOf(";");o>-1&&(i=i.substring(0,o));let a=(0,QO.getIdForRequestBodySchema)(e.route.path,t.method,i),c=WO.Gateway.instance.schemaValidator[a];if(!c){let h=`No schema defined for method: ${t.method} in route: ${e.route.path} with content-type: ${t.headers.get("Content-Type")}`,y=ec.HttpProblems.badRequest(t,e,{detail:h});return(0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",h,[n],[h]),(0,ze.shouldReject)(r.validateBody)?y:void 0}if(c(n))return;let l=c.errors,d="Request body did not pass validation",p=(0,ze.getErrorsFromValidator)(l),m=ec.HttpProblems.badRequest(t,e,{detail:`${d}, see errors property for more details`,errors:p});if((0,ze.shouldLog)(r.validateBody)&&(0,ze.logErrors)(e,r.logLevel??"info",d,[n],p),(0,ze.shouldReject)(r.validateBody))return m}s(YO,"handleBodyValidation");tc.handleBodyValidation=YO});var Yb=g(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});rc.handleHeadersValidation=void 0;var ZO=ae(),ki=Mi();function XO(e,t,r){if(!r.validateHeaders||r.validateHeaders==="none")return;let n={};t.headers.forEach((a,c)=>{n[c]=a});let i=(0,ki.getParametersForOperation)(e),o=(0,ki.validateParameters)(i.filter(a=>a.location==="header"),n,e.route.path,t.method.toLowerCase(),"header");if(!o.isValid){let a="Header validation failed",c=ZO.HttpProblems.badRequest(t,e,{detail:`${a}, see errors property for more details`,errors:o.errors});if((0,ki.shouldLog)(r.validateHeaders)&&(0,ki.logErrors)(e,r.logLevel??"info",a,o.invalidValues,o.errors),(0,ki.shouldReject)(r.validateHeaders))return c}}s(XO,"handleHeadersValidation");rc.handleHeadersValidation=XO});var Zb=g(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.handlePathParameterValidation=void 0;var eN=ae(),Hi=Mi();function tN(e,t,r){if(!r.validatePathParameters||r.validatePathParameters==="none")return;let n=(0,Hi.getParametersForOperation)(e),i=(0,Hi.validateParameters)(n.filter(o=>o.location==="path"),t.params,e.route.path,t.method.toLowerCase(),"path");if(!i.isValid){let o="Path parameters validation failed",a=eN.HttpProblems.badRequest(t,e,{detail:`${o}, see errors property for more details`,errors:i.errors});if((0,Hi.shouldLog)(r.validatePathParameters)&&(0,Hi.logErrors)(e,r.logLevel??"info",o,i.invalidValues,i.errors),(0,Hi.shouldReject)(r.validatePathParameters))return a}}s(tN,"handlePathParameterValidation");nc.handlePathParameterValidation=tN});var Xb=g(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.handleQueryParameterValidation=void 0;var rN=ae(),Fi=Mi();function nN(e,t,r){if(!r.validateQueryParameters||r.validateQueryParameters==="none")return;let n=(0,Fi.getParametersForOperation)(e),i=(0,Fi.validateParameters)(n.filter(o=>o.location==="query"),t.query,e.route.path,t.method.toLowerCase(),"query");if(!i.isValid){let o="Query parameters validation failed",a=rN.HttpProblems.badRequest(t,e,{detail:`${o}, see errors property for more details`,errors:i.errors});if((0,Fi.shouldLog)(r.validateQueryParameters)&&(0,Fi.logErrors)(e,r.logLevel??"info",o,i.invalidValues,i.errors),(0,Fi.shouldReject)(r.validateQueryParameters))return a}}s(nN,"handleQueryParameterValidation");ic.handleQueryParameterValidation=nN});var e_=g(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.SchemaBasedRequestValidation=Hr.RequestValidationInboundPolicy=void 0;var iN=Qb(),oN=Yb(),sN=Zb(),aN=Xb(),cN=s(async(e,t,r)=>{let n=(0,aN.handleQueryParameterValidation)(t,e,r);if(n!==void 0||(n=(0,sN.handlePathParameterValidation)(t,e,r),n!==void 0)||(n=(0,oN.handleHeadersValidation)(t,e,r),n!==void 0))return n;let i=await(0,iN.handleBodyValidation)(t,e,r);return i!==void 0?i:e},"RequestValidationInboundPolicy");Hr.RequestValidationInboundPolicy=cN;Hr.SchemaBasedRequestValidation=Hr.RequestValidationInboundPolicy});var t_=g(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});oc.RequireOriginInboundPolicy=void 0;var uN=C(),lN=ae(),dN=s(async(e,t,r,n)=>{if(r.origins===void 0||r.origins.length===0)throw new uN.ConfigurationError(`RequireOriginInboundPolicy '${n}' configuration error - no allowed origins specified`);let i=typeof r.origins=="string"?r.origins.split(","):r.origins;i=i.map(a=>a.trim());let o=e.headers.get("origin");if(!o||!i.includes(o)){let a=r.failureDetail??"Forbidden";return lN.HttpProblems.forbidden(e,t,{detail:a})}return e},"RequireOriginInboundPolicy");oc.RequireOriginInboundPolicy=dN});var r_=g(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.SetBodyInboundPolicy=void 0;var pN=He(),hN=s(async(e,t,r)=>new pN.ZuploRequest(e,{body:r.body}),"SetBodyInboundPolicy");sc.SetBodyInboundPolicy=hN});var i_=g(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});ac.SetHeadersInboundPolicy=void 0;var n_=C(),fN=He(),mN=s(async(e,t,r,n)=>{let i=r.headers;if(!i||!Array.isArray(i)||i.length==0)throw new n_.ConfigurationError(`SetHeadersInboundPolicy '${n}' options.headers must be a valid array of { name, value }`);let o=new Headers(e.headers);return i.forEach(c=>{if(!c.name||c.name.length===0)throw new n_.ConfigurationError(`SetHeadersInboundPolicy '${n}' each option.headers[] entry must have a name property`);let u=c.overwrite===void 0?!0:c.overwrite;(!o.has(c.name)||u)&&o.set(c.name,c.value)}),new fN.ZuploRequest(e,{headers:o})},"SetHeadersInboundPolicy");ac.SetHeadersInboundPolicy=mN});var s_=g(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});cc.SetHeadersOutboundPolicy=void 0;var o_=C(),yN=s(async(e,t,r,n,i)=>{let o=n.headers;if(!o||!Array.isArray(o)||o.length==0)throw new o_.ConfigurationError(`SetHeadersOutboundPolicy '${i}' options.headers must be a valid array of { name, value }`);let a=new Headers(e.headers);return o.forEach(u=>{if(!u.name||u.name.length===0)throw new o_.ConfigurationError(`SetHeadersOutboundPolicy '${i}' each option.headers[] entry must have a name property`);let l=u.overwrite===void 0?!0:u.overwrite;(!a.has(u.name)||l)&&a.set(u.name,u.value)}),new Response(e.body,{headers:a,status:e.status,statusText:e.statusText})},"SetHeadersOutboundPolicy");cc.SetHeadersOutboundPolicy=yN});var c_=g(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});uc.SetQueryParamsInboundPolicy=void 0;var a_=C(),gN=He(),bN=s(async(e,t,r,n)=>{let i=r.params;if(!i||!Array.isArray(i)||i.length==0)throw new a_.ConfigurationError(`SetQueryParamsInboundPolicy '${n}' options.params must be a valid array of { name, value }`);let o=new URL(e.url);return i.forEach(c=>{if(!c.name||c.name.length===0)throw new a_.ConfigurationError(`SetQueryParamsInboundPolicy '${n}' each option.params[] entry must have a name property`);let u=c.overwrite===void 0?!0:c.overwrite;(!o.searchParams.has(c.name)||u)&&o.searchParams.set(c.name,c.value)}),new gN.ZuploRequest(o.toString(),e)},"SetQueryParamsInboundPolicy");uc.SetQueryParamsInboundPolicy=bN});var u_=g(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.SetStatusOutboundPolicy=void 0;var _N=s(async(e,t,r,n,i)=>{if(!n.status||isNaN(n.status)||n.status<100||n.status>599)throw new Error(`Invalid SetStatusOutboundPolicy '${i}' - status must be a valid number between 100 and 599, not '${n.status}'`);return new Response(e.body,{headers:e.headers,status:n.status,statusText:n.statusText??e.statusText})},"SetStatusOutboundPolicy");lc.SetStatusOutboundPolicy=_N});var l_=g(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});dc.SleepInboundPolicy=void 0;var EN=C(),wN=s(async e=>new Promise(r=>{setTimeout(r,e)}),"sleep"),vN=s(async(e,t,r,n)=>{if(!r||r.sleepInMs===void 0||isNaN(r.sleepInMs))throw new EN.ConfigurationError(`SleepInboundPolicy '${n} must have a valid options.sleepInMs value`);return await wN(r.sleepInMs),e},"SleepInboundPolicy");dc.SleepInboundPolicy=vN});var p_=g(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});pc.SupabaseJwtInboundPolicy=void 0;var d_=C(),TN=ae(),SN=He(),IN=$t(),PN=Vt(),AN=s(async(e,t,r,n)=>{(0,IN.optionValidator)(r,n).required("secret","string").optional("allowUnauthenticatedRequests","boolean").optional("requiredClaims","object");let i={secret:r.secret,allowUnauthenticatedRequests:r.allowUnauthenticatedRequests??!1},o=await(0,PN.OpenIdJwtInboundPolicy)(e,t,i,n);if(o instanceof Response)return o;if(!(o instanceof SN.ZuploRequest))throw new d_.SystemError("Invalid State - SupabaseJwtInboundPolicy encountered a non-response that wasn't a ZuploRequest type')");let a=r.requiredClaims;if(!a)return o;let c=e.user?.data.app_metadata;if(!c)throw new d_.RuntimeError(`SupabaseJwtInboundPolicy policy '${n}' - has requiredClaims but the JWT token had no app_metadata property`);let u=Object.keys(a),l=[];return u.forEach(d=>{let p=a[d];Array.isArray(p)?p.includes(c[d])||l.push(d):p!==c[d]&&l.push(d)}),l.length>0?TN.HttpProblems.unauthorized(e,t,{detail:`Invalid JWT token - missing valid claims ${l.join(", ")}`}):o},"SupabaseJwtInboundPolicy");pc.SupabaseJwtInboundPolicy=AN});var f_=g(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});hc.UpstreamAzureAdServiceAuthInboundPolicy=void 0;var RN=jt(),ON=Jt(),h_=C(),NN=vi(),xN=$t(),CN=s(async(e,t,r,n)=>{(0,xN.optionValidator)(r,n).required("activeDirectoryTenantId","string").required("activeDirectoryClientId","string").required("activeDirectoryClientSecret","string").optional("tokenRetries","number").optional("expirationOffsetSeconds","number");let i=await(0,RN.getPolicyCacheName)(n,r),o=new ON.MemoryZoneReadThroughCache(i,t),a=await o.get(n);if(!a){let c=await LN(r,t);o.put(n,c.access_token,c.expires_in-(r.expirationOffsetSeconds??300)),a=c.access_token}return e.headers.set("Authorization",`Bearer ${a}`),e},"UpstreamAzureAdServiceAuthInboundPolicy");hc.UpstreamAzureAdServiceAuthInboundPolicy=CN;async function LN(e,t){let r=new URLSearchParams({client_id:e.activeDirectoryClientId,scope:`${e.activeDirectoryClientId}/.default`,client_secret:e.activeDirectoryClientSecret,grant_type:"client_credentials"}),n=await(0,NN.fetchRetry)({retries:e.tokenRetries??3,retryDelayMs:10},`https://login.microsoftonline.com/${e.activeDirectoryTenantId}/oauth2/v2.0/token`,{headers:{"content-type":"application/x-www-form-urlencoded"},method:"POST",body:r});if(n.status!==200){try{let o=await n.text();t.log.error("Could not get token from Azure AD",o)}catch{}throw new h_.RuntimeError("Could not get token from Azure AD")}let i=await n.json();if(i&&typeof i=="object"&&"access_token"in i&&typeof i.access_token=="string"&&"expires_in"in i&&typeof i.expires_in=="number")return{access_token:i.access_token,expires_in:i.expires_in};throw new h_.RuntimeError("Response returned from Azure AD is not in the expected format.")}s(LN,"getAccessToken")});var y_=g(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});fc.UpstreamFirebaseAdminAuthInboundPolicy=void 0;var DN=jt(),UN=Jt(),MN=C(),Np=pn(),kN=$t(),m_="https://accounts.google.com/o/oauth2/token",xp,HN=s(async(e,t,r,n)=>{(0,kN.optionValidator)(r,n).required("serviceAccountJson","string"),xp||(xp=await Np.GcpServiceAccount.init(r.serviceAccountJson));let i={scope:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/firebase.database","https://www.googleapis.com/auth/firebase.messaging","https://www.googleapis.com/auth/identitytoolkit","https://www.googleapis.com/auth/userinfo.email"].join(" ")},o=await(0,DN.getPolicyCacheName)(n,r),a=new UN.MemoryZoneReadThroughCache(o,t),c=await a.get(n);if(!c){let u=await(0,Np.getTokenFromGcpServiceAccount)({serviceAccount:xp,audience:m_,payload:i}),l=await(0,Np.exchangeGgpJwtForIdToken)(m_,u,{retries:r.tokenRetries??3,retryDelayMs:10});if(!l.access_token)throw new MN.RuntimeError("Invalid OAuth response from Firebase");c=l.access_token,a.put(n,c,(l.expires_in??3600)-(r.expirationOffsetSeconds??300))}return e.headers.set("Authorization",`Bearer ${c}`),e},"UpstreamFirebaseAdminAuthInboundPolicy");fc.UpstreamFirebaseAdminAuthInboundPolicy=HN});var g_=g(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});mc.UpstreamFirebaseUserAuthInboundPolicy=void 0;var FN=jt(),qN=Jt(),Fn=C(),$N=hp(),Cp=pn(),jN=oi(),VN=$t(),GN="https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",BN=["acr","amr","at_hash","aud","auth_time","azp","cnf","c_hash","exp","iat","iss","jti","nbf","nonce"],Lp,KN=s(async(e,t,r,n)=>{if((0,VN.optionValidator)(r,n).required("serviceAccountJson","string").required("webApiKey","string").optional("developerClaims","object").optional("userId","string").optional("userIdPropertyPath","string"),!r.userId&&!r.userIdPropertyPath)throw new Fn.ConfigurationError(`Either 'userId' or 'userIdPropertyPath' options must be set on policy '${n}'.`);let i={};if(typeof r.developerClaims<"u"){for(let p in r.developerClaims)if(Object.prototype.hasOwnProperty.call(r.developerClaims,p)){if(BN.indexOf(p)!==-1)throw new Fn.ConfigurationError(`Developer claim "${p}" is reserved and cannot be specified.`);i[p]=r.developerClaims[p]}}Lp||(Lp=await Cp.GcpServiceAccount.init(r.serviceAccountJson));let o=r.userId;if(!o&&!r.userIdPropertyPath){if(!e.user)throw new Fn.RuntimeError("Unable to set userId for upstream auth policy as request.user is 'undefined'. Do you have an authentication policy before this policy?.");o=e.user?.sub}else if(r.userIdPropertyPath){if(!e.user)throw new Fn.RuntimeError(`Unable to apply userIdPropertyPath '${r.userIdPropertyPath}' as request.user is 'undefined'. Do you have an authentication policy before this policy?`);o=(0,jN.getValueFromRequestUser)(e.user,r.userIdPropertyPath,"userIdPropertyPath")}if(!o)throw new Fn.RuntimeError(`Unable to determine user from for the policy ${n}`);let a=await(0,FN.getPolicyCacheName)(n,r),c=new qN.MemoryZoneReadThroughCache(a,t),u={uid:o,claims:i},l=await(0,$N.sha256)(JSON.stringify(u)),d=await c.get(l);if(!d){let p=await(0,Cp.getTokenFromGcpServiceAccount)({serviceAccount:Lp,audience:GN,payload:u}),m=`https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=${r.webApiKey}`,h=await(0,Cp.exchangeFirebaseJwtForIdToken)(m,p,{retries:r.tokenRetries??3,retryDelayMs:10});if(!h.idToken)throw new Fn.RuntimeError("Invalid token response from Firebase");d=h.idToken,c.put(l,d,(h.expiresIn?parseInt(h.expiresIn):3600)-(r.expirationOffsetSeconds??300))}return e.headers.set("Authorization",`Bearer ${d}`),e},"UpstreamFirebaseUserAuthInboundPolicy");mc.UpstreamFirebaseUserAuthInboundPolicy=KN});var __=g(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.UpstreamGcpJwtInboundPolicy=void 0;var b_=pn(),JN=$t(),Dp,zN=s(async(e,t,r,n)=>{(0,JN.optionValidator)(r,n).required("audience","string").required("serviceAccountJson","string"),Dp||(Dp=await b_.GcpServiceAccount.init(r.serviceAccountJson));let i=await(0,b_.getTokenFromGcpServiceAccount)({serviceAccount:Dp,audience:r.audience});return e.headers.set("Authorization",`Bearer ${i}`),e},"UpstreamGcpJwtInboundPolicy");yc.UpstreamGcpJwtInboundPolicy=zN});var w_=g(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});gc.UpstreamGcpServiceAuthInboundPolicy=void 0;var WN=jt(),QN=fu(),YN=Jt(),ZN=C(),Up=pn(),XN=$t(),E_="https://www.googleapis.com/oauth2/v4/token",Mp,ex=s(async(e,t,r,n)=>{(0,XN.optionValidator)(r,n).required("audience","string").required("serviceAccountJson","string").optional("tokenRetries","number").optional("expirationOffsetSeconds","number"),Mp||(Mp=await Up.GcpServiceAccount.init(r.serviceAccountJson));let i=await(0,WN.getPolicyCacheName)(n,r),o;r.useMemoryCacheOnly?o=new QN.MemoryCache(i):o=new YN.MemoryZoneReadThroughCache(i,t);let a=await o.get(n);if(!a){let c=await(0,Up.getTokenFromGcpServiceAccount)({serviceAccount:Mp,audience:E_,payload:{target_audience:`${r.audience}`}}),{id_token:u}=await(0,Up.exchangeGgpJwtForIdToken)(E_,c,{retries:r.tokenRetries??3,retryDelayMs:10});if(!u)throw new ZN.RuntimeError("Invalid token response from GCP");a=u,o.put(n,a,3600-(r.expirationOffsetSeconds??300))}return e.headers.set("Authorization",`Bearer ${a}`),e},"UpstreamGcpServiceAuthInboundPolicy");gc.UpstreamGcpServiceAuthInboundPolicy=ex});var T_=g(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});bc.ValidateJsonSchemaInbound=void 0;var tx=C(),v_=ae(),rx=s(async(e,t,r)=>{let n=e.clone(),i;try{i=await n.json()}catch{return v_.HttpProblems.badRequest(e,t,{detail:"Invalid JSON body - expected well-formed JSON document"})}if(r.validator(i))return e;let{errors:a}=r.validator;if(!a)throw new tx.SystemError("Invalid state - validator error object is undefined even though validation failed.");let c=a.map(u=>u.instancePath===void 0||u.instancePath===""?"Body "+u.message:u.instancePath.replace("/","")+" "+u.message);return v_.HttpProblems.badRequest(e,t,{detail:"Incoming body did not pass schema validation",errors:c})},"ValidateJsonSchemaInbound");bc.ValidateJsonSchemaInbound=rx});var P_=g(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.MeteringInboundPolicy=void 0;var S_=Gs(),I_=yn(),_c=C(),nx=ae(),ix=Be(),ox=Y(),sx=s(async(e,t,r,n)=>{let i=ix.SystemLogMap.getLogger(t);t.addResponseSendingFinalHook(async(d,p,m)=>{let h=S_.ContextData.get(m,"subscription");if((r.allowRequestsWithoutSubscription??!1)&&!h)return;if(!r.bucketId)if(I_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID)r.bucketId=I_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID;else throw new _c.ConfigurationError(`MeteringInboundPolicy '${n}' - no bucketId property provided`);let{authApiJWT:E,meteringServiceUrl:T}=ox.Environment.instance;if(d.ok&&h&&r.meters)try{let S=await fetch(`${T}/internal/v1/metering/${r.bucketId}/subscriptions/${h.id}/quotas/consume`,{headers:{Authorization:`Bearer ${E}`,"zp-rid":m.requestId},method:"POST",body:JSON.stringify({meters:r.meters})});S.ok||(m.log.error(`MeteringInboundPolicy '${n}' -error in serviceResponse: ${S.status} - ${S.statusText}`),i.error(`MeteringInboundPolicy '${n}' -error in serviceResponse: ${S.status} - ${S.statusText}`))}catch(S){m.log.error(`MeteringInboundPolicy '${n}' -error in serviceResponse`),i.error(`MeteringInboundPolicy '${n}' -error in serviceResponse`,S)}});let o=S_.ContextData.get(t,"subscription"),a=r.allowRequestsWithoutSubscription??!1,c=r.allowRequestsOverQuota??!1;if(!o){if(a)return e;throw new _c.ConfigurationError("Subscription is not available for user")}if(o&&Object.keys(o.quotas).length===0)throw new _c.ConfigurationError("Quota is not set up for the user's subscription");let l=Object.keys(r.meters).filter(d=>!Object.keys(o.quotas).includes(d));if(l.length>0)throw new _c.ConfigurationError(`The following policy meters are not present in the subscription: ${l.join(", ")}`);for(let d of Object.keys(o.quotas))if(o.quotas[d]<=0&&!c)return nx.HttpProblems.tooManyRequests(e,t,{detail:`Quota exceeded for meter '${d}'`,title:"Quota Exceeded"});return e},"MeteringInboundPolicy");Ec.MeteringInboundPolicy=sx});var O_=g(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.LoadSubscriptionInboundPolicy=void 0;var ax=ti(),cx=Gs(),A_=yn(),ux=C(),kp=ae(),R_=Be(),lx=Y(),dx=s(async(e,t,r,n)=>{let i=R_.SystemLogMap.getLogger(t),o=r.allowRequestsWithoutSubscription??!1,a=e.user;if(!a)return o?e:kp.HttpProblems.unauthorized(e,t,{detail:"Unable to check subscription for anonymous user"});if(!r.bucketId)if(A_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID)r.bucketId=A_.environment.ZUPLO_METERING_SERVICE_BUCKET_ID;else throw new ux.ConfigurationError(`LoadSubscriptionInboundPolicy '${n}' - no bucketId property provided`);let{authApiJWT:c,meteringServiceUrl:u}=lx.Environment.instance,{sub:l}=a,d;try{let m=`${r.bucketId}-${l}`,h=new ax.ZoneCache(m,{logger:R_.SystemLogMap.getLogger(t)}),y=await h.get(m);if(y)d=y;else{let E=await fetch(`${u}/internal/v1/metering/${r.bucketId}/subscriptions?customerKey=${l}&status=active`,{headers:{Authorization:`Bearer ${c}`,"zp-rid":t.requestId},method:"GET"});if(!E.ok)return t.log.error(await E.text()),kp.HttpProblems.forbidden(e,t);d=await E.json(),h.put(m,d,15).catch(T=>{throw i.error(T),T})}}catch(m){i.error(`LoadSubscriptionInboundPolicy '${n}' -error in serviceResponse`,m)}if((!d||!d.data||d.data.length===0)&&!o)return kp.HttpProblems.unauthorized(e,t,{detail:"No valid, active subscription found"});if((!d||!d.data||d.data.length===0)&&o)return e;let p=d&&d.data?d.data[0]:void 0;return cx.ContextData.set(t,"subscription",p),e},"LoadSubscriptionInboundPolicy");wc.LoadSubscriptionInboundPolicy=dx});var N_=g(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.ServiceProviderImpl=void 0;var px=C(),Hp=class{static{s(this,"ServiceProviderImpl")}services=new Map;addService(t,r){if(this.services.get(t))throw new px.SystemError(`A service with the name ${t} already exists -- you cannot have duplicate services`);this.services.set(t,r)}getService(t){return this.services.get(t)}};vc.ServiceProviderImpl=Hp});var $_=g(f=>{"use strict";var hx=f&&f.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Fp=f&&f.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&hx(t,e,r)},fx=f&&f.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0});f.RateLimitInboundPolicy=f.BasicRateLimitInboundPolicy=f.PropelAuthJwtInboundPolicy=f.OpenIdJwtInboundPolicy=f.OktaJwtInboundPolicy=f.setMoesifContext=f.MoesifInboundPolicy=f.MockApiInboundPolicy=f.JWTScopeValidationInboundPolicy=f.GeoFilterInboundPolicy=f.FormDataToJsonInboundPolicy=f.FirebaseJwtInboundPolicy=f.CurityPhantomTokenInboundPolicy=f.CreditsMeteringInboundPolicy=f.CompositeInboundPolicy=f.CognitoJwtInboundPolicy=f.ClerkJwtInboundPolicy=f.ClearHeadersOutboundPolicy=f.ClearHeadersInboundPolicy=f.ChangeMethodInboundPolicy=f.CachingInboundPolicy=f.BasicAuthInboundPolicy=f.Auth0JwtInboundPolicy=f.ApiKeyInboundPolicy=f.ApiAuthKeyInboundPolicy=f.AmberfloMeteringPolicy=f.AmberfloMeteringInboundPolicy=f.AuditLogPlugin=f.AuditLogDataStaxProvider=f.HttpStatusCode=f.webSocketPipelineHandler=f.webSocketHandler=f.urlRewriteHandler=f.urlForwardHandler=f.redirectHandler=f.openApiSpecHandler=f.awsLambdaHandler=f.AwsLambdaHandlerExtensions=f.purgeGatewayCache=f.Handler=f.originalFetch=f.ConfigurationError=f.isZuploReadableEnvVariableName=f.isRestrictedEnvVariableName=f.environment=f.ContextData=f.ResponseSentEvent=f.ResponseSendingEvent=f.ZoneCache=f.MemoryZoneReadThroughCache=void 0;f.sanitizedIdentifierName=f.getRawOperationDataIdentifierName=f.getIdForRequestBodySchema=f.getIdForRefSchema=f.getIdForParameterSchema=f.SystemLogMap=f.httpStatuses=f.SYSTEM_LOGGER=f.API_KEY=f.ServiceProviderImpl=f.serialize=f.ContentTypes=f.Router=f.LookupResult=f.SystemRouteName=f.ZuploRequest=f.ProblemResponseFormatter=f.HttpProblems=f.LoadSubscriptionInboundPolicy=f.MeteringInboundPolicy=f.ValidateJsonSchemaInbound=f.UpstreamGcpServiceAuthInboundPolicy=f.UpstreamGcpJwtInboundPolicy=f.UpstreamFirebaseUserAuthInboundPolicy=f.UpstreamFirebaseAdminAuthInboundPolicy=f.UpstreamAzureAdServiceAuthInboundPolicy=f.SupabaseJwtInboundPolicy=f.StripeWebhookVerificationInboundPolicy=f.SleepInboundPolicy=f.SetStatusOutboundPolicy=f.SetQueryParamsInboundPolicy=f.SetHeadersOutboundPolicy=f.SetHeadersInboundPolicy=f.SetBodyInboundPolicy=f.RequireOriginInboundPolicy=f.SchemaBasedRequestValidation=f.RequestValidationInboundPolicy=f.RequestSizeLimitInboundPolicy=f.ReplaceStringOutboundPolicy=f.RemoveQueryParamsInboundPolicy=f.RemoveHeadersOutboundPolicy=f.RemoveHeadersInboundPolicy=f.ReadmeMetricsInboundPolicy=void 0;wh();var mx=Jt();Object.defineProperty(f,"MemoryZoneReadThroughCache",{enumerable:!0,get:function(){return mx.MemoryZoneReadThroughCache}});var yx=ti();Object.defineProperty(f,"ZoneCache",{enumerable:!0,get:function(){return yx.ZoneCache}});var x_=Ir();Object.defineProperty(f,"ResponseSendingEvent",{enumerable:!0,get:function(){return x_.ResponseSendingEvent}});Object.defineProperty(f,"ResponseSentEvent",{enumerable:!0,get:function(){return x_.ResponseSentEvent}});var gx=Gs();Object.defineProperty(f,"ContextData",{enumerable:!0,get:function(){return gx.ContextData}});var qp=yn();Object.defineProperty(f,"environment",{enumerable:!0,get:function(){return qp.environment}});Object.defineProperty(f,"isRestrictedEnvVariableName",{enumerable:!0,get:function(){return qp.isRestrictedEnvVariableName}});Object.defineProperty(f,"isZuploReadableEnvVariableName",{enumerable:!0,get:function(){return qp.isZuploReadableEnvVariableName}});var bx=C();Object.defineProperty(f,"ConfigurationError",{enumerable:!0,get:function(){return bx.ConfigurationError}});var _x=Pd();Object.defineProperty(f,"originalFetch",{enumerable:!0,get:function(){return _x.originalFetch}});var C_=Wy();Object.defineProperty(f,"Handler",{enumerable:!0,get:function(){return C_.Handler}});Object.defineProperty(f,"purgeGatewayCache",{enumerable:!0,get:function(){return C_.purgeGatewayCache}});var L_=pg();Object.defineProperty(f,"AwsLambdaHandlerExtensions",{enumerable:!0,get:function(){return L_.AwsLambdaHandlerExtensions}});Object.defineProperty(f,"awsLambdaHandler",{enumerable:!0,get:function(){return L_.awsLambdaHandler}});var Ex=fg();Object.defineProperty(f,"openApiSpecHandler",{enumerable:!0,get:function(){return Ex.openApiSpecHandler}});var wx=mg();Object.defineProperty(f,"redirectHandler",{enumerable:!0,get:function(){return wx.redirectHandler}});var vx=gg();Object.defineProperty(f,"urlForwardHandler",{enumerable:!0,get:function(){return vx.urlForwardHandler}});var Tx=_g();Object.defineProperty(f,"urlRewriteHandler",{enumerable:!0,get:function(){return Tx.urlRewriteHandler}});var Sx=wg();Object.defineProperty(f,"webSocketHandler",{enumerable:!0,get:function(){return Sx.webSocketHandler}});var Ix=Sg();Object.defineProperty(f,"webSocketPipelineHandler",{enumerable:!0,get:function(){return Ix.webSocketPipelineHandler}});var Px=Hu();Object.defineProperty(f,"HttpStatusCode",{enumerable:!0,get:function(){return Px.HttpStatusCode}});Fp(Cg(),f);Fp(Ug(),f);var Ax=Mg();Object.defineProperty(f,"AuditLogDataStaxProvider",{enumerable:!0,get:function(){return Ax.AuditLogDataStaxProvider}});var Rx=Hg();Object.defineProperty(f,"AuditLogPlugin",{enumerable:!0,get:function(){return Rx.AuditLogPlugin}});Fp(Wg(),f);var D_=eb();Object.defineProperty(f,"AmberfloMeteringInboundPolicy",{enumerable:!0,get:function(){return D_.AmberfloMeteringInboundPolicy}});Object.defineProperty(f,"AmberfloMeteringPolicy",{enumerable:!0,get:function(){return D_.AmberfloMeteringPolicy}});var Ox=ob();Object.defineProperty(f,"ApiAuthKeyInboundPolicy",{enumerable:!0,get:function(){return Ox.ApiAuthKeyInboundPolicy}});var Nx=yp();Object.defineProperty(f,"ApiKeyInboundPolicy",{enumerable:!0,get:function(){return Nx.ApiKeyInboundPolicy}});var xx=sb();Object.defineProperty(f,"Auth0JwtInboundPolicy",{enumerable:!0,get:function(){return xx.Auth0JwtInboundPolicy}});var Cx=ab();Object.defineProperty(f,"BasicAuthInboundPolicy",{enumerable:!0,get:function(){return Cx.BasicAuthInboundPolicy}});var Lx=cb();Object.defineProperty(f,"CachingInboundPolicy",{enumerable:!0,get:function(){return Lx.CachingInboundPolicy}});var Dx=ub();Object.defineProperty(f,"ChangeMethodInboundPolicy",{enumerable:!0,get:function(){return Dx.ChangeMethodInboundPolicy}});var Ux=lb();Object.defineProperty(f,"ClearHeadersInboundPolicy",{enumerable:!0,get:function(){return Ux.ClearHeadersInboundPolicy}});var Mx=db();Object.defineProperty(f,"ClearHeadersOutboundPolicy",{enumerable:!0,get:function(){return Mx.ClearHeadersOutboundPolicy}});var kx=pb();Object.defineProperty(f,"ClerkJwtInboundPolicy",{enumerable:!0,get:function(){return kx.ClerkJwtInboundPolicy}});var Hx=fb();Object.defineProperty(f,"CognitoJwtInboundPolicy",{enumerable:!0,get:function(){return Hx.CognitoJwtInboundPolicy}});var Fx=yb();Object.defineProperty(f,"CompositeInboundPolicy",{enumerable:!0,get:function(){return Fx.CompositeInboundPolicy}});var qx=bb();Object.defineProperty(f,"CreditsMeteringInboundPolicy",{enumerable:!0,get:function(){return qx.CreditsMeteringInboundPolicy}});var $x=_b();Object.defineProperty(f,"CurityPhantomTokenInboundPolicy",{enumerable:!0,get:function(){return $x.CurityPhantomTokenInboundPolicy}});var jx=Eb();Object.defineProperty(f,"FirebaseJwtInboundPolicy",{enumerable:!0,get:function(){return jx.FirebaseJwtInboundPolicy}});var Vx=wb();Object.defineProperty(f,"FormDataToJsonInboundPolicy",{enumerable:!0,get:function(){return Vx.FormDataToJsonInboundPolicy}});var Gx=vb();Object.defineProperty(f,"GeoFilterInboundPolicy",{enumerable:!0,get:function(){return Gx.GeoFilterInboundPolicy}});var Bx=Tb();Object.defineProperty(f,"JWTScopeValidationInboundPolicy",{enumerable:!0,get:function(){return Bx.JWTScopeValidationInboundPolicy}});var Kx=Ib();Object.defineProperty(f,"MockApiInboundPolicy",{enumerable:!0,get:function(){return Kx.MockApiInboundPolicy}});var U_=Nb();Object.defineProperty(f,"MoesifInboundPolicy",{enumerable:!0,get:function(){return U_.MoesifInboundPolicy}});Object.defineProperty(f,"setMoesifContext",{enumerable:!0,get:function(){return U_.setMoesifContext}});var Jx=xb();Object.defineProperty(f,"OktaJwtInboundPolicy",{enumerable:!0,get:function(){return Jx.OktaJwtInboundPolicy}});var zx=Vt();Object.defineProperty(f,"OpenIdJwtInboundPolicy",{enumerable:!0,get:function(){return zx.OpenIdJwtInboundPolicy}});var Wx=Cb();Object.defineProperty(f,"PropelAuthJwtInboundPolicy",{enumerable:!0,get:function(){return Wx.PropelAuthJwtInboundPolicy}});var M_=Fb();Object.defineProperty(f,"BasicRateLimitInboundPolicy",{enumerable:!0,get:function(){return M_.RateLimitInboundPolicy}});Object.defineProperty(f,"RateLimitInboundPolicy",{enumerable:!0,get:function(){return M_.RateLimitInboundPolicy}});var Qx=Vb();Object.defineProperty(f,"ReadmeMetricsInboundPolicy",{enumerable:!0,get:function(){return Qx.ReadmeMetricsInboundPolicy}});var Yx=Gb();Object.defineProperty(f,"RemoveHeadersInboundPolicy",{enumerable:!0,get:function(){return Yx.RemoveHeadersInboundPolicy}});var Zx=Bb();Object.defineProperty(f,"RemoveHeadersOutboundPolicy",{enumerable:!0,get:function(){return Zx.RemoveHeadersOutboundPolicy}});var Xx=Kb();Object.defineProperty(f,"RemoveQueryParamsInboundPolicy",{enumerable:!0,get:function(){return Xx.RemoveQueryParamsInboundPolicy}});var eC=Jb();Object.defineProperty(f,"ReplaceStringOutboundPolicy",{enumerable:!0,get:function(){return eC.ReplaceStringOutboundPolicy}});var tC=Wb();Object.defineProperty(f,"RequestSizeLimitInboundPolicy",{enumerable:!0,get:function(){return tC.RequestSizeLimitInboundPolicy}});var k_=e_();Object.defineProperty(f,"RequestValidationInboundPolicy",{enumerable:!0,get:function(){return k_.RequestValidationInboundPolicy}});Object.defineProperty(f,"SchemaBasedRequestValidation",{enumerable:!0,get:function(){return k_.SchemaBasedRequestValidation}});var rC=t_();Object.defineProperty(f,"RequireOriginInboundPolicy",{enumerable:!0,get:function(){return rC.RequireOriginInboundPolicy}});var nC=r_();Object.defineProperty(f,"SetBodyInboundPolicy",{enumerable:!0,get:function(){return nC.SetBodyInboundPolicy}});var iC=i_();Object.defineProperty(f,"SetHeadersInboundPolicy",{enumerable:!0,get:function(){return iC.SetHeadersInboundPolicy}});var oC=s_();Object.defineProperty(f,"SetHeadersOutboundPolicy",{enumerable:!0,get:function(){return oC.SetHeadersOutboundPolicy}});var sC=c_();Object.defineProperty(f,"SetQueryParamsInboundPolicy",{enumerable:!0,get:function(){return sC.SetQueryParamsInboundPolicy}});var aC=u_();Object.defineProperty(f,"SetStatusOutboundPolicy",{enumerable:!0,get:function(){return aC.SetStatusOutboundPolicy}});var cC=l_();Object.defineProperty(f,"SleepInboundPolicy",{enumerable:!0,get:function(){return cC.SleepInboundPolicy}});var uC=ap();Object.defineProperty(f,"StripeWebhookVerificationInboundPolicy",{enumerable:!0,get:function(){return uC.StripeWebhookVerificationInboundPolicy}});var lC=p_();Object.defineProperty(f,"SupabaseJwtInboundPolicy",{enumerable:!0,get:function(){return lC.SupabaseJwtInboundPolicy}});var dC=f_();Object.defineProperty(f,"UpstreamAzureAdServiceAuthInboundPolicy",{enumerable:!0,get:function(){return dC.UpstreamAzureAdServiceAuthInboundPolicy}});var pC=y_();Object.defineProperty(f,"UpstreamFirebaseAdminAuthInboundPolicy",{enumerable:!0,get:function(){return pC.UpstreamFirebaseAdminAuthInboundPolicy}});var hC=g_();Object.defineProperty(f,"UpstreamFirebaseUserAuthInboundPolicy",{enumerable:!0,get:function(){return hC.UpstreamFirebaseUserAuthInboundPolicy}});var fC=__();Object.defineProperty(f,"UpstreamGcpJwtInboundPolicy",{enumerable:!0,get:function(){return fC.UpstreamGcpJwtInboundPolicy}});var mC=w_();Object.defineProperty(f,"UpstreamGcpServiceAuthInboundPolicy",{enumerable:!0,get:function(){return mC.UpstreamGcpServiceAuthInboundPolicy}});var yC=T_();Object.defineProperty(f,"ValidateJsonSchemaInbound",{enumerable:!0,get:function(){return yC.ValidateJsonSchemaInbound}});var gC=P_();Object.defineProperty(f,"MeteringInboundPolicy",{enumerable:!0,get:function(){return gC.MeteringInboundPolicy}});var bC=O_();Object.defineProperty(f,"LoadSubscriptionInboundPolicy",{enumerable:!0,get:function(){return bC.LoadSubscriptionInboundPolicy}});var _C=ae();Object.defineProperty(f,"HttpProblems",{enumerable:!0,get:function(){return _C.HttpProblems}});var EC=go();Object.defineProperty(f,"ProblemResponseFormatter",{enumerable:!0,get:function(){return EC.ProblemResponseFormatter}});var wC=He();Object.defineProperty(f,"ZuploRequest",{enumerable:!0,get:function(){return wC.ZuploRequest}});var vC=Ar();Object.defineProperty(f,"SystemRouteName",{enumerable:!0,get:function(){return vC.SystemRouteName}});var H_=gd();Object.defineProperty(f,"LookupResult",{enumerable:!0,get:function(){return H_.LookupResult}});Object.defineProperty(f,"Router",{enumerable:!0,get:function(){return H_.Router}});var F_=Ou();Object.defineProperty(f,"ContentTypes",{enumerable:!0,get:function(){return F_.ContentTypes}});Object.defineProperty(f,"serialize",{enumerable:!0,get:function(){return F_.serialize}});var TC=N_();Object.defineProperty(f,"ServiceProviderImpl",{enumerable:!0,get:function(){return TC.ServiceProviderImpl}});var q_=Yu();Object.defineProperty(f,"API_KEY",{enumerable:!0,get:function(){return q_.API_KEY}});Object.defineProperty(f,"SYSTEM_LOGGER",{enumerable:!0,get:function(){return q_.SYSTEM_LOGGER}});var SC=qu();Object.defineProperty(f,"httpStatuses",{enumerable:!0,get:function(){return fx(SC).default}});var IC=Be();Object.defineProperty(f,"SystemLogMap",{enumerable:!0,get:function(){return IC.SystemLogMap}});var qi=Xa();Object.defineProperty(f,"getIdForParameterSchema",{enumerable:!0,get:function(){return qi.getIdForParameterSchema}});Object.defineProperty(f,"getIdForRefSchema",{enumerable:!0,get:function(){return qi.getIdForRefSchema}});Object.defineProperty(f,"getIdForRequestBodySchema",{enumerable:!0,get:function(){return qi.getIdForRequestBodySchema}});Object.defineProperty(f,"getRawOperationDataIdentifierName",{enumerable:!0,get:function(){return qi.getRawOperationDataIdentifierName}});Object.defineProperty(f,"sanitizedIdentifierName",{enumerable:!0,get:function(){return qi.sanitizedIdentifierName}})});var j_=g(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.BaseCryptoBeta=qn.supportedDigests=void 0;qn.supportedDigests=["sha-1","sha-256","sha-384","sha-512"];var $p=class{static{s(this,"BaseCryptoBeta")}};qn.BaseCryptoBeta=$p});var V_=g(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.WorkerCryptoBeta=void 0;var jp=j_(),PC=C(),Vp=class extends jp.BaseCryptoBeta{static{s(this,"WorkerCryptoBeta")}async digest(t,r){if(!jp.supportedDigests.includes(t.toLowerCase()))throw new PC.RuntimeError(`Algorithm ${t} is not supported. Try using ${jp.supportedDigests.join(", ")}`);let n=new TextEncoder().encode(r),i=await crypto.subtle.digest(t,n);return Array.from(new Uint8Array(i)).map(c=>c.toString(16).padStart(2,"0")).join("")}};Tc.WorkerCryptoBeta=Vp});var G_=g(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.BaseKeyValueStore=void 0;var Gp=class{static{s(this,"BaseKeyValueStore")}context;constructor(t){this.context=t}};Sc.BaseKeyValueStore=Gp});var K_=g(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});Ic.WorkerKeyValueStore=void 0;var B_=C(),AC=G_(),Bp=class extends AC.BaseKeyValueStore{static{s(this,"WorkerKeyValueStore")}#e;constructor(t){super(t);let n=globalThis.ZUPLO_KV;if(!n)throw new B_.FeatureNotEnabledError("The Key Value Store feature is not enabled for this project.");this.#e=n}put(t,r,n){if(typeof t!="string")throw new B_.ConfigurationError("value must be of type string");return this.#e.put(t,r,n?{expirationTtl:n.expirationSecondsTtl}:void 0)}get(t,r){return this.#e.get(t,{type:"text",cacheTtl:r?.cacheSecondsTtl})}delete(t){return this.#e.delete(t)}};Ic.WorkerKeyValueStore=Bp});var Ut=g(dt=>{"use strict";var RC=dt&&dt.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OC=dt&&dt.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&RC(t,e,r)};Object.defineProperty(dt,"__esModule",{value:!0});dt.KeyValueStore=dt.CryptoBeta=void 0;OC($_(),dt);var NC=V_();Object.defineProperty(dt,"CryptoBeta",{enumerable:!0,get:function(){return NC.WorkerCryptoBeta}});var xC=K_();Object.defineProperty(dt,"KeyValueStore",{enumerable:!0,get:function(){return xC.WorkerKeyValueStore}})});var HL={};ro(HL,{GraphQLComplexityLimitInboundPolicy:()=>SE,GraphQLDisableIntrospectionInboundPolicy:()=>PE});module.exports=no(HL);var Zn=gh(Ut());function B(e,t){if(!!!e)throw new Error(t)}s(B,"devAssert");function Ee(e){return typeof e=="object"&&e!==null}s(Ee,"isObjectLike");function Ot(e,t){if(!!!e)throw new Error(t??"Unexpected invariant triggered.")}s(Ot,"invariant");var CC=/\r\n|[\n\r]/g;function $n(e,t){let r=0,n=1;for(let i of e.body.matchAll(CC)){if(typeof i.index=="number"||Ot(!1),i.index>=t)break;r=i.index+i[0].length,n+=1}return{line:n,column:t+1-r}}s($n,"getLocation");function Kp(e){return Pc(e.source,$n(e.source,e.start))}s(Kp,"printLocation");function Pc(e,t){let r=e.locationOffset.column-1,n="".padStart(r)+e.body,i=t.line-1,o=e.locationOffset.line-1,a=t.line+o,c=t.line===1?r:0,u=t.column+c,l=`${e.name}:${a}:${u}
75
75
  `,d=n.split(/\r\n|[\n\r]/g),p=d[i];if(p.length>120){let m=Math.floor(u/80),h=u%80,y=[];for(let E=0;E<p.length;E+=80)y.push(p.slice(E,E+80));return l+J_([[`${a} |`,y[0]],...y.slice(1,m+1).map(E=>["|",E]),["|","^".padStart(h)],["|",y[m+1]]])}return l+J_([[`${a-1} |`,d[i-1]],[`${a} |`,p],["|","^".padStart(u)],[`${a+1} |`,d[i+1]]])}s(Pc,"printSourceLocation");function J_(e){let t=e.filter(([n,i])=>i!==void 0),r=Math.max(...t.map(([n])=>n.length));return t.map(([n,i])=>n.padStart(r)+(i?" "+i:"")).join(`
76
76
  `)}s(J_,"printPrefixedLines");function LC(e){let t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}s(LC,"toNormalizedOptions");var L=class e extends Error{static{s(this,"GraphQLError")}constructor(t,...r){var n,i,o;let{nodes:a,source:c,positions:u,path:l,originalError:d,extensions:p}=LC(r);super(t),this.name="GraphQLError",this.path=l??void 0,this.originalError=d??void 0,this.nodes=z_(Array.isArray(a)?a:a?[a]:void 0);let m=z_((n=this.nodes)===null||n===void 0?void 0:n.map(y=>y.loc).filter(y=>y!=null));this.source=c??(m==null||(i=m[0])===null||i===void 0?void 0:i.source),this.positions=u??m?.map(y=>y.start),this.locations=u&&c?u.map(y=>$n(c,y)):m?.map(y=>$n(y.source,y.start));let h=Ee(d?.extensions)?d?.extensions:void 0;this.extensions=(o=p??h)!==null&&o!==void 0?o:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),d!=null&&d.stack?Object.defineProperty(this,"stack",{value:d.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(let r of this.nodes)r.loc&&(t+=`
77
77
 
@@ -119,9 +119,9 @@ spurious results.`)}}return!1},"instanceOf");var Bn=class{static{s(this,"Source"
119
119
  `)),`
120
120
  }`)}s(pt,"block");function J(e,t,r=""){return t!=null&&t!==""?e+t+r:""}s(J,"wrap");function Hc(e){return J(" ",e.replace(/\n/g,`
121
121
  `))}s(Hc,"indent");function aE(e){var t;return(t=e?.some(r=>r.includes(`
122
- `)))!==null&&t!==void 0?t:!1}s(aE,"hasMultilineItems");function Ji(e,t){switch(e.kind){case b.NULL:return null;case b.INT:return parseInt(e.value,10);case b.FLOAT:return parseFloat(e.value);case b.STRING:case b.ENUM:case b.BOOLEAN:return e.value;case b.LIST:return e.values.map(r=>Ji(r,t));case b.OBJECT:return Nt(e.fields,r=>r.name.value,r=>Ji(r.value,t));case b.VARIABLE:return t?.[e.name.value]}}s(Ji,"valueFromASTUntyped");function Ge(e){if(e!=null||B(!1,"Must provide name."),typeof e=="string"||B(!1,"Expected name to be a string."),e.length===0)throw new L("Expected name to be a non-empty string.");for(let t=1;t<e.length;++t)if(!Rc(e.charCodeAt(t)))throw new L(`Names must only contain [_a-zA-Z0-9] but "${e}" does not.`);if(!Vi(e.charCodeAt(0)))throw new L(`Names must start with [_a-zA-Z] but "${e}" does not.`);return e}s(Ge,"assertName");function Xp(e){if(e==="true"||e==="false"||e==="null")throw new L(`Enum values cannot be named: ${e}`);return Ge(e)}s(Xp,"assertEnumValueName");function qc(e){return br(e)||Ce(e)||we(e)||it(e)||Ye(e)||Re(e)||Be(e)||ue(e)}s(qc,"isType");function br(e){return We(e,Qe)}s(br,"isScalarType");function Ce(e){return We(e,xe)}s(Ce,"isObjectType");function $c(e){if(!Ce(e))throw new Error(`Expected ${P(e)} to be a GraphQL Object type.`);return e}s($c,"assertObjectType");function we(e){return We(e,Gt)}s(we,"isInterfaceType");function jc(e){if(!we(e))throw new Error(`Expected ${P(e)} to be a GraphQL Interface type.`);return e}s(jc,"assertInterfaceType");function it(e){return We(e,qr)}s(it,"isUnionType");function Ye(e){return We(e,xt)}s(Ye,"isEnumType");function Re(e){return We(e,$r)}s(Re,"isInputObjectType");function Be(e){return We(e,he)}s(Be,"isListType");function ue(e){return We(e,j)}s(ue,"isNonNullType");function Ze(e){return br(e)||Ye(e)||Re(e)||zi(e)&&Ze(e.ofType)}s(Ze,"isInputType");function Bt(e){return br(e)||Ce(e)||we(e)||it(e)||Ye(e)||zi(e)&&Bt(e.ofType)}s(Bt,"isOutputType");function _r(e){return br(e)||Ye(e)}s(_r,"isLeafType");function Ct(e){return Ce(e)||we(e)||it(e)}s(Ct,"isCompositeType");function Er(e){return we(e)||it(e)}s(Er,"isAbstractType");var he=class{static{s(this,"GraphQLList")}constructor(t){qc(t)||B(!1,`Expected ${P(t)} to be a GraphQL type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLList"}toString(){return"["+String(this.ofType)+"]"}toJSON(){return this.toString()}},j=class{static{s(this,"GraphQLNonNull")}constructor(t){Vc(t)||B(!1,`Expected ${P(t)} to be a GraphQL nullable type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLNonNull"}toString(){return String(this.ofType)+"!"}toJSON(){return this.toString()}};function zi(e){return Be(e)||ue(e)}s(zi,"isWrappingType");function Vc(e){return qc(e)&&!ue(e)}s(Vc,"isNullableType");function Gc(e){if(!Vc(e))throw new Error(`Expected ${P(e)} to be a GraphQL nullable type.`);return e}s(Gc,"assertNullableType");function Bc(e){if(e)return ue(e)?e.ofType:e}s(Bc,"getNullableType");function ht(e){if(e){let t=e;for(;zi(t);)t=t.ofType;return t}}s(ht,"getNamedType");function Kc(e){return typeof e=="function"?e():e}s(Kc,"resolveReadonlyArrayThunk");function Jc(e){return typeof e=="function"?e():e}s(Jc,"resolveObjMapThunk");var Qe=class{static{s(this,"GraphQLScalarType")}constructor(t){var r,n,i,o;let a=(r=t.parseValue)!==null&&r!==void 0?r:Wp;this.name=Ge(t.name),this.description=t.description,this.specifiedByURL=t.specifiedByURL,this.serialize=(n=t.serialize)!==null&&n!==void 0?n:Wp,this.parseValue=a,this.parseLiteral=(i=t.parseLiteral)!==null&&i!==void 0?i:(c,u)=>a(Ji(c,u)),this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(o=t.extensionASTNodes)!==null&&o!==void 0?o:[],t.specifiedByURL==null||typeof t.specifiedByURL=="string"||B(!1,`${this.name} must provide "specifiedByURL" as a string, but got: ${P(t.specifiedByURL)}.`),t.serialize==null||typeof t.serialize=="function"||B(!1,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`),t.parseLiteral&&(typeof t.parseValue=="function"&&typeof t.parseLiteral=="function"||B(!1,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`))}get[Symbol.toStringTag](){return"GraphQLScalarType"}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}},xe=class{static{s(this,"GraphQLObjectType")}constructor(t){var r;this.name=Ge(t.name),this.description=t.description,this.isTypeOf=t.isTypeOf,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._fields=()=>uE(t),this._interfaces=()=>cE(t),t.isTypeOf==null||typeof t.isTypeOf=="function"||B(!1,`${this.name} must provide "isTypeOf" as a function, but got: ${P(t.isTypeOf)}.`)}get[Symbol.toStringTag](){return"GraphQLObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:lE(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function cE(e){var t;let r=Kc((t=e.interfaces)!==null&&t!==void 0?t:[]);return Array.isArray(r)||B(!1,`${e.name} interfaces must be an Array or a function which returns an Array.`),r}s(cE,"defineInterfaces");function uE(e){let t=Jc(e.fields);return zn(t)||B(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),Ki(t,(r,n)=>{var i;zn(r)||B(!1,`${e.name}.${n} field config must be an object.`),r.resolve==null||typeof r.resolve=="function"||B(!1,`${e.name}.${n} field resolver must be a function if provided, but got: ${P(r.resolve)}.`);let o=(i=r.args)!==null&&i!==void 0?i:{};return zn(o)||B(!1,`${e.name}.${n} args must be an object with argument names as keys.`),{name:Ge(n),description:r.description,type:r.type,args:eh(o),resolve:r.resolve,subscribe:r.subscribe,deprecationReason:r.deprecationReason,extensions:Ue(r.extensions),astNode:r.astNode}})}s(uE,"defineFieldMap");function eh(e){return Object.entries(e).map(([t,r])=>({name:Ge(t),description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:Ue(r.extensions),astNode:r.astNode}))}s(eh,"defineArguments");function zn(e){return Ee(e)&&!Array.isArray(e)}s(zn,"isPlainObj");function lE(e){return Ki(e,t=>({description:t.description,type:t.type,args:th(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}s(lE,"fieldsToFieldsConfig");function th(e){return Nt(e,t=>t.name,t=>({description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}s(th,"argsToArgsConfig");var Gt=class{static{s(this,"GraphQLInterfaceType")}constructor(t){var r;this.name=Ge(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._fields=uE.bind(void 0,t),this._interfaces=cE.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||B(!1,`${this.name} must provide "resolveType" as a function, but got: ${P(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLInterfaceType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:lE(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}},qr=class{static{s(this,"GraphQLUnionType")}constructor(t){var r;this.name=Ge(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._types=rL.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||B(!1,`${this.name} must provide "resolveType" as a function, but got: ${P(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLUnionType"}getTypes(){return typeof this._types=="function"&&(this._types=this._types()),this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function rL(e){let t=Kc(e.types);return Array.isArray(t)||B(!1,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`),t}s(rL,"defineTypes");var xt=class{static{s(this,"GraphQLEnumType")}constructor(t){var r;this.name=Ge(t.name),this.description=t.description,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._values=nL(this.name,t.values),this._valueLookup=new Map(this._values.map(n=>[n.value,n])),this._nameLookup=Kn(this._values,n=>n.name)}get[Symbol.toStringTag](){return"GraphQLEnumType"}getValues(){return this._values}getValue(t){return this._nameLookup[t]}serialize(t){let r=this._valueLookup.get(t);if(r===void 0)throw new L(`Enum "${this.name}" cannot represent value: ${P(t)}`);return r.name}parseValue(t){if(typeof t!="string"){let n=P(t);throw new L(`Enum "${this.name}" cannot represent non-string value: ${n}.`+Fc(this,n))}let r=this.getValue(t);if(r==null)throw new L(`Value "${t}" does not exist in "${this.name}" enum.`+Fc(this,t));return r.value}parseLiteral(t,r){if(t.kind!==b.ENUM){let i=Me(t);throw new L(`Enum "${this.name}" cannot represent non-enum value: ${i}.`+Fc(this,i),{nodes:t})}let n=this.getValue(t.value);if(n==null){let i=Me(t);throw new L(`Value "${i}" does not exist in "${this.name}" enum.`+Fc(this,i),{nodes:t})}return n.value}toConfig(){let t=Nt(this.getValues(),r=>r.name,r=>({description:r.description,value:r.value,deprecationReason:r.deprecationReason,extensions:r.extensions,astNode:r.astNode}));return{name:this.name,description:this.description,values:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function Fc(e,t){let r=e.getValues().map(i=>i.name),n=kc(t,r);return Uc("the enum value",n)}s(Fc,"didYouMeanEnumValue");function nL(e,t){return zn(t)||B(!1,`${e} values must be an object with value names as keys.`),Object.entries(t).map(([r,n])=>(zn(n)||B(!1,`${e}.${r} must refer to an object with a "value" key representing an internal value but got: ${P(n)}.`),{name:Xp(r),description:n.description,value:n.value!==void 0?n.value:r,deprecationReason:n.deprecationReason,extensions:Ue(n.extensions),astNode:n.astNode}))}s(nL,"defineEnumValues");var $r=class{static{s(this,"GraphQLInputObjectType")}constructor(t){var r;this.name=Ge(t.name),this.description=t.description,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._fields=iL.bind(void 0,t)}get[Symbol.toStringTag](){return"GraphQLInputObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}toConfig(){let t=Ki(this.getFields(),r=>({description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:r.extensions,astNode:r.astNode}));return{name:this.name,description:this.description,fields:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function iL(e){let t=Jc(e.fields);return zn(t)||B(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),Ki(t,(r,n)=>(!("resolve"in r)||B(!1,`${e.name}.${n} field has a resolve property, but Input Types cannot define resolvers.`),{name:Ge(n),description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:Ue(r.extensions),astNode:r.astNode}))}s(iL,"defineInputFieldMap");var zc=2147483647,Wc=-2147483648,rh=new Qe({name:"Int",description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){let t=Wi(e);if(typeof t=="boolean")return t?1:0;let r=t;if(typeof t=="string"&&t!==""&&(r=Number(t)),typeof r!="number"||!Number.isInteger(r))throw new L(`Int cannot represent non-integer value: ${P(t)}`);if(r>zc||r<Wc)throw new L("Int cannot represent non 32-bit signed integer value: "+P(t));return r},parseValue(e){if(typeof e!="number"||!Number.isInteger(e))throw new L(`Int cannot represent non-integer value: ${P(e)}`);if(e>zc||e<Wc)throw new L(`Int cannot represent non 32-bit signed integer value: ${e}`);return e},parseLiteral(e){if(e.kind!==b.INT)throw new L(`Int cannot represent non-integer value: ${Me(e)}`,{nodes:e});let t=parseInt(e.value,10);if(t>zc||t<Wc)throw new L(`Int cannot represent non 32-bit signed integer value: ${e.value}`,{nodes:e});return t}}),dE=new Qe({name:"Float",description:"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).",serialize(e){let t=Wi(e);if(typeof t=="boolean")return t?1:0;let r=t;if(typeof t=="string"&&t!==""&&(r=Number(t)),typeof r!="number"||!Number.isFinite(r))throw new L(`Float cannot represent non numeric value: ${P(t)}`);return r},parseValue(e){if(typeof e!="number"||!Number.isFinite(e))throw new L(`Float cannot represent non numeric value: ${P(e)}`);return e},parseLiteral(e){if(e.kind!==b.FLOAT&&e.kind!==b.INT)throw new L(`Float cannot represent non numeric value: ${Me(e)}`,e);return parseFloat(e.value)}}),se=new Qe({name:"String",description:"The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.",serialize(e){let t=Wi(e);if(typeof t=="string")return t;if(typeof t=="boolean")return t?"true":"false";if(typeof t=="number"&&Number.isFinite(t))return t.toString();throw new L(`String cannot represent value: ${P(e)}`)},parseValue(e){if(typeof e!="string")throw new L(`String cannot represent a non string value: ${P(e)}`);return e},parseLiteral(e){if(e.kind!==b.STRING)throw new L(`String cannot represent a non string value: ${Me(e)}`,{nodes:e});return e.value}}),ke=new Qe({name:"Boolean",description:"The `Boolean` scalar type represents `true` or `false`.",serialize(e){let t=Wi(e);if(typeof t=="boolean")return t;if(Number.isFinite(t))return t!==0;throw new L(`Boolean cannot represent a non boolean value: ${P(t)}`)},parseValue(e){if(typeof e!="boolean")throw new L(`Boolean cannot represent a non boolean value: ${P(e)}`);return e},parseLiteral(e){if(e.kind!==b.BOOLEAN)throw new L(`Boolean cannot represent a non boolean value: ${Me(e)}`,{nodes:e});return e.value}}),Qc=new Qe({name:"ID",description:'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',serialize(e){let t=Wi(e);if(typeof t=="string")return t;if(Number.isInteger(t))return String(t);throw new L(`ID cannot represent value: ${P(e)}`)},parseValue(e){if(typeof e=="string")return e;if(typeof e=="number"&&Number.isInteger(e))return e.toString();throw new L(`ID cannot represent value: ${P(e)}`)},parseLiteral(e){if(e.kind!==b.STRING&&e.kind!==b.INT)throw new L("ID cannot represent a non-string and non-integer value: "+Me(e),{nodes:e});return e.value}}),nh=Object.freeze([se,rh,dE,ke,Qc]);function Wi(e){if(Ee(e)){if(typeof e.valueOf=="function"){let t=e.valueOf();if(!Ee(t))return t}if(typeof e.toJSON=="function")return e.toJSON()}return e}s(Wi,"serializeObject");function ih(e){return We(e,ft)}s(ih,"isDirective");var ft=class{static{s(this,"GraphQLDirective")}constructor(t){var r,n;this.name=Ge(t.name),this.description=t.description,this.locations=t.locations,this.isRepeatable=(r=t.isRepeatable)!==null&&r!==void 0?r:!1,this.extensions=Ue(t.extensions),this.astNode=t.astNode,Array.isArray(t.locations)||B(!1,`@${t.name} locations must be an Array.`);let i=(n=t.args)!==null&&n!==void 0?n:{};Ee(i)&&!Array.isArray(i)||B(!1,`@${t.name} args must be an object with argument names as keys.`),this.args=eh(i)}get[Symbol.toStringTag](){return"GraphQLDirective"}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:th(this.args),isRepeatable:this.isRepeatable,extensions:this.extensions,astNode:this.astNode}}toString(){return"@"+this.name}toJSON(){return this.toString()}},pE=new ft({name:"include",description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[K.FIELD,K.FRAGMENT_SPREAD,K.INLINE_FRAGMENT],args:{if:{type:new j(ke),description:"Included when true."}}}),hE=new ft({name:"skip",description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[K.FIELD,K.FRAGMENT_SPREAD,K.INLINE_FRAGMENT],args:{if:{type:new j(ke),description:"Skipped when true."}}}),fE="No longer supported",mE=new ft({name:"deprecated",description:"Marks an element of a GraphQL schema as no longer supported.",locations:[K.FIELD_DEFINITION,K.ARGUMENT_DEFINITION,K.INPUT_FIELD_DEFINITION,K.ENUM_VALUE],args:{reason:{type:se,description:"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).",defaultValue:fE}}}),yE=new ft({name:"specifiedBy",description:"Exposes a URL that specifies the behavior of this scalar.",locations:[K.SCALAR],args:{url:{type:new j(se),description:"The URL that specifies the behavior of this scalar."}}}),oh=Object.freeze([pE,hE,mE,yE]);function Yc(e){return typeof e=="object"&&typeof e?.[Symbol.iterator]=="function"}s(Yc,"isIterableObject");function jr(e,t){if(ue(t)){let r=jr(e,t.ofType);return r?.kind===b.NULL?null:r}if(e===null)return{kind:b.NULL};if(e===void 0)return null;if(Be(t)){let r=t.ofType;if(Yc(e)){let n=[];for(let i of e){let o=jr(i,r);o!=null&&n.push(o)}return{kind:b.LIST,values:n}}return jr(e,r)}if(Re(t)){if(!Ee(e))return null;let r=[];for(let n of Object.values(t.getFields())){let i=jr(e[n.name],n.type);i&&r.push({kind:b.OBJECT_FIELD,name:{kind:b.NAME,value:n.name},value:i})}return{kind:b.OBJECT,fields:r}}if(_r(t)){let r=t.serialize(e);if(r==null)return null;if(typeof r=="boolean")return{kind:b.BOOLEAN,value:r};if(typeof r=="number"&&Number.isFinite(r)){let n=String(r);return gE.test(n)?{kind:b.INT,value:n}:{kind:b.FLOAT,value:n}}if(typeof r=="string")return Ye(t)?{kind:b.ENUM,value:r}:t===Qc&&gE.test(r)?{kind:b.INT,value:r}:{kind:b.STRING,value:r};throw new TypeError(`Cannot convert value to AST: ${P(r)}.`)}Ot(!1,"Unexpected input type: "+P(t))}s(jr,"astFromValue");var gE=/^-?(?:0|[1-9][0-9]*)$/;var Qi=new xe({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:()=>({description:{type:se,resolve:e=>e.description},types:{description:"A list of all types supported by this server.",type:new j(new he(new j(ot))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new j(ot),resolve:e=>e.getQueryType()},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:ot,resolve:e=>e.getMutationType()},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:ot,resolve:e=>e.getSubscriptionType()},directives:{description:"A list of all directives supported by this server.",type:new j(new he(new j(sh))),resolve:e=>e.getDirectives()}})}),sh=new xe({name:"__Directive",description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.
122
+ `)))!==null&&t!==void 0?t:!1}s(aE,"hasMultilineItems");function Ji(e,t){switch(e.kind){case b.NULL:return null;case b.INT:return parseInt(e.value,10);case b.FLOAT:return parseFloat(e.value);case b.STRING:case b.ENUM:case b.BOOLEAN:return e.value;case b.LIST:return e.values.map(r=>Ji(r,t));case b.OBJECT:return Nt(e.fields,r=>r.name.value,r=>Ji(r.value,t));case b.VARIABLE:return t?.[e.name.value]}}s(Ji,"valueFromASTUntyped");function Ve(e){if(e!=null||B(!1,"Must provide name."),typeof e=="string"||B(!1,"Expected name to be a string."),e.length===0)throw new L("Expected name to be a non-empty string.");for(let t=1;t<e.length;++t)if(!Rc(e.charCodeAt(t)))throw new L(`Names must only contain [_a-zA-Z0-9] but "${e}" does not.`);if(!Vi(e.charCodeAt(0)))throw new L(`Names must start with [_a-zA-Z] but "${e}" does not.`);return e}s(Ve,"assertName");function Xp(e){if(e==="true"||e==="false"||e==="null")throw new L(`Enum values cannot be named: ${e}`);return Ve(e)}s(Xp,"assertEnumValueName");function qc(e){return br(e)||Ce(e)||we(e)||it(e)||Ye(e)||Re(e)||Ge(e)||ue(e)}s(qc,"isType");function br(e){return We(e,Qe)}s(br,"isScalarType");function Ce(e){return We(e,xe)}s(Ce,"isObjectType");function $c(e){if(!Ce(e))throw new Error(`Expected ${P(e)} to be a GraphQL Object type.`);return e}s($c,"assertObjectType");function we(e){return We(e,Gt)}s(we,"isInterfaceType");function jc(e){if(!we(e))throw new Error(`Expected ${P(e)} to be a GraphQL Interface type.`);return e}s(jc,"assertInterfaceType");function it(e){return We(e,qr)}s(it,"isUnionType");function Ye(e){return We(e,xt)}s(Ye,"isEnumType");function Re(e){return We(e,$r)}s(Re,"isInputObjectType");function Ge(e){return We(e,he)}s(Ge,"isListType");function ue(e){return We(e,j)}s(ue,"isNonNullType");function Ze(e){return br(e)||Ye(e)||Re(e)||zi(e)&&Ze(e.ofType)}s(Ze,"isInputType");function Bt(e){return br(e)||Ce(e)||we(e)||it(e)||Ye(e)||zi(e)&&Bt(e.ofType)}s(Bt,"isOutputType");function _r(e){return br(e)||Ye(e)}s(_r,"isLeafType");function Ct(e){return Ce(e)||we(e)||it(e)}s(Ct,"isCompositeType");function Er(e){return we(e)||it(e)}s(Er,"isAbstractType");var he=class{static{s(this,"GraphQLList")}constructor(t){qc(t)||B(!1,`Expected ${P(t)} to be a GraphQL type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLList"}toString(){return"["+String(this.ofType)+"]"}toJSON(){return this.toString()}},j=class{static{s(this,"GraphQLNonNull")}constructor(t){Vc(t)||B(!1,`Expected ${P(t)} to be a GraphQL nullable type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLNonNull"}toString(){return String(this.ofType)+"!"}toJSON(){return this.toString()}};function zi(e){return Ge(e)||ue(e)}s(zi,"isWrappingType");function Vc(e){return qc(e)&&!ue(e)}s(Vc,"isNullableType");function Gc(e){if(!Vc(e))throw new Error(`Expected ${P(e)} to be a GraphQL nullable type.`);return e}s(Gc,"assertNullableType");function Bc(e){if(e)return ue(e)?e.ofType:e}s(Bc,"getNullableType");function ht(e){if(e){let t=e;for(;zi(t);)t=t.ofType;return t}}s(ht,"getNamedType");function Kc(e){return typeof e=="function"?e():e}s(Kc,"resolveReadonlyArrayThunk");function Jc(e){return typeof e=="function"?e():e}s(Jc,"resolveObjMapThunk");var Qe=class{static{s(this,"GraphQLScalarType")}constructor(t){var r,n,i,o;let a=(r=t.parseValue)!==null&&r!==void 0?r:Wp;this.name=Ve(t.name),this.description=t.description,this.specifiedByURL=t.specifiedByURL,this.serialize=(n=t.serialize)!==null&&n!==void 0?n:Wp,this.parseValue=a,this.parseLiteral=(i=t.parseLiteral)!==null&&i!==void 0?i:(c,u)=>a(Ji(c,u)),this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(o=t.extensionASTNodes)!==null&&o!==void 0?o:[],t.specifiedByURL==null||typeof t.specifiedByURL=="string"||B(!1,`${this.name} must provide "specifiedByURL" as a string, but got: ${P(t.specifiedByURL)}.`),t.serialize==null||typeof t.serialize=="function"||B(!1,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`),t.parseLiteral&&(typeof t.parseValue=="function"&&typeof t.parseLiteral=="function"||B(!1,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`))}get[Symbol.toStringTag](){return"GraphQLScalarType"}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}},xe=class{static{s(this,"GraphQLObjectType")}constructor(t){var r;this.name=Ve(t.name),this.description=t.description,this.isTypeOf=t.isTypeOf,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._fields=()=>uE(t),this._interfaces=()=>cE(t),t.isTypeOf==null||typeof t.isTypeOf=="function"||B(!1,`${this.name} must provide "isTypeOf" as a function, but got: ${P(t.isTypeOf)}.`)}get[Symbol.toStringTag](){return"GraphQLObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:lE(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function cE(e){var t;let r=Kc((t=e.interfaces)!==null&&t!==void 0?t:[]);return Array.isArray(r)||B(!1,`${e.name} interfaces must be an Array or a function which returns an Array.`),r}s(cE,"defineInterfaces");function uE(e){let t=Jc(e.fields);return zn(t)||B(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),Ki(t,(r,n)=>{var i;zn(r)||B(!1,`${e.name}.${n} field config must be an object.`),r.resolve==null||typeof r.resolve=="function"||B(!1,`${e.name}.${n} field resolver must be a function if provided, but got: ${P(r.resolve)}.`);let o=(i=r.args)!==null&&i!==void 0?i:{};return zn(o)||B(!1,`${e.name}.${n} args must be an object with argument names as keys.`),{name:Ve(n),description:r.description,type:r.type,args:eh(o),resolve:r.resolve,subscribe:r.subscribe,deprecationReason:r.deprecationReason,extensions:Ue(r.extensions),astNode:r.astNode}})}s(uE,"defineFieldMap");function eh(e){return Object.entries(e).map(([t,r])=>({name:Ve(t),description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:Ue(r.extensions),astNode:r.astNode}))}s(eh,"defineArguments");function zn(e){return Ee(e)&&!Array.isArray(e)}s(zn,"isPlainObj");function lE(e){return Ki(e,t=>({description:t.description,type:t.type,args:th(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}s(lE,"fieldsToFieldsConfig");function th(e){return Nt(e,t=>t.name,t=>({description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}s(th,"argsToArgsConfig");var Gt=class{static{s(this,"GraphQLInterfaceType")}constructor(t){var r;this.name=Ve(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._fields=uE.bind(void 0,t),this._interfaces=cE.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||B(!1,`${this.name} must provide "resolveType" as a function, but got: ${P(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLInterfaceType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:lE(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}},qr=class{static{s(this,"GraphQLUnionType")}constructor(t){var r;this.name=Ve(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._types=rL.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||B(!1,`${this.name} must provide "resolveType" as a function, but got: ${P(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLUnionType"}getTypes(){return typeof this._types=="function"&&(this._types=this._types()),this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function rL(e){let t=Kc(e.types);return Array.isArray(t)||B(!1,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`),t}s(rL,"defineTypes");var xt=class{static{s(this,"GraphQLEnumType")}constructor(t){var r;this.name=Ve(t.name),this.description=t.description,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._values=nL(this.name,t.values),this._valueLookup=new Map(this._values.map(n=>[n.value,n])),this._nameLookup=Kn(this._values,n=>n.name)}get[Symbol.toStringTag](){return"GraphQLEnumType"}getValues(){return this._values}getValue(t){return this._nameLookup[t]}serialize(t){let r=this._valueLookup.get(t);if(r===void 0)throw new L(`Enum "${this.name}" cannot represent value: ${P(t)}`);return r.name}parseValue(t){if(typeof t!="string"){let n=P(t);throw new L(`Enum "${this.name}" cannot represent non-string value: ${n}.`+Fc(this,n))}let r=this.getValue(t);if(r==null)throw new L(`Value "${t}" does not exist in "${this.name}" enum.`+Fc(this,t));return r.value}parseLiteral(t,r){if(t.kind!==b.ENUM){let i=Me(t);throw new L(`Enum "${this.name}" cannot represent non-enum value: ${i}.`+Fc(this,i),{nodes:t})}let n=this.getValue(t.value);if(n==null){let i=Me(t);throw new L(`Value "${i}" does not exist in "${this.name}" enum.`+Fc(this,i),{nodes:t})}return n.value}toConfig(){let t=Nt(this.getValues(),r=>r.name,r=>({description:r.description,value:r.value,deprecationReason:r.deprecationReason,extensions:r.extensions,astNode:r.astNode}));return{name:this.name,description:this.description,values:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function Fc(e,t){let r=e.getValues().map(i=>i.name),n=kc(t,r);return Uc("the enum value",n)}s(Fc,"didYouMeanEnumValue");function nL(e,t){return zn(t)||B(!1,`${e} values must be an object with value names as keys.`),Object.entries(t).map(([r,n])=>(zn(n)||B(!1,`${e}.${r} must refer to an object with a "value" key representing an internal value but got: ${P(n)}.`),{name:Xp(r),description:n.description,value:n.value!==void 0?n.value:r,deprecationReason:n.deprecationReason,extensions:Ue(n.extensions),astNode:n.astNode}))}s(nL,"defineEnumValues");var $r=class{static{s(this,"GraphQLInputObjectType")}constructor(t){var r;this.name=Ve(t.name),this.description=t.description,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._fields=iL.bind(void 0,t)}get[Symbol.toStringTag](){return"GraphQLInputObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}toConfig(){let t=Ki(this.getFields(),r=>({description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:r.extensions,astNode:r.astNode}));return{name:this.name,description:this.description,fields:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function iL(e){let t=Jc(e.fields);return zn(t)||B(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),Ki(t,(r,n)=>(!("resolve"in r)||B(!1,`${e.name}.${n} field has a resolve property, but Input Types cannot define resolvers.`),{name:Ve(n),description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:Ue(r.extensions),astNode:r.astNode}))}s(iL,"defineInputFieldMap");var zc=2147483647,Wc=-2147483648,rh=new Qe({name:"Int",description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){let t=Wi(e);if(typeof t=="boolean")return t?1:0;let r=t;if(typeof t=="string"&&t!==""&&(r=Number(t)),typeof r!="number"||!Number.isInteger(r))throw new L(`Int cannot represent non-integer value: ${P(t)}`);if(r>zc||r<Wc)throw new L("Int cannot represent non 32-bit signed integer value: "+P(t));return r},parseValue(e){if(typeof e!="number"||!Number.isInteger(e))throw new L(`Int cannot represent non-integer value: ${P(e)}`);if(e>zc||e<Wc)throw new L(`Int cannot represent non 32-bit signed integer value: ${e}`);return e},parseLiteral(e){if(e.kind!==b.INT)throw new L(`Int cannot represent non-integer value: ${Me(e)}`,{nodes:e});let t=parseInt(e.value,10);if(t>zc||t<Wc)throw new L(`Int cannot represent non 32-bit signed integer value: ${e.value}`,{nodes:e});return t}}),dE=new Qe({name:"Float",description:"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).",serialize(e){let t=Wi(e);if(typeof t=="boolean")return t?1:0;let r=t;if(typeof t=="string"&&t!==""&&(r=Number(t)),typeof r!="number"||!Number.isFinite(r))throw new L(`Float cannot represent non numeric value: ${P(t)}`);return r},parseValue(e){if(typeof e!="number"||!Number.isFinite(e))throw new L(`Float cannot represent non numeric value: ${P(e)}`);return e},parseLiteral(e){if(e.kind!==b.FLOAT&&e.kind!==b.INT)throw new L(`Float cannot represent non numeric value: ${Me(e)}`,e);return parseFloat(e.value)}}),se=new Qe({name:"String",description:"The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.",serialize(e){let t=Wi(e);if(typeof t=="string")return t;if(typeof t=="boolean")return t?"true":"false";if(typeof t=="number"&&Number.isFinite(t))return t.toString();throw new L(`String cannot represent value: ${P(e)}`)},parseValue(e){if(typeof e!="string")throw new L(`String cannot represent a non string value: ${P(e)}`);return e},parseLiteral(e){if(e.kind!==b.STRING)throw new L(`String cannot represent a non string value: ${Me(e)}`,{nodes:e});return e.value}}),ke=new Qe({name:"Boolean",description:"The `Boolean` scalar type represents `true` or `false`.",serialize(e){let t=Wi(e);if(typeof t=="boolean")return t;if(Number.isFinite(t))return t!==0;throw new L(`Boolean cannot represent a non boolean value: ${P(t)}`)},parseValue(e){if(typeof e!="boolean")throw new L(`Boolean cannot represent a non boolean value: ${P(e)}`);return e},parseLiteral(e){if(e.kind!==b.BOOLEAN)throw new L(`Boolean cannot represent a non boolean value: ${Me(e)}`,{nodes:e});return e.value}}),Qc=new Qe({name:"ID",description:'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',serialize(e){let t=Wi(e);if(typeof t=="string")return t;if(Number.isInteger(t))return String(t);throw new L(`ID cannot represent value: ${P(e)}`)},parseValue(e){if(typeof e=="string")return e;if(typeof e=="number"&&Number.isInteger(e))return e.toString();throw new L(`ID cannot represent value: ${P(e)}`)},parseLiteral(e){if(e.kind!==b.STRING&&e.kind!==b.INT)throw new L("ID cannot represent a non-string and non-integer value: "+Me(e),{nodes:e});return e.value}}),nh=Object.freeze([se,rh,dE,ke,Qc]);function Wi(e){if(Ee(e)){if(typeof e.valueOf=="function"){let t=e.valueOf();if(!Ee(t))return t}if(typeof e.toJSON=="function")return e.toJSON()}return e}s(Wi,"serializeObject");function ih(e){return We(e,ft)}s(ih,"isDirective");var ft=class{static{s(this,"GraphQLDirective")}constructor(t){var r,n;this.name=Ve(t.name),this.description=t.description,this.locations=t.locations,this.isRepeatable=(r=t.isRepeatable)!==null&&r!==void 0?r:!1,this.extensions=Ue(t.extensions),this.astNode=t.astNode,Array.isArray(t.locations)||B(!1,`@${t.name} locations must be an Array.`);let i=(n=t.args)!==null&&n!==void 0?n:{};Ee(i)&&!Array.isArray(i)||B(!1,`@${t.name} args must be an object with argument names as keys.`),this.args=eh(i)}get[Symbol.toStringTag](){return"GraphQLDirective"}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:th(this.args),isRepeatable:this.isRepeatable,extensions:this.extensions,astNode:this.astNode}}toString(){return"@"+this.name}toJSON(){return this.toString()}},pE=new ft({name:"include",description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[K.FIELD,K.FRAGMENT_SPREAD,K.INLINE_FRAGMENT],args:{if:{type:new j(ke),description:"Included when true."}}}),hE=new ft({name:"skip",description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[K.FIELD,K.FRAGMENT_SPREAD,K.INLINE_FRAGMENT],args:{if:{type:new j(ke),description:"Skipped when true."}}}),fE="No longer supported",mE=new ft({name:"deprecated",description:"Marks an element of a GraphQL schema as no longer supported.",locations:[K.FIELD_DEFINITION,K.ARGUMENT_DEFINITION,K.INPUT_FIELD_DEFINITION,K.ENUM_VALUE],args:{reason:{type:se,description:"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).",defaultValue:fE}}}),yE=new ft({name:"specifiedBy",description:"Exposes a URL that specifies the behavior of this scalar.",locations:[K.SCALAR],args:{url:{type:new j(se),description:"The URL that specifies the behavior of this scalar."}}}),oh=Object.freeze([pE,hE,mE,yE]);function Yc(e){return typeof e=="object"&&typeof e?.[Symbol.iterator]=="function"}s(Yc,"isIterableObject");function jr(e,t){if(ue(t)){let r=jr(e,t.ofType);return r?.kind===b.NULL?null:r}if(e===null)return{kind:b.NULL};if(e===void 0)return null;if(Ge(t)){let r=t.ofType;if(Yc(e)){let n=[];for(let i of e){let o=jr(i,r);o!=null&&n.push(o)}return{kind:b.LIST,values:n}}return jr(e,r)}if(Re(t)){if(!Ee(e))return null;let r=[];for(let n of Object.values(t.getFields())){let i=jr(e[n.name],n.type);i&&r.push({kind:b.OBJECT_FIELD,name:{kind:b.NAME,value:n.name},value:i})}return{kind:b.OBJECT,fields:r}}if(_r(t)){let r=t.serialize(e);if(r==null)return null;if(typeof r=="boolean")return{kind:b.BOOLEAN,value:r};if(typeof r=="number"&&Number.isFinite(r)){let n=String(r);return gE.test(n)?{kind:b.INT,value:n}:{kind:b.FLOAT,value:n}}if(typeof r=="string")return Ye(t)?{kind:b.ENUM,value:r}:t===Qc&&gE.test(r)?{kind:b.INT,value:r}:{kind:b.STRING,value:r};throw new TypeError(`Cannot convert value to AST: ${P(r)}.`)}Ot(!1,"Unexpected input type: "+P(t))}s(jr,"astFromValue");var gE=/^-?(?:0|[1-9][0-9]*)$/;var Qi=new xe({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:()=>({description:{type:se,resolve:e=>e.description},types:{description:"A list of all types supported by this server.",type:new j(new he(new j(ot))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new j(ot),resolve:e=>e.getQueryType()},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:ot,resolve:e=>e.getMutationType()},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:ot,resolve:e=>e.getSubscriptionType()},directives:{description:"A list of all directives supported by this server.",type:new j(new he(new j(sh))),resolve:e=>e.getDirectives()}})}),sh=new xe({name:"__Directive",description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.
123
123
 
124
- In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},isRepeatable:{type:new j(ke),resolve:e=>e.isRepeatable},locations:{type:new j(new he(new j(ah))),resolve:e=>e.locations},args:{type:new j(new he(new j(Yi))),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(r=>r.deprecationReason==null)}}})}),ah=new xt({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:K.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:K.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:K.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:K.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:K.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:K.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:K.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:K.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:K.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:K.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:K.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:K.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:K.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:K.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:K.UNION,description:"Location adjacent to a union definition."},ENUM:{value:K.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:K.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:K.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:K.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}}),ot=new xe({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new j(lh),resolve(e){if(br(e))return ee.SCALAR;if(Ce(e))return ee.OBJECT;if(we(e))return ee.INTERFACE;if(it(e))return ee.UNION;if(Ye(e))return ee.ENUM;if(Re(e))return ee.INPUT_OBJECT;if(Be(e))return ee.LIST;if(ue(e))return ee.NON_NULL;Ot(!1,`Unexpected type: "${P(e)}".`)}},name:{type:se,resolve:e=>"name"in e?e.name:void 0},description:{type:se,resolve:e=>"description"in e?e.description:void 0},specifiedByURL:{type:se,resolve:e=>"specifiedByURL"in e?e.specifiedByURL:void 0},fields:{type:new he(new j(ch)),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Ce(e)||we(e)){let r=Object.values(e.getFields());return t?r:r.filter(n=>n.deprecationReason==null)}}},interfaces:{type:new he(new j(ot)),resolve(e){if(Ce(e)||we(e))return e.getInterfaces()}},possibleTypes:{type:new he(new j(ot)),resolve(e,t,r,{schema:n}){if(Er(e))return n.getPossibleTypes(e)}},enumValues:{type:new he(new j(uh)),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Ye(e)){let r=e.getValues();return t?r:r.filter(n=>n.deprecationReason==null)}}},inputFields:{type:new he(new j(Yi)),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Re(e)){let r=Object.values(e.getFields());return t?r:r.filter(n=>n.deprecationReason==null)}}},ofType:{type:ot,resolve:e=>"ofType"in e?e.ofType:void 0}})}),ch=new xe({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},args:{type:new j(new he(new j(Yi))),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(r=>r.deprecationReason==null)}},type:{type:new j(ot),resolve:e=>e.type},isDeprecated:{type:new j(ke),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:se,resolve:e=>e.deprecationReason}})}),Yi=new xe({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},type:{type:new j(ot),resolve:e=>e.type},defaultValue:{type:se,description:"A GraphQL-formatted string representing the default value for this input value.",resolve(e){let{type:t,defaultValue:r}=e,n=jr(r,t);return n?Me(n):null}},isDeprecated:{type:new j(ke),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:se,resolve:e=>e.deprecationReason}})}),uh=new xe({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},isDeprecated:{type:new j(ke),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:se,resolve:e=>e.deprecationReason}})}),ee;(function(e){e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.INPUT_OBJECT="INPUT_OBJECT",e.LIST="LIST",e.NON_NULL="NON_NULL"})(ee||(ee={}));var lh=new xt({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:ee.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:ee.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:ee.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:ee.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:ee.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:ee.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:ee.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:ee.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}}),Zc={name:"__schema",type:new j(Qi),description:"Access the current type schema of this server.",args:[],resolve:(e,t,r,{schema:n})=>n,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},Xc={name:"__type",type:ot,description:"Request the type information of a single type.",args:[{name:"name",description:void 0,type:new j(se),defaultValue:void 0,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0}],resolve:(e,{name:t},r,{schema:n})=>n.getType(t),deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},eu={name:"__typename",type:new j(se),description:"The name of the current Object type at runtime.",args:[],resolve:(e,t,r,{parentType:n})=>n.name,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},dh=Object.freeze([Qi,sh,ah,ot,ch,Yi,uh,lh]);var Zi=class{static{s(this,"GraphQLSchema")}constructor(t){var r,n;this.__validationErrors=t.assumeValid===!0?[]:void 0,Ee(t)||B(!1,"Must provide configuration object."),!t.types||Array.isArray(t.types)||B(!1,`"types" must be Array if provided but got: ${P(t.types)}.`),!t.directives||Array.isArray(t.directives)||B(!1,`"directives" must be Array if provided but got: ${P(t.directives)}.`),this.description=t.description,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._queryType=t.query,this._mutationType=t.mutation,this._subscriptionType=t.subscription,this._directives=(n=t.directives)!==null&&n!==void 0?n:oh;let i=new Set(t.types);if(t.types!=null)for(let o of t.types)i.delete(o),mt(o,i);this._queryType!=null&&mt(this._queryType,i),this._mutationType!=null&&mt(this._mutationType,i),this._subscriptionType!=null&&mt(this._subscriptionType,i);for(let o of this._directives)if(ih(o))for(let a of o.args)mt(a.type,i);mt(Qi,i),this._typeMap=Object.create(null),this._subTypeMap=Object.create(null),this._implementationsMap=Object.create(null);for(let o of i){if(o==null)continue;let a=o.name;if(a||B(!1,"One of the provided types for building the Schema is missing a name."),this._typeMap[a]!==void 0)throw new Error(`Schema must contain uniquely named types but contains multiple types named "${a}".`);if(this._typeMap[a]=o,we(o)){for(let c of o.getInterfaces())if(we(c)){let u=this._implementationsMap[c.name];u===void 0&&(u=this._implementationsMap[c.name]={objects:[],interfaces:[]}),u.interfaces.push(o)}}else if(Ce(o)){for(let c of o.getInterfaces())if(we(c)){let u=this._implementationsMap[c.name];u===void 0&&(u=this._implementationsMap[c.name]={objects:[],interfaces:[]}),u.objects.push(o)}}}}get[Symbol.toStringTag](){return"GraphQLSchema"}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(t){switch(t){case nt.QUERY:return this.getQueryType();case nt.MUTATION:return this.getMutationType();case nt.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(t){return this.getTypeMap()[t]}getPossibleTypes(t){return it(t)?t.getTypes():this.getImplementations(t).objects}getImplementations(t){let r=this._implementationsMap[t.name];return r??{objects:[],interfaces:[]}}isSubType(t,r){let n=this._subTypeMap[t.name];if(n===void 0){if(n=Object.create(null),it(t))for(let i of t.getTypes())n[i.name]=!0;else{let i=this.getImplementations(t);for(let o of i.objects)n[o.name]=!0;for(let o of i.interfaces)n[o.name]=!0}this._subTypeMap[t.name]=n}return n[r.name]!==void 0}getDirectives(){return this._directives}getDirective(t){return this.getDirectives().find(r=>r.name===t)}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==void 0}}};function mt(e,t){let r=ht(e);if(!t.has(r)){if(t.add(r),it(r))for(let n of r.getTypes())mt(n,t);else if(Ce(r)||we(r)){for(let n of r.getInterfaces())mt(n,t);for(let n of Object.values(r.getFields())){mt(n.type,t);for(let i of n.args)mt(i.type,t)}}else if(Re(r))for(let n of Object.values(r.getFields()))mt(n.type,t)}return t}s(mt,"collectReferencedTypes");function wr(e,t){switch(t.kind){case b.LIST_TYPE:{let r=wr(e,t.type);return r&&new he(r)}case b.NON_NULL_TYPE:{let r=wr(e,t.type);return r&&new j(r)}case b.NAMED_TYPE:return e.getType(t.name.value)}}s(wr,"typeFromAST");var vr=class{static{s(this,"TypeInfo")}constructor(t,r,n){this._schema=t,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=n??oL,r&&(Ze(r)&&this._inputTypeStack.push(r),Ct(r)&&this._parentTypeStack.push(r),Bt(r)&&this._typeStack.push(r))}get[Symbol.toStringTag](){return"TypeInfo"}getType(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]}getParentType(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]}getInputType(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]}getParentInputType(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]}getFieldDef(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]}getDefaultValue(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(t){let r=this._schema;switch(t.kind){case b.SELECTION_SET:{let i=ht(this.getType());this._parentTypeStack.push(Ct(i)?i:void 0);break}case b.FIELD:{let i=this.getParentType(),o,a;i&&(o=this._getFieldDef(r,i,t),o&&(a=o.type)),this._fieldDefStack.push(o),this._typeStack.push(Bt(a)?a:void 0);break}case b.DIRECTIVE:this._directive=r.getDirective(t.name.value);break;case b.OPERATION_DEFINITION:{let i=r.getRootType(t.operation);this._typeStack.push(Ce(i)?i:void 0);break}case b.INLINE_FRAGMENT:case b.FRAGMENT_DEFINITION:{let i=t.typeCondition,o=i?wr(r,i):ht(this.getType());this._typeStack.push(Bt(o)?o:void 0);break}case b.VARIABLE_DEFINITION:{let i=wr(r,t.type);this._inputTypeStack.push(Ze(i)?i:void 0);break}case b.ARGUMENT:{var n;let i,o,a=(n=this.getDirective())!==null&&n!==void 0?n:this.getFieldDef();a&&(i=a.args.find(c=>c.name===t.name.value),i&&(o=i.type)),this._argument=i,this._defaultValueStack.push(i?i.defaultValue:void 0),this._inputTypeStack.push(Ze(o)?o:void 0);break}case b.LIST:{let i=Bc(this.getInputType()),o=Be(i)?i.ofType:i;this._defaultValueStack.push(void 0),this._inputTypeStack.push(Ze(o)?o:void 0);break}case b.OBJECT_FIELD:{let i=ht(this.getInputType()),o,a;Re(i)&&(a=i.getFields()[t.name.value],a&&(o=a.type)),this._defaultValueStack.push(a?a.defaultValue:void 0),this._inputTypeStack.push(Ze(o)?o:void 0);break}case b.ENUM:{let i=ht(this.getInputType()),o;Ye(i)&&(o=i.getValue(t.value)),this._enumValue=o;break}default:}}leave(t){switch(t.kind){case b.SELECTION_SET:this._parentTypeStack.pop();break;case b.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case b.DIRECTIVE:this._directive=null;break;case b.OPERATION_DEFINITION:case b.INLINE_FRAGMENT:case b.FRAGMENT_DEFINITION:this._typeStack.pop();break;case b.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case b.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case b.LIST:case b.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case b.ENUM:this._enumValue=null;break;default:}}};function oL(e,t,r){let n=r.name.value;if(n===Zc.name&&e.getQueryType()===t)return Zc;if(n===Xc.name&&e.getQueryType()===t)return Xc;if(n===eu.name&&Ct(t))return eu;if(Ce(t)||we(t))return t.getFields()[n]}s(oL,"getFieldDef");function Wn(e,t){return{enter(...r){let n=r[0];e.enter(n);let i=Jn(t,n.kind).enter;if(i){let o=i.apply(t,r);return o!==void 0&&(e.leave(n),ji(o)&&e.enter(o)),o}},leave(...r){let n=r[0],i=Jn(t,n.kind).leave,o;return i&&(o=i.apply(t,r)),e.leave(n),o}}}s(Wn,"visitWithTypeInfo");function tu(e){return e.map(t=>typeof t=="number"?"["+t.toString()+"]":"."+t).join("")}s(tu,"printPathArray");function ph(e,t,r){return{prev:e,key:t,typename:r}}s(ph,"addPath");function Kt(e){let t=[],r=e;for(;r;)t.push(r.key),r=r.prev;return t.reverse()}s(Kt,"pathToArray");function hh(e,t,r=sL){return Xi(e,t,r,void 0)}s(hh,"coerceInputValue");function sL(e,t,r){let n="Invalid value "+P(t);throw e.length>0&&(n+=` at "value${tu(e)}"`),r.message=n+": "+r.message,r}s(sL,"defaultOnError");function Xi(e,t,r,n){if(ue(t)){if(e!=null)return Xi(e,t.ofType,r,n);r(Kt(n),e,new L(`Expected non-nullable type "${P(t)}" not to be null.`));return}if(e==null)return null;if(Be(t)){let i=t.ofType;return Yc(e)?Array.from(e,(o,a)=>{let c=ph(n,a,void 0);return Xi(o,i,r,c)}):[Xi(e,i,r,n)]}if(Re(t)){if(!Ee(e)){r(Kt(n),e,new L(`Expected type "${t.name}" to be an object.`));return}let i={},o=t.getFields();for(let a of Object.values(o)){let c=e[a.name];if(c===void 0){if(a.defaultValue!==void 0)i[a.name]=a.defaultValue;else if(ue(a.type)){let u=P(a.type);r(Kt(n),e,new L(`Field "${a.name}" of required type "${u}" was not provided.`))}continue}i[a.name]=Xi(c,a.type,r,ph(n,a.name,t.name))}for(let a of Object.keys(e))if(!o[a]){let c=kc(a,Object.keys(t.getFields()));r(Kt(n),e,new L(`Field "${a}" is not defined by type "${t.name}".`+Uc(c)))}return i}if(_r(t)){let i;try{i=t.parseValue(e)}catch(o){o instanceof L?r(Kt(n),e,o):r(Kt(n),e,new L(`Expected type "${t.name}". `+o.message,{originalError:o}));return}return i===void 0&&r(Kt(n),e,new L(`Expected type "${t.name}".`)),i}Ot(!1,"Unexpected input type: "+P(t))}s(Xi,"coerceInputValueImpl");function Lt(e,t,r){if(e){if(e.kind===b.VARIABLE){let n=e.name.value;if(r==null||r[n]===void 0)return;let i=r[n];return i===null&&ue(t)?void 0:i}if(ue(t))return e.kind===b.NULL?void 0:Lt(e,t.ofType,r);if(e.kind===b.NULL)return null;if(Be(t)){let n=t.ofType;if(e.kind===b.LIST){let o=[];for(let a of e.values)if(bE(a,r)){if(ue(n))return;o.push(null)}else{let c=Lt(a,n,r);if(c===void 0)return;o.push(c)}return o}let i=Lt(e,n,r);return i===void 0?void 0:[i]}if(Re(t)){if(e.kind!==b.OBJECT)return;let n=Object.create(null),i=Kn(e.fields,o=>o.name.value);for(let o of Object.values(t.getFields())){let a=i[o.name];if(!a||bE(a.value,r)){if(o.defaultValue!==void 0)n[o.name]=o.defaultValue;else if(ue(o.type))return;continue}let c=Lt(a.value,o.type,r);if(c===void 0)return;n[o.name]=c}return n}if(_r(t)){let n;try{n=t.parseLiteral(e,r)}catch{return}return n===void 0?void 0:n}Ot(!1,"Unexpected input type: "+P(t))}}s(Lt,"valueFromAST");function bE(e,t){return e.kind===b.VARIABLE&&(t==null||t[e.name.value]===void 0)}s(bE,"isMissingVariable");function ru(e,t,r,n){let i=[],o=n?.maxErrors;try{let a=aL(e,t,r,c=>{if(o!=null&&i.length>=o)throw new L("Too many errors processing variables, error limit reached. Execution aborted.");i.push(c)});if(i.length===0)return{coerced:a}}catch(a){i.push(a)}return{errors:i}}s(ru,"getVariableValues");function aL(e,t,r,n){let i={};for(let o of t){let a=o.variable.name.value,c=wr(e,o.type);if(!Ze(c)){let l=Me(o.type);n(new L(`Variable "$${a}" expected value of type "${l}" which cannot be used as an input type.`,{nodes:o.type}));continue}if(!_E(r,a)){if(o.defaultValue)i[a]=Lt(o.defaultValue,c);else if(ue(c)){let l=P(c);n(new L(`Variable "$${a}" of required type "${l}" was not provided.`,{nodes:o}))}continue}let u=r[a];if(u===null&&ue(c)){let l=P(c);n(new L(`Variable "$${a}" of non-null type "${l}" must not be null.`,{nodes:o}));continue}i[a]=hh(u,c,(l,d,p)=>{let m=`Variable "$${a}" got invalid value `+P(d);l.length>0&&(m+=` at "${a}${tu(l)}"`),n(new L(m+"; "+p.message,{nodes:o,originalError:p}))})}return i}s(aL,"coerceVariableValues");function eo(e,t,r){var n;let i={},o=(n=t.arguments)!==null&&n!==void 0?n:[],a=Kn(o,c=>c.name.value);for(let c of e.args){let u=c.name,l=c.type,d=a[u];if(!d){if(c.defaultValue!==void 0)i[u]=c.defaultValue;else if(ue(l))throw new L(`Argument "${u}" of required type "${P(l)}" was not provided.`,{nodes:t});continue}let p=d.value,m=p.kind===b.NULL;if(p.kind===b.VARIABLE){let y=p.name.value;if(r==null||!_E(r,y)){if(c.defaultValue!==void 0)i[u]=c.defaultValue;else if(ue(l))throw new L(`Argument "${u}" of required type "${P(l)}" was provided the variable "$${y}" which was not provided a runtime value.`,{nodes:p});continue}m=r[y]==null}if(m&&ue(l))throw new L(`Argument "${u}" of non-null type "${P(l)}" must not be null.`,{nodes:p});let h=Lt(p,l,r);if(h===void 0)throw new L(`Argument "${u}" has invalid value ${Me(p)}.`,{nodes:p});i[u]=h}return i}s(eo,"getArgumentValues");function to(e,t,r){var n;let i=(n=t.directives)===null||n===void 0?void 0:n.find(o=>o.name.value===e.name);if(i)return eo(e,i,r)}s(to,"getDirectiveValues");function _E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}s(_E,"hasOwnProperty");var nu=class{static{s(this,"ASTValidationContext")}constructor(t,r){this._ast=t,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=r}get[Symbol.toStringTag](){return"ASTValidationContext"}reportError(t){this._onError(t)}getDocument(){return this._ast}getFragment(t){let r;if(this._fragments)r=this._fragments;else{r=Object.create(null);for(let n of this.getDocument().definitions)n.kind===b.FRAGMENT_DEFINITION&&(r[n.name.value]=n);this._fragments=r}return r[t]}getFragmentSpreads(t){let r=this._fragmentSpreads.get(t);if(!r){r=[];let n=[t],i;for(;i=n.pop();)for(let o of i.selections)o.kind===b.FRAGMENT_SPREAD?r.push(o):o.selectionSet&&n.push(o.selectionSet);this._fragmentSpreads.set(t,r)}return r}getRecursivelyReferencedFragments(t){let r=this._recursivelyReferencedFragments.get(t);if(!r){r=[];let n=Object.create(null),i=[t.selectionSet],o;for(;o=i.pop();)for(let a of this.getFragmentSpreads(o)){let c=a.name.value;if(n[c]!==!0){n[c]=!0;let u=this.getFragment(c);u&&(r.push(u),i.push(u.selectionSet))}}this._recursivelyReferencedFragments.set(t,r)}return r}},EE=class extends nu{static{s(this,"SDLValidationContext")}constructor(t,r,n){super(t,n),this._schema=r}get[Symbol.toStringTag](){return"SDLValidationContext"}getSchema(){return this._schema}},Qn=class extends nu{static{s(this,"ValidationContext")}constructor(t,r,n,i){super(r,i),this._schema=t,this._typeInfo=n,this._variableUsages=new Map,this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return"ValidationContext"}getSchema(){return this._schema}getVariableUsages(t){let r=this._variableUsages.get(t);if(!r){let n=[],i=new vr(this._schema);gr(t,Wn(i,{VariableDefinition:()=>!1,Variable(o){n.push({node:o,type:i.getInputType(),defaultValue:i.getDefaultValue()})}})),r=n,this._variableUsages.set(t,r)}return r}getRecursiveVariableUsages(t){let r=this._recursiveVariableUsages.get(t);if(!r){r=this.getVariableUsages(t);for(let n of this.getRecursivelyReferencedFragments(t))r=r.concat(this.getVariableUsages(n));this._recursiveVariableUsages.set(t,r)}return r}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}};function iu(e){let t={descriptions:!0,specifiedByUrl:!1,directiveIsRepeatable:!1,schemaDescription:!1,inputValueDeprecation:!1,...e},r=t.descriptions?"description":"",n=t.specifiedByUrl?"specifiedByURL":"",i=t.directiveIsRepeatable?"isRepeatable":"",o=t.schemaDescription?r:"";function a(c){return t.inputValueDeprecation?c:""}return s(a,"inputDeprecation"),`
124
+ In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},isRepeatable:{type:new j(ke),resolve:e=>e.isRepeatable},locations:{type:new j(new he(new j(ah))),resolve:e=>e.locations},args:{type:new j(new he(new j(Yi))),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(r=>r.deprecationReason==null)}}})}),ah=new xt({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:K.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:K.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:K.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:K.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:K.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:K.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:K.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:K.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:K.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:K.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:K.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:K.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:K.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:K.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:K.UNION,description:"Location adjacent to a union definition."},ENUM:{value:K.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:K.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:K.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:K.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}}),ot=new xe({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new j(lh),resolve(e){if(br(e))return ee.SCALAR;if(Ce(e))return ee.OBJECT;if(we(e))return ee.INTERFACE;if(it(e))return ee.UNION;if(Ye(e))return ee.ENUM;if(Re(e))return ee.INPUT_OBJECT;if(Ge(e))return ee.LIST;if(ue(e))return ee.NON_NULL;Ot(!1,`Unexpected type: "${P(e)}".`)}},name:{type:se,resolve:e=>"name"in e?e.name:void 0},description:{type:se,resolve:e=>"description"in e?e.description:void 0},specifiedByURL:{type:se,resolve:e=>"specifiedByURL"in e?e.specifiedByURL:void 0},fields:{type:new he(new j(ch)),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Ce(e)||we(e)){let r=Object.values(e.getFields());return t?r:r.filter(n=>n.deprecationReason==null)}}},interfaces:{type:new he(new j(ot)),resolve(e){if(Ce(e)||we(e))return e.getInterfaces()}},possibleTypes:{type:new he(new j(ot)),resolve(e,t,r,{schema:n}){if(Er(e))return n.getPossibleTypes(e)}},enumValues:{type:new he(new j(uh)),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Ye(e)){let r=e.getValues();return t?r:r.filter(n=>n.deprecationReason==null)}}},inputFields:{type:new he(new j(Yi)),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Re(e)){let r=Object.values(e.getFields());return t?r:r.filter(n=>n.deprecationReason==null)}}},ofType:{type:ot,resolve:e=>"ofType"in e?e.ofType:void 0}})}),ch=new xe({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},args:{type:new j(new he(new j(Yi))),args:{includeDeprecated:{type:ke,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(r=>r.deprecationReason==null)}},type:{type:new j(ot),resolve:e=>e.type},isDeprecated:{type:new j(ke),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:se,resolve:e=>e.deprecationReason}})}),Yi=new xe({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},type:{type:new j(ot),resolve:e=>e.type},defaultValue:{type:se,description:"A GraphQL-formatted string representing the default value for this input value.",resolve(e){let{type:t,defaultValue:r}=e,n=jr(r,t);return n?Me(n):null}},isDeprecated:{type:new j(ke),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:se,resolve:e=>e.deprecationReason}})}),uh=new xe({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:()=>({name:{type:new j(se),resolve:e=>e.name},description:{type:se,resolve:e=>e.description},isDeprecated:{type:new j(ke),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:se,resolve:e=>e.deprecationReason}})}),ee;(function(e){e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.INPUT_OBJECT="INPUT_OBJECT",e.LIST="LIST",e.NON_NULL="NON_NULL"})(ee||(ee={}));var lh=new xt({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:ee.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:ee.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:ee.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:ee.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:ee.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:ee.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:ee.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:ee.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}}),Zc={name:"__schema",type:new j(Qi),description:"Access the current type schema of this server.",args:[],resolve:(e,t,r,{schema:n})=>n,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},Xc={name:"__type",type:ot,description:"Request the type information of a single type.",args:[{name:"name",description:void 0,type:new j(se),defaultValue:void 0,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0}],resolve:(e,{name:t},r,{schema:n})=>n.getType(t),deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},eu={name:"__typename",type:new j(se),description:"The name of the current Object type at runtime.",args:[],resolve:(e,t,r,{parentType:n})=>n.name,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},dh=Object.freeze([Qi,sh,ah,ot,ch,Yi,uh,lh]);var Zi=class{static{s(this,"GraphQLSchema")}constructor(t){var r,n;this.__validationErrors=t.assumeValid===!0?[]:void 0,Ee(t)||B(!1,"Must provide configuration object."),!t.types||Array.isArray(t.types)||B(!1,`"types" must be Array if provided but got: ${P(t.types)}.`),!t.directives||Array.isArray(t.directives)||B(!1,`"directives" must be Array if provided but got: ${P(t.directives)}.`),this.description=t.description,this.extensions=Ue(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(r=t.extensionASTNodes)!==null&&r!==void 0?r:[],this._queryType=t.query,this._mutationType=t.mutation,this._subscriptionType=t.subscription,this._directives=(n=t.directives)!==null&&n!==void 0?n:oh;let i=new Set(t.types);if(t.types!=null)for(let o of t.types)i.delete(o),mt(o,i);this._queryType!=null&&mt(this._queryType,i),this._mutationType!=null&&mt(this._mutationType,i),this._subscriptionType!=null&&mt(this._subscriptionType,i);for(let o of this._directives)if(ih(o))for(let a of o.args)mt(a.type,i);mt(Qi,i),this._typeMap=Object.create(null),this._subTypeMap=Object.create(null),this._implementationsMap=Object.create(null);for(let o of i){if(o==null)continue;let a=o.name;if(a||B(!1,"One of the provided types for building the Schema is missing a name."),this._typeMap[a]!==void 0)throw new Error(`Schema must contain uniquely named types but contains multiple types named "${a}".`);if(this._typeMap[a]=o,we(o)){for(let c of o.getInterfaces())if(we(c)){let u=this._implementationsMap[c.name];u===void 0&&(u=this._implementationsMap[c.name]={objects:[],interfaces:[]}),u.interfaces.push(o)}}else if(Ce(o)){for(let c of o.getInterfaces())if(we(c)){let u=this._implementationsMap[c.name];u===void 0&&(u=this._implementationsMap[c.name]={objects:[],interfaces:[]}),u.objects.push(o)}}}}get[Symbol.toStringTag](){return"GraphQLSchema"}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(t){switch(t){case nt.QUERY:return this.getQueryType();case nt.MUTATION:return this.getMutationType();case nt.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(t){return this.getTypeMap()[t]}getPossibleTypes(t){return it(t)?t.getTypes():this.getImplementations(t).objects}getImplementations(t){let r=this._implementationsMap[t.name];return r??{objects:[],interfaces:[]}}isSubType(t,r){let n=this._subTypeMap[t.name];if(n===void 0){if(n=Object.create(null),it(t))for(let i of t.getTypes())n[i.name]=!0;else{let i=this.getImplementations(t);for(let o of i.objects)n[o.name]=!0;for(let o of i.interfaces)n[o.name]=!0}this._subTypeMap[t.name]=n}return n[r.name]!==void 0}getDirectives(){return this._directives}getDirective(t){return this.getDirectives().find(r=>r.name===t)}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==void 0}}};function mt(e,t){let r=ht(e);if(!t.has(r)){if(t.add(r),it(r))for(let n of r.getTypes())mt(n,t);else if(Ce(r)||we(r)){for(let n of r.getInterfaces())mt(n,t);for(let n of Object.values(r.getFields())){mt(n.type,t);for(let i of n.args)mt(i.type,t)}}else if(Re(r))for(let n of Object.values(r.getFields()))mt(n.type,t)}return t}s(mt,"collectReferencedTypes");function wr(e,t){switch(t.kind){case b.LIST_TYPE:{let r=wr(e,t.type);return r&&new he(r)}case b.NON_NULL_TYPE:{let r=wr(e,t.type);return r&&new j(r)}case b.NAMED_TYPE:return e.getType(t.name.value)}}s(wr,"typeFromAST");var vr=class{static{s(this,"TypeInfo")}constructor(t,r,n){this._schema=t,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=n??oL,r&&(Ze(r)&&this._inputTypeStack.push(r),Ct(r)&&this._parentTypeStack.push(r),Bt(r)&&this._typeStack.push(r))}get[Symbol.toStringTag](){return"TypeInfo"}getType(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]}getParentType(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]}getInputType(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]}getParentInputType(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]}getFieldDef(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]}getDefaultValue(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(t){let r=this._schema;switch(t.kind){case b.SELECTION_SET:{let i=ht(this.getType());this._parentTypeStack.push(Ct(i)?i:void 0);break}case b.FIELD:{let i=this.getParentType(),o,a;i&&(o=this._getFieldDef(r,i,t),o&&(a=o.type)),this._fieldDefStack.push(o),this._typeStack.push(Bt(a)?a:void 0);break}case b.DIRECTIVE:this._directive=r.getDirective(t.name.value);break;case b.OPERATION_DEFINITION:{let i=r.getRootType(t.operation);this._typeStack.push(Ce(i)?i:void 0);break}case b.INLINE_FRAGMENT:case b.FRAGMENT_DEFINITION:{let i=t.typeCondition,o=i?wr(r,i):ht(this.getType());this._typeStack.push(Bt(o)?o:void 0);break}case b.VARIABLE_DEFINITION:{let i=wr(r,t.type);this._inputTypeStack.push(Ze(i)?i:void 0);break}case b.ARGUMENT:{var n;let i,o,a=(n=this.getDirective())!==null&&n!==void 0?n:this.getFieldDef();a&&(i=a.args.find(c=>c.name===t.name.value),i&&(o=i.type)),this._argument=i,this._defaultValueStack.push(i?i.defaultValue:void 0),this._inputTypeStack.push(Ze(o)?o:void 0);break}case b.LIST:{let i=Bc(this.getInputType()),o=Ge(i)?i.ofType:i;this._defaultValueStack.push(void 0),this._inputTypeStack.push(Ze(o)?o:void 0);break}case b.OBJECT_FIELD:{let i=ht(this.getInputType()),o,a;Re(i)&&(a=i.getFields()[t.name.value],a&&(o=a.type)),this._defaultValueStack.push(a?a.defaultValue:void 0),this._inputTypeStack.push(Ze(o)?o:void 0);break}case b.ENUM:{let i=ht(this.getInputType()),o;Ye(i)&&(o=i.getValue(t.value)),this._enumValue=o;break}default:}}leave(t){switch(t.kind){case b.SELECTION_SET:this._parentTypeStack.pop();break;case b.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case b.DIRECTIVE:this._directive=null;break;case b.OPERATION_DEFINITION:case b.INLINE_FRAGMENT:case b.FRAGMENT_DEFINITION:this._typeStack.pop();break;case b.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case b.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case b.LIST:case b.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case b.ENUM:this._enumValue=null;break;default:}}};function oL(e,t,r){let n=r.name.value;if(n===Zc.name&&e.getQueryType()===t)return Zc;if(n===Xc.name&&e.getQueryType()===t)return Xc;if(n===eu.name&&Ct(t))return eu;if(Ce(t)||we(t))return t.getFields()[n]}s(oL,"getFieldDef");function Wn(e,t){return{enter(...r){let n=r[0];e.enter(n);let i=Jn(t,n.kind).enter;if(i){let o=i.apply(t,r);return o!==void 0&&(e.leave(n),ji(o)&&e.enter(o)),o}},leave(...r){let n=r[0],i=Jn(t,n.kind).leave,o;return i&&(o=i.apply(t,r)),e.leave(n),o}}}s(Wn,"visitWithTypeInfo");function tu(e){return e.map(t=>typeof t=="number"?"["+t.toString()+"]":"."+t).join("")}s(tu,"printPathArray");function ph(e,t,r){return{prev:e,key:t,typename:r}}s(ph,"addPath");function Kt(e){let t=[],r=e;for(;r;)t.push(r.key),r=r.prev;return t.reverse()}s(Kt,"pathToArray");function hh(e,t,r=sL){return Xi(e,t,r,void 0)}s(hh,"coerceInputValue");function sL(e,t,r){let n="Invalid value "+P(t);throw e.length>0&&(n+=` at "value${tu(e)}"`),r.message=n+": "+r.message,r}s(sL,"defaultOnError");function Xi(e,t,r,n){if(ue(t)){if(e!=null)return Xi(e,t.ofType,r,n);r(Kt(n),e,new L(`Expected non-nullable type "${P(t)}" not to be null.`));return}if(e==null)return null;if(Ge(t)){let i=t.ofType;return Yc(e)?Array.from(e,(o,a)=>{let c=ph(n,a,void 0);return Xi(o,i,r,c)}):[Xi(e,i,r,n)]}if(Re(t)){if(!Ee(e)){r(Kt(n),e,new L(`Expected type "${t.name}" to be an object.`));return}let i={},o=t.getFields();for(let a of Object.values(o)){let c=e[a.name];if(c===void 0){if(a.defaultValue!==void 0)i[a.name]=a.defaultValue;else if(ue(a.type)){let u=P(a.type);r(Kt(n),e,new L(`Field "${a.name}" of required type "${u}" was not provided.`))}continue}i[a.name]=Xi(c,a.type,r,ph(n,a.name,t.name))}for(let a of Object.keys(e))if(!o[a]){let c=kc(a,Object.keys(t.getFields()));r(Kt(n),e,new L(`Field "${a}" is not defined by type "${t.name}".`+Uc(c)))}return i}if(_r(t)){let i;try{i=t.parseValue(e)}catch(o){o instanceof L?r(Kt(n),e,o):r(Kt(n),e,new L(`Expected type "${t.name}". `+o.message,{originalError:o}));return}return i===void 0&&r(Kt(n),e,new L(`Expected type "${t.name}".`)),i}Ot(!1,"Unexpected input type: "+P(t))}s(Xi,"coerceInputValueImpl");function Lt(e,t,r){if(e){if(e.kind===b.VARIABLE){let n=e.name.value;if(r==null||r[n]===void 0)return;let i=r[n];return i===null&&ue(t)?void 0:i}if(ue(t))return e.kind===b.NULL?void 0:Lt(e,t.ofType,r);if(e.kind===b.NULL)return null;if(Ge(t)){let n=t.ofType;if(e.kind===b.LIST){let o=[];for(let a of e.values)if(bE(a,r)){if(ue(n))return;o.push(null)}else{let c=Lt(a,n,r);if(c===void 0)return;o.push(c)}return o}let i=Lt(e,n,r);return i===void 0?void 0:[i]}if(Re(t)){if(e.kind!==b.OBJECT)return;let n=Object.create(null),i=Kn(e.fields,o=>o.name.value);for(let o of Object.values(t.getFields())){let a=i[o.name];if(!a||bE(a.value,r)){if(o.defaultValue!==void 0)n[o.name]=o.defaultValue;else if(ue(o.type))return;continue}let c=Lt(a.value,o.type,r);if(c===void 0)return;n[o.name]=c}return n}if(_r(t)){let n;try{n=t.parseLiteral(e,r)}catch{return}return n===void 0?void 0:n}Ot(!1,"Unexpected input type: "+P(t))}}s(Lt,"valueFromAST");function bE(e,t){return e.kind===b.VARIABLE&&(t==null||t[e.name.value]===void 0)}s(bE,"isMissingVariable");function ru(e,t,r,n){let i=[],o=n?.maxErrors;try{let a=aL(e,t,r,c=>{if(o!=null&&i.length>=o)throw new L("Too many errors processing variables, error limit reached. Execution aborted.");i.push(c)});if(i.length===0)return{coerced:a}}catch(a){i.push(a)}return{errors:i}}s(ru,"getVariableValues");function aL(e,t,r,n){let i={};for(let o of t){let a=o.variable.name.value,c=wr(e,o.type);if(!Ze(c)){let l=Me(o.type);n(new L(`Variable "$${a}" expected value of type "${l}" which cannot be used as an input type.`,{nodes:o.type}));continue}if(!_E(r,a)){if(o.defaultValue)i[a]=Lt(o.defaultValue,c);else if(ue(c)){let l=P(c);n(new L(`Variable "$${a}" of required type "${l}" was not provided.`,{nodes:o}))}continue}let u=r[a];if(u===null&&ue(c)){let l=P(c);n(new L(`Variable "$${a}" of non-null type "${l}" must not be null.`,{nodes:o}));continue}i[a]=hh(u,c,(l,d,p)=>{let m=`Variable "$${a}" got invalid value `+P(d);l.length>0&&(m+=` at "${a}${tu(l)}"`),n(new L(m+"; "+p.message,{nodes:o,originalError:p}))})}return i}s(aL,"coerceVariableValues");function eo(e,t,r){var n;let i={},o=(n=t.arguments)!==null&&n!==void 0?n:[],a=Kn(o,c=>c.name.value);for(let c of e.args){let u=c.name,l=c.type,d=a[u];if(!d){if(c.defaultValue!==void 0)i[u]=c.defaultValue;else if(ue(l))throw new L(`Argument "${u}" of required type "${P(l)}" was not provided.`,{nodes:t});continue}let p=d.value,m=p.kind===b.NULL;if(p.kind===b.VARIABLE){let y=p.name.value;if(r==null||!_E(r,y)){if(c.defaultValue!==void 0)i[u]=c.defaultValue;else if(ue(l))throw new L(`Argument "${u}" of required type "${P(l)}" was provided the variable "$${y}" which was not provided a runtime value.`,{nodes:p});continue}m=r[y]==null}if(m&&ue(l))throw new L(`Argument "${u}" of non-null type "${P(l)}" must not be null.`,{nodes:p});let h=Lt(p,l,r);if(h===void 0)throw new L(`Argument "${u}" has invalid value ${Me(p)}.`,{nodes:p});i[u]=h}return i}s(eo,"getArgumentValues");function to(e,t,r){var n;let i=(n=t.directives)===null||n===void 0?void 0:n.find(o=>o.name.value===e.name);if(i)return eo(e,i,r)}s(to,"getDirectiveValues");function _E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}s(_E,"hasOwnProperty");var nu=class{static{s(this,"ASTValidationContext")}constructor(t,r){this._ast=t,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=r}get[Symbol.toStringTag](){return"ASTValidationContext"}reportError(t){this._onError(t)}getDocument(){return this._ast}getFragment(t){let r;if(this._fragments)r=this._fragments;else{r=Object.create(null);for(let n of this.getDocument().definitions)n.kind===b.FRAGMENT_DEFINITION&&(r[n.name.value]=n);this._fragments=r}return r[t]}getFragmentSpreads(t){let r=this._fragmentSpreads.get(t);if(!r){r=[];let n=[t],i;for(;i=n.pop();)for(let o of i.selections)o.kind===b.FRAGMENT_SPREAD?r.push(o):o.selectionSet&&n.push(o.selectionSet);this._fragmentSpreads.set(t,r)}return r}getRecursivelyReferencedFragments(t){let r=this._recursivelyReferencedFragments.get(t);if(!r){r=[];let n=Object.create(null),i=[t.selectionSet],o;for(;o=i.pop();)for(let a of this.getFragmentSpreads(o)){let c=a.name.value;if(n[c]!==!0){n[c]=!0;let u=this.getFragment(c);u&&(r.push(u),i.push(u.selectionSet))}}this._recursivelyReferencedFragments.set(t,r)}return r}},EE=class extends nu{static{s(this,"SDLValidationContext")}constructor(t,r,n){super(t,n),this._schema=r}get[Symbol.toStringTag](){return"SDLValidationContext"}getSchema(){return this._schema}},Qn=class extends nu{static{s(this,"ValidationContext")}constructor(t,r,n,i){super(r,i),this._schema=t,this._typeInfo=n,this._variableUsages=new Map,this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return"ValidationContext"}getSchema(){return this._schema}getVariableUsages(t){let r=this._variableUsages.get(t);if(!r){let n=[],i=new vr(this._schema);gr(t,Wn(i,{VariableDefinition:()=>!1,Variable(o){n.push({node:o,type:i.getInputType(),defaultValue:i.getDefaultValue()})}})),r=n,this._variableUsages.set(t,r)}return r}getRecursiveVariableUsages(t){let r=this._recursiveVariableUsages.get(t);if(!r){r=this.getVariableUsages(t);for(let n of this.getRecursivelyReferencedFragments(t))r=r.concat(this.getVariableUsages(n));this._recursiveVariableUsages.set(t,r)}return r}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}};function iu(e){let t={descriptions:!0,specifiedByUrl:!1,directiveIsRepeatable:!1,schemaDescription:!1,inputValueDeprecation:!1,...e},r=t.descriptions?"description":"",n=t.specifiedByUrl?"specifiedByURL":"",i=t.directiveIsRepeatable?"isRepeatable":"",o=t.schemaDescription?r:"";function a(c){return t.inputValueDeprecation?c:""}return s(a,"inputDeprecation"),`
125
125
  query IntrospectionQuery {
126
126
  __schema {
127
127
  ${o}